Ir al contenido

API de Estado de Procesos

En Astra, puedes gestionar el proceso y controlar su estado utilizando métodos HTTP API.

Solicitud: POST /control/

{ "cmd": "status" }

La respuesta incluye cpu_power_save. Es true cuando la política de escalado de frecuencia mantiene la CPU por debajo de la frecuencia de la que es capaz. Se lee al arrancar y una vez por minuto.

Estadísticas de CPU, memoria y tiempo de actividad. t igual a 0 es la última muestra. Sin t, el informe del último intervalo. El mismo método también está en GET /api/system-status.

Solicitud: POST /control/

{
"cmd": "system-status",
"t": 0
}
  • t - número, opcional. 0 para la última muestra, 1 para el informe del último intervalo. Predeterminado: 1. En POST /control/, pasa t en el cuerpo JSON; en GET /api/system-status, en la consulta. Una cadena numérica decimal se lee como su número; cualquier otro valor cuenta como 1.

Respuesta:

{
"timestamp": 0,
"instance": "...",
"la1": 0,
"la5": 0,
"la15": 0,
"app_threads": 1,
"sys_cpu_usage": 0,
"app_cpu_usage": 0,
"sys_mem_usage": 0,
"app_mem_usage": 0,
"app_mem_kb": 0,
"sys_uptime": 0,
"app_uptime": 0
}
  • timestamp - hora Unix: hora de creación del informe para t=1, hora de la última muestra para t=0, 0 antes de la primera muestra
  • instance - nombre de la instancia si está definido en Configuración → General → Nombre de la instancia
  • la1 - carga promedio de 1 minuto multiplicada por 100
  • la5 - carga promedio de 5 minutos multiplicada por 100
  • la15 - carga promedio de 15 minutos multiplicada por 100
  • app_threads - número de hilos
  • sys_cpu_usage - uso total de CPU. Puede ser hasta: 100 multiplicado por el número de núcleos en todas las CPUs
  • app_cpu_usage - uso de CPU por el proceso y todos los hilos
  • sys_mem_usage - uso total de RAM
  • app_mem_usage - uso de RAM por el proceso y todos los hilos
  • app_mem_kb - uso de RAM por el proceso y todos los hilos en kilobytes
  • sys_uptime - tiempo de actividad total del sistema en segundos
  • app_uptime - tiempo de actividad del proceso en segundos

Un t numérico distinto de 0 o 1 devuelve HTTP 200 con un error:

{ "system-status": "er", "error": "not implemented" }

Lee las estadísticas del último segundo de cada stream y adaptador, y la última muestra del sistema, en una sola solicitud. También está en GET /api/monitoring. La interfaz web integrada consulta este método una vez por segundo para el panel.

Solicitud: POST /control/. Roles control y observer.

{ "cmd": "monitoring" }

Respuesta:

{
"timestamp": 1758268800,
"instance": "streamer-1",
"system": {
"timestamp": 1758268795,
"la1": 45,
"la5": 40,
"la15": 38,
"app_threads": 12,
"sys_cpu_usage": 12,
"app_cpu_usage": 3,
"sys_mem_usage": 31,
"app_mem_usage": 1,
"app_mem_kb": 163184,
"sys_uptime": 14400,
"app_uptime": 60
},
"streams": [
{
"id": "a001",
"name": "Channel 1",
"input_id": 1,
"sessions": 3,
"inputs": [
{
"input_id": 1,
"timestamp": 1758268800,
"onair": true,
"bitrate": 4210,
"packets": 2799,
"pes_packets": 75,
"pes_error": 0,
"sc_error": 0,
"cc_error": 0,
"sync_error": 0,
"video_count": 1,
"audio_count": 1
},
{
"input_id": 2,
"timestamp": 0,
"onair": false,
"bitrate": 0,
"packets": 0,
"pes_packets": 0,
"pes_error": 0,
"sc_error": 0,
"cc_error": 0,
"sync_error": 0,
"video_count": 0,
"audio_count": 0
}
]
},
{
"id": "m001",
"name": "Multiplex 1",
"input_id": 0,
"sessions": 0,
"inputs": [
{
"input_id": 0,
"timestamp": 1758268800,
"onair": true,
"bitrate": 38000,
"packets": 0,
"pes_packets": 0,
"pes_error": 0,
"sc_error": 0,
"cc_error": 0,
"sync_error": 0,
"video_count": 0,
"audio_count": 0
},
{
"input_id": 1,
"timestamp": 1758268800,
"onair": true,
"bitrate": 41000,
"packets": 27260,
"pes_packets": 820,
"pes_error": 0,
"sc_error": 0,
"cc_error": 0,
"sync_error": 0,
"video_count": 9,
"audio_count": 14
}
]
}
],
"adapters": [
{
"id": "a002",
"name": "Astra 19.2E",
"timestamp": 1758268800,
"lock": true,
"status": 31,
"signal": 78,
"signal_db": -4520,
"snr": 62,
"snr_db": 1380,
"ber": 0,
"unc": 0,
"bitrate": 41000
},
{
"id": "a006",
"name": "SAT>IP 1",
"timestamp": 1758268800,
"lock": true,
"status": 0,
"signal": 0,
"signal_db": 0,
"snr": 0,
"snr_db": 0,
"ber": 0,
"unc": 0,
"bitrate": 38500
}
]
}

La solicitud no tiene parámetros. Todos los valores de la respuesta se leen en el mismo momento. Las muestras de streams y adaptadores se actualizan cada segundo, la muestra del sistema cada 10 segundos. Los streams y adaptadores con no_event no recogen estadísticas y no aparecen.

  • timestamp - hora Unix actual
  • instance - el ajuste instance_name. Se omite si no está definido
  • system - la última muestra del sistema: los campos de Estado del sistema con t igual a 0, sin instance. Su timestamp es la hora de esa muestra. Todos los valores son 0 hasta la primera muestra
  • streams - streams en ejecución, ver Estadísticas de streams
  • adapters - adaptadores en ejecución, ver Estadísticas de adaptadores

Cada elemento de streams es un stream SPTS o MPTS habilitado con id. Un stream bajo demanda también aparece mientras ningún cliente está conectado, sin entradas.

  • id - identificador del stream
  • name - nombre del stream
  • input_id - la entrada de origen, cuyos valores devuelve Obtener estado del Stream. 0 mientras ninguna entrada es el origen, y en un stream MPTS, cuyo origen es la entrada 0, la salida del multiplex
  • sessions - número de sesiones de cliente en el stream, contadas al cerrar el último intervalo de monitorización (el ajuste tsdb_interval)
  • inputs - las entradas en ejecución en orden ascendente de input_id: una entrada aparece desde su inicio hasta que se detiene. Vacío mientras ninguna entrada está en ejecución

Cada elemento de inputs es la muestra del analizador de una entrada del último segundo. Los contadores son cantidades en bruto, no los porcentajes de Obtener estado del Stream.

  • input_id - número de entrada: la posición en la lista input del stream, desde 1. 0 es la salida del multiplex de un stream MPTS
  • timestamp - hora Unix de la muestra. 0 cuando la entrada ha arrancado y aún no tiene muestra
  • onair - el veredicto del analizador: false cuando el bitrate de la carga útil está por debajo del mínimo esperado, un PID de vídeo o audio está encriptado o tuvo más de 2 errores PES, o se alcanza el límite de errores CC
  • bitrate - Kbit/s
  • packets - paquetes TS recibidos
  • pes_packets - paquetes de vídeo y audio que inician un paquete PES
  • pes_error - paquetes contados en pes_packets cuya carga útil no empieza con una cabecera PES
  • sc_error - paquetes TS encriptados
  • cc_error - errores del contador de continuidad
  • sync_error - siempre 0
  • video_count, audio_count - número de PID de vídeo y audio

Una entrada con no_analyze no tiene analizador: aparece con timestamp 0 y todos los valores en 0.

En un stream MPTS la entrada 0 es la salida del multiplex y el origen del stream: onair es true, bitrate son los Kbit/s que el multiplexor emitió en el último segundo, y el resto de valores es 0. Las entradas 1 y siguientes son las entradas multiplexadas con los valores de sus analizadores.

Cada elemento de adapters es un adaptador en ejecución con id: un adaptador con type de frontend, un adaptador SAT>IP o un adaptador virtual (ver Configuración del adaptador).

  • id - identificador del adaptador
  • name - el name del adaptador, o su id si el nombre no está definido
  • timestamp - hora Unix de la muestra. 0 hasta la primera muestra
  • lock - true si el frontend informó de bloqueo. Para un adaptador SAT>IP o virtual: true mientras está en el aire
  • status - bits de estado del frontend: 0x01 señal, 0x02 portadora, 0x04 codificación FEC interna, 0x08 sincronización, 0x10 bloqueo, 0x20 tiempo de espera agotado, 0x40 reinicializado. 0 (y lock false) en el segundo en que el watchdog del adaptador lo detuvo
  • signal, snr - nivel de señal y relación señal/ruido tal como los informa el controlador: porcentaje con el estado de DVB API v5, unidades crudas del controlador con la opción dvbapi3
  • signal_db, snr_db - decibelios multiplicados por 100. 0 con la opción dvbapi3
  • ber, unc - errores de bit y bloques no corregidos tal como los informa el controlador
  • bitrate - Kbit/s recibidos en el último segundo

Un adaptador SAT>IP o virtual no tiene frontend: lock es su estado en el aire, bitrate la tasa de su transporte, y status y los campos de señal son 0. Un adaptador SAT>IP y un adaptador por dirección están en el aire cuando llegaron paquetes en el último segundo. Un adaptador CI, cuando el stream pasó por el CAM en el último segundo y el CAM está listo.

Una sesión de análisis no añade un elemento: un análisis de un adaptador configurado, como dvb://a002 o un objeto dvb que nombra el adaptador en id, lee el propio elemento de ese adaptador. Un adaptador que un análisis sintoniza con sus propias opciones y sin id no recoge estadísticas.

Solicitud: POST /control/

{
"cmd": "restart"
}