Метрики и observability
Метрики и observability
Логи отвечают, что произошло с конкретным сообщением; метрики показывают здоровье системы. Установите optional extra:
pip install 'Flask-RMQ[metrics]'Рекомендуемые Prometheus metrics:
| Метрика | Тип | Labels |
|---|---|---|
rabbitmq_publish_total | counter | queue, exchange, result |
rabbitmq_publish_duration_seconds | histogram | queue, exchange |
rabbitmq_publish_reconnect_total | counter | queue, exchange |
rabbitmq_consume_total | counter | queue, result |
rabbitmq_consume_duration_seconds | histogram | queue |
rabbitmq_consume_reconnect_total | counter | queue |
rabbitmq_consume_in_flight | gauge | queue |
Для API можно подключить WSGI app из prometheus_client, для consumer-only процесса — вызвать start_http_server(9100) до запуска потоков.
При нескольких Gunicorn workers обычные in-memory counters дают неполную картину. Настройте PROMETHEUS_MULTIPROC_DIR, CollectorRegistry и multiprocess.MultiProcessCollector. Для однопроцессного consumer deployment это не требуется.
Включите официальный RabbitMQ Prometheus plugin. Контролируйте queue depth, unacknowledged messages, resource alarms, connection churn и consumer count. Алерты нужны на publish failures, reconnect storm, рост очереди без consume rate и handler errors.
Labels должны иметь ограниченную cardinality. Никогда не добавляйте message ID, user ID, payload или текст исключения в labels.