Monitoramento¶
O Sapsan escreve logs estruturados, serve métricas em formato Prometheus e exporta traces por OpenTelemetry (OTLP) — se encaixa no stack padrão de observabilidade: Prometheus/Grafana, Jaeger/Tempo, Loki.
Logs¶
O nível de log é controlado pela variável de ambiente RUST_LOG:
RUST_LOG=info sapsan
RUST_LOG=debug,hls=trace sapsan # mais detalhe para um módulo específico
Note
TODO: formato dos logs, destinos padrão nas instalações deb/Docker.
Métricas Prometheus¶
GET /streamer/api-v4/runtime/metrics serve métricas do processo em formato Prometheus (incluindo o alocador jemalloc). Ao lado estão as métricas de live, de sessões e de DVR: /live-metrics, /sessions-metrics, /dvr/metrics (veja o Admin API). Os endpoints do scrape exigem a opção de licença de contadores estendidos; sem ela, os gráficos são servidos pelo servidor Prometheus embutido (um datasource Grafana pronto). O percurso completo pelos canais de estatística, os campos e as receitas de alertas está na página Estatísticas.
Contadores de qualidade¶
O que está disponível para alertar:
- Captura MPEG-TS: por cada PID — erros CC, TEI, pacotes cifrados, erros CRC de PSI, PES quebrados, estado do buffer do decodificador (HRD).
- SRT: RTT, perdas e retransmissões nos dois sentidos, tamanhos de buffer, tempos limite de keepalive.
- Fontes (LSI): tempo na entrada principal/reserva, tempo sem dados, tentativas, validade das reservas, divergência de parâmetros entre as entradas.
- Sessões: abertas, recusadas, autorizadas, recusas de reautorização.
- DVR: espaço em disco, contadores de operações, número de blobs, bytes usados pelo arquivo, progresso da reconstrução do catálogo.
- Pushes: por push — status com a causa da falha, velocidade de envio, bytes, erros, reconexões, retransmissões SRT/RIST. Veja Estatísticas de pushes.
- Agentes do Peeklio: estado das conexões, bytes, erros.
Traces¶
O Sapsan exporta traces pelo protocolo OTLP.
Note
TODO: variáveis de ambiente do exportador OTLP (endpoint, sampling), o que os traces cobrem.
Saúde do servidor¶
- Sonda de readiness:
GET /streamer/api-v3/monitoring/readiness— para Kubernetes e balanceadores. - Estado dos streams:
GET /streamer/api-v3/streams.
Ferramentas de diagnóstico¶
Os validadores HLS e DASH embutidos verificam de forma ativa a entrega própria (ou a alheia): latência LL-HLS, integridade dos timelines, alinhamento da escada ABR.