points = [dict(measurement="latency", tags=dict(backend=v['backend_name'], status_code=v['http_status_code']), # time=ts, fields=dict(latency=int(v.get('time_backend_response', 0))) ) for v in bucket] print(points) backends = group_by(bucket, 'backend_name') for backend, values in backends.items(): latencies = [int(v['time_backend_response']) for v in values if v['http_status_code'] in ['200', '201']] a, hits = apdex(latencies, 3) print(backend, latencies, a) assert a is None or a <= 1.0 if a is not None: carbon.send(APDEX.format(backend=backend), int(a * 100), ts) carbon.send(HITS.format(backend=backend), hits, ts) for status, values in group_by(values, 'http_status_code').items(): carbon.send(STATUS.format(service=backend, status=status), len(values), ts) print(backend, status, len(values)) v = [int(v['time_backend_response']) for v in values if v['time_backend_response'] != '-1'] print("time_backend_response", v) if len(v) > 0: v.sort() carbon.send(MIN.format(backend=backend), v[0], ts)
def test_apdex(): a = range(10) ap, total = apdex(a, 2) assert 0.6 == ap