NumerousApp Server API Performance

I added yet another numerous metric, this time tracking the performance of the NumerousApp server itself:

It’s measured using this python code:

import numerous

nr = numerous.Numerous()

t = nr.statistics['serverResponseTimes']
print (int(t*10000)/10.0)"

¬†which is using my NumerousApp Python library (“pip install numerous”).

I just make two user() API calls (discarding the returned info), then dig into the statistics array provided in the object to get the most recent server response time (measured as “on-the-wire” time). The reason for doing two calls is connection overhead; the first call will be significantly slower because it has to perform a TCP connect and an initial SSL setup; the second call reuses the connection (HTTP keep-alive) and is much faster. The numbers are typically around 300msec for the first API call and 60-70msec for subsequent calls (also varies substantially depending on the particular API).

The single response time in ‘statistics’ is the time from the most recent (i.e., second) nr.user() call. The int and 10000/10.0 hack is just to convert the fractional seconds in milliseconds down to tenths (truncated, not rounded … sue me).