Source code for hurricane.metrics.requests

import asyncio

from hurricane.metrics.base import AverageMetric, CalculatedMetric, CounterMetric, StoredMetric


[docs]class RequestCounterMetric(CounterMetric): """ Defines request counter metric with corresponding metric code. """ code = "request_counter"
[docs]class ResponseTimeAverageMetric(AverageMetric): """ Defines response time average metric with corresponding metric code. """ code = "response_time_average"
[docs]class RequestQueueLengthMetric(CalculatedMetric): """ Defines request queue length metric with corresponding metric code. """ code = "request_queue_length"
[docs] def get_value(self): """ Getting length of the asyncio queue of all tasks. """ return len(asyncio.all_tasks())
[docs]class StartupTimeMetric(StoredMetric): code = "startup_time"
[docs]class HealthMetric(StoredMetric): code = "health"
[docs]class ReadinessMetric(StoredMetric): code = "readiness"