Мониторинг¶
Sapsan пишет структурированные логи, отдает метрики в формате Prometheus и экспортирует трейсы по OpenTelemetry (OTLP) — встраивается в стандартный стек наблюдаемости: Prometheus/Grafana, Jaeger/Tempo, Loki.
Логи¶
Уровень логирования управляется переменной окружения RUST_LOG:
RUST_LOG=info sapsan
RUST_LOG=debug,hls=trace sapsan # подробнее для отдельного модуля
Note
TODO: формат логов, куда пишутся по умолчанию в deb/Docker-инсталляции.
Метрики Prometheus¶
GET /streamer/api-v4/runtime/metrics отдает метрики процесса в формате Prometheus (включая аллокатор jemalloc). Рядом — метрики лайва, сессий и DVR: /live-metrics, /sessions-metrics, /dvr/metrics (см. Admin API).
Счетчики качества¶
Что доступно для алертинга:
- MPEG-TS прием: по каждому PID — CC-ошибки, TEI, скремблированные пакеты, ошибки CRC PSI, битые PES, состояние буфера декодера (HRD).
- SRT: RTT, потери и ретрансмиты в обе стороны, размеры буферов, таймауты keepalive.
- Источники (LSI): время на основном/резервном входе, время без данных, ретраи, валидность резервов, расхождение параметров между входами.
- Сессии: открытые, отклоненные, авторизованные, отказы переавторизации.
- DVR: место на дисках, счетчики операций, число блобов, занято архивом, прогресс перестройки каталога.
- Пуши и агенты Peeklio: состояние соединений, байты, ошибки.
Трейсы¶
Sapsan экспортирует трейсы по протоколу OTLP.
Note
TODO: переменные окружения OTLP-экспортера (endpoint, sampling), что покрыто трейсами.
Здоровье сервера¶
- Readiness-проба:
GET /streamer/api/v3/monitoring/readiness— для Kubernetes и балансировщиков. - Состояние потоков:
GET /streamer/api/v3/streams.
Диагностические инструменты¶
Встроенные валидаторы HLS и DASH активно проверяют собственную (или чужую) раздачу: задержку LL-HLS, целостность таймлайнов, выравнивание ABR-лесенки.