Skip to content

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.