Каталог метрик Prometheus и справочник PromQL
RUSEON Core экспортирует стандартные метрики Prometheus по адресу GET /metrics для мониторинга в Prometheus, VictoriaMetrics и Grafana.
1. Официальный каталог метрик
В pkg/metrics/metrics.go зарегистрированы следующие 12 метрик:
| Имя метрики | Тип | Метки | Описание |
|---|---|---|---|
ruseon_active_streams | Gauge | camera_id | Количество активных потоков камер (1 = онлайн, 0 = оффлайн) |
ruseon_stream_reconnects_total | Counter | camera_id | Общее количество попыток переподключения к камере |
ruseon_frames_received_total | Counter | camera_id | Общее количество видеокадров, полученных от камеры |
ruseon_key_frames_total | Counter | camera_id | Общее количество полученных ключевых I-кадров |
ruseon_network_receive_bytes_total | Counter | camera_id | Общий объем полученных полезных сетевых байт от RTSP |
ruseon_disk_write_bytes_total | Counter | camera_id | Общий объем байт, записанных в дисковый архив fMP4 |
ruseon_archive_segments_written_total | Counter | camera_id | Количество успешно записанных часовых файлов архива |
ruseon_archive_errors_total | Counter | camera_id | Количество ошибок записи архива на файловую систему |
ruseon_ringbuffer_drops_total | Counter | camera_id | Количество сброшенных видеокадров при переполнении буфера |
ruseon_eventbus_drops_total | Counter | (нет) | Количество сброшенных событий при переполнении очередей воркеров |
ruseon_webrtc_peers_active | Gauge | camera_id | Количество активных WebRTC соединений на поток |
ruseon_hls_requests_total | Counter | camera_id | Общее количество обработанных запросов HLS |
2. Ключевые PromQL-запросы для алертинга
promql
# Алерт: Потеря связи с камерой (Поток отключен)
ruseon_active_streams == 0
# Алерт: Частые переподключения (> 5 за 5 минут)
increase(ruseon_stream_reconnects_total[5m]) > 5
# Алерт: Дропы кадров в кольцевом буфере (Узкое место сети/диска)
rate(ruseon_ringbuffer_drops_total[5m]) > 0
# Алерт: Ошибки записи видеоархива
increase(ruseon_archive_errors_total[5m]) > 0
# Расчет входящего битрейта (Мбит/с на камеру)
rate(ruseon_network_receive_bytes_total[1m]) * 8 / 1000000