API de Estado de Procesos
En Astra, puedes gestionar el proceso y controlar su estado utilizando métodos HTTP API.
Obtener el estado
Sección titulada «Obtener el estado»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.
Estado del sistema
Sección titulada «Estado del sistema»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.0para la última muestra,1para el informe del último intervalo. Predeterminado:1. EnPOST /control/, pasaten el cuerpo JSON; enGET /api/system-status, en la consulta. Una cadena numérica decimal se lee como su número; cualquier otro valor cuenta como1.
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 parat=1, hora de la última muestra parat=0,0antes de la primera muestrainstance- nombre de la instancia si está definido en Configuración → General → Nombre de la instanciala1- carga promedio de 1 minuto multiplicada por 100la5- carga promedio de 5 minutos multiplicada por 100la15- carga promedio de 15 minutos multiplicada por 100app_threads- número de hilossys_cpu_usage- uso total de CPU. Puede ser hasta: 100 multiplicado por el número de núcleos en todas las CPUsapp_cpu_usage- uso de CPU por el proceso y todos los hilossys_mem_usage- uso total de RAMapp_mem_usage- uso de RAM por el proceso y todos los hilosapp_mem_kb- uso de RAM por el proceso y todos los hilos en kilobytessys_uptime- tiempo de actividad total del sistema en segundosapp_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" }Monitorización
Sección titulada «Monitorización»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 actualinstance- el ajusteinstance_name. Se omite si no está definidosystem- la última muestra del sistema: los campos de Estado del sistema contigual a0, sininstance. Sutimestampes la hora de esa muestra. Todos los valores son0hasta la primera muestrastreams- streams en ejecución, ver Estadísticas de streamsadapters- adaptadores en ejecución, ver Estadísticas de adaptadores
Estadísticas de streams
Sección titulada «Estadísticas de streams»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 streamname- nombre del streaminput_id- la entrada de origen, cuyos valores devuelve Obtener estado del Stream.0mientras ninguna entrada es el origen, y en un stream MPTS, cuyo origen es la entrada0, la salida del multiplexsessions- número de sesiones de cliente en el stream, contadas al cerrar el último intervalo de monitorización (el ajustetsdb_interval)inputs- las entradas en ejecución en orden ascendente deinput_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 listainputdel stream, desde 1.0es la salida del multiplex de un stream MPTStimestamp- hora Unix de la muestra.0cuando la entrada ha arrancado y aún no tiene muestraonair- el veredicto del analizador:falsecuando 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 CCbitrate- Kbit/spackets- paquetes TS recibidospes_packets- paquetes de vídeo y audio que inician un paquete PESpes_error- paquetes contados enpes_packetscuya carga útil no empieza con una cabecera PESsc_error- paquetes TS encriptadoscc_error- errores del contador de continuidadsync_error- siempre0video_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.
Estadísticas de adaptadores
Sección titulada «Estadísticas de adaptadores»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 adaptadorname- elnamedel adaptador, o suidsi el nombre no está definidotimestamp- hora Unix de la muestra.0hasta la primera muestralock-truesi el frontend informó de bloqueo. Para un adaptador SAT>IP o virtual:truemientras está en el airestatus- bits de estado del frontend:0x01señal,0x02portadora,0x04codificación FEC interna,0x08sincronización,0x10bloqueo,0x20tiempo de espera agotado,0x40reinicializado.0(ylockfalse) en el segundo en que el watchdog del adaptador lo detuvosignal,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óndvbapi3signal_db,snr_db- decibelios multiplicados por 100.0con la opcióndvbapi3ber,unc- errores de bit y bloques no corregidos tal como los informa el controladorbitrate- 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.
Reiniciar Astra
Sección titulada «Reiniciar Astra»Solicitud: POST /control/
{ "cmd": "restart"}