Métricas de Prometheus¶
control.observability.metrics
El scrape de Prometheus: su propia monitorización¶
La opción «contadores extendidos»
Los endpoints del scrape están disponibles solo con la opción de licencia de contadores extendidos. Sin ella, use el servidor Prometheus integrado y Retroview.
Para las instalaciones con infraestructura de monitorización propia, Sapsan sirve métricas en el formato de texto de Prometheus:
GET /streamer/api-v4/live-metrics— streams y entradas;GET /streamer/api-v4/sessions-metrics— sesiones de reproducción;GET /streamer/api-v4/dvr/metrics— discos y catálogo del archivo;GET /streamer/api-v4/runtime/metrics— el proceso y el asignador.
Diferencias respecto al servidor Prometheus integrado: la historia se guarda de su lado y solo la limita el retention de su TSDB; está disponible la profundidad completa, incluidas las métricas de protocolo por PID/SRT/RTP; el alerting es su alertmanager. Los contadores son monótonos y sobreviven a la observación de los reinicios — este es también el canal para la conciliación de facturas de su lado.
Métricas Prometheus¶
GET /streamer/api-v4/runtime/metrics sirve métricas del proceso en formato Prometheus (incluido el asignador jemalloc). Al lado están las métricas de live, de sesiones y de DVR: /live-metrics, /sessions-metrics, /dvr/metrics (véase el Admin API). Los endpoints del scrape requieren la opción de licencia de contadores extendidos; sin ella, los gráficos los sirve el servidor Prometheus integrado (un datasource de Grafana listo). El recorrido completo por los canales de estadística, los campos y las recetas de alertas está en la página Estadísticas.
Recetas¶
| Pregunta | Dónde mirar | Señal del problema |
|---|---|---|
| ¿El stream está vivo? | el status en la API; rate(stream_input_bytes_total[1m]) en el Prometheus integrado |
el estado no es running; la velocidad de captura cayó a cero |
| ¿La reserva está lista? | inputs[] en la lista de estadísticas |
status es error o unchecked; checked_ago_ms muy por encima del intervalo de comprobación |
| ¿Estamos viviendo en la reserva? | source.url; num_sec_on_secondary_input |
la URL no es la primera del config; los segundos en la reserva siguen creciendo |
| ¿La entrada se está degradando? | input.errors, input.retries; las causas — contadores extendidos o Retroview |
los contadores crecen con el stream vivo |
| ¿El push llega? | pushes[].status y bitrate_kbit; rate(stream_push_bytes_total[1m]) |
el estado no es running; la velocidad en cero con el stream vivo |
| ¿Por qué no funciona el push? | pushes[].error |
la causa en palabras: conexión rechazada, tiempo de espera, rechazo de publicación |
| ¿Se corta el canal hasta el receptor? | pushes[].reconnects_total, opened_at |
las reconexiones crecen; opened_at se renueva cada pocos minutos |
| ¿Hay fuerza bruta contra una entrega SRT con mapa de clientes? | scrape del nodo: srt_handshake_attempts_total, srt_handshake_secret_candidates_total |
muchos candidatos de secreto por intento — fuerza bruta; un par — un espectador normal |
| ¿Se está degradando la entrega a un espectador? | srt.health en las sesiones; la serie stream_play_srt_session_lost_packets_total |
veredicto degraded o bad; las pérdidas crecen |
| ¿El archivo se está escribiendo? | dvr.to en la lista; dvr.write.segments_failed en el GET individual |
to se retrasa respecto al tiempo real; segments_failed crece |
| ¿Hay huecos en el archivo? | dvr.recorded_hours contra la ventana to - from |
las horas grabadas son notablemente menos que la anchura de la ventana |
| ¿Los discos dan abasto? | segments_written_slow/_delayed (opción); dvr_disk_free_bytes en el scrape |
la proporción de escrituras lentas crece; el espacio libre mengua más rápido de lo esperado |
| ¿El servidor está sano? | runtime/metrics: process_rss_bytes; el Prometheus integrado: stream_memory_bytes |
la memoria crece de forma monótona sin crecimiento de carga |
| ¿Qué pasó de noche? | Retroview | — |
Entrega de HLS MPEG-TS¶
Los segmentos incompletos, ensamblajes fuera de caché, campos de API y ejemplos de alertas se describen en contadores de HLS MPEG-TS.