Metrics
Hurricane comes with a small framework to collect and expose metrics about your application.
Builtin Metrics
- Hurricane provides a few builtin metrics:
request queue length
overall request count
average response time
startup time metric
These metrics are collected from application start until application end. Keep in mind that these metrics do not exactly represent the current state of the application - rather the current state since the start of the process. Startup time metric is used for startup probe. It is set after all management commands were finished and HTTP server was started.
Custom Metrics
It is possible to define new custom metrics. The new metric class can inherit from StoredMetric class, which defines methods for saving metric value into the registry and for value retrieval from the registry. It should include code variable, which is used as a key for storing and retrieving value from the registry dictionary. Custom metric should be also registered in a metric registry. This can be done by adding the following lines to init file of metrics package:
# file: metrics/__init__.py
from hurricane.metrics.requests import <CustomMetricClass>
registry.register(<CustomMetricClass>)
Disable Metrics
If you’d like to disable the metric collection use the –no-metrics flag with the serve command:
python manage.py serve --no-metrics