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"