Skip to Content

Monitoreo

El CMS tiene cinco pantallas de monitoreo, y no son variaciones de lo mismo. Cada una responde una pregunta distinta, y saber cuál abrir primero ahorra la mayor parte del tiempo de un diagnóstico:

PantallaResponde
Panel de Aplicaciones¿Quién está en línea?
Panel de Interfaces¿Qué se está acumulando?
Monitor de Mensajes¿A qué ritmo va cada interfaz?
Monitor en tiempo real¿Qué está pasando ahora en esta interfaz?
Cockpit¿Está todo bien? — visto de lejos, en una TV, sin nadie con sesión iniciada

El camino natural es de arriba hacia abajo: el Panel de Aplicaciones muestra que la aplicación se cayó, el Panel de Interfaces muestra cuáles de sus interfaces se acumularon, y el monitor en tiempo real muestra los mensajes uno por uno.

Todas las pantallas de esta página respetan la Aplicación en foco elegida en el encabezado y las Interfaces permitidas del usuario. Dos personas viendo la misma pantalla pueden, legítimamente, ver conjuntos distintos de filas.

De dónde viene el ritmo de estas pantallas. Cada una tiene su cadencia — 5 segundos en los paneles, 1 segundo en el monitor en tiempo real, 15 en el pie de página —, pero quien cuenta el tiempo es un solo reloj, de toda la aplicación. Por eso dos recortes del mismo número (el total del pie y las columnas del Panel de Interfaces, por ejemplo) se actualizan en el mismo instante, en vez de divergir por algunos segundos porque cada pantalla empezó a contar al montar.

En cada ciclo el CMS primero pregunta si algo cambió y solo busca los datos si la respuesta es sí: en una instalación detenida, el ciclo pasa sin costo alguno. Aun con todo quieto la pantalla se actualiza sola al menos cada 30 segundos (60 en el pie), como red de seguridad para los cambios que esa pregunta no alcanza a ver. Y una pestaña en segundo plano no gasta ninguna consulta: al volver a ella, el dato se busca de inmediato.

Antes de abrir cualquiera de ellas: el encabezado

El contador de Aplicaciones está en la barra superior, en toda pantalla, y dice cuántas de cuántas están activas — 24/30, no 24 ON. El número solo no respondía la pregunta que parece responder: con el contador de offline oculto cuando es cero, no había cómo distinguir 24 de 24 de 24 de 30 mirando.

El punto al lado solo queda verde cuando es verdad que está todo activo; con alguna Aplicación caída queda gris, para que no sobre una señal de “todo bien” al lado de la alarma roja. Offline es el único de los dos que viene relleno y pulsando — el relleno es exclusividad de quien necesita acción. Hacer clic en cualquiera de los dos abre la lista de cuáles son.


Panel de Aplicaciones — /application-dashboard

Una tarjeta por aplicación, con estado, contadores del día y uptime
Una tarjeta por aplicación, con estado, contadores del día y uptime

Una tarjeta por aplicación integrada, actualizada cada 5 segundos. Es lo más parecido a un semáforo: separa “el CMS se detuvo” de “el sistema del otro lado se detuvo”.

Qué trae cada tarjeta

ElementoSignificado
ON / OFFResultado del último keep-alive de la aplicación
En ProcesoMensajes de la aplicación aún no entregados
ErrorMensajes con error de entrega, recolección o negocio
ProcesadasEntregadas con éxito hoy
Recibidas (hoy)Todo lo que entró hoy (columna opcional)
Uptime / tiempo offlineHace cuánto dura el estado actual
InterfacesCuántas interfaces tiene la aplicación — clic para listarlas
PrioridadEtiqueta registrada en la Aplicación, para ordenar qué mirar primero

Los tres primeros números son clicables: abren la pantalla que detalla ese número ya con la aplicación en foco — “En Proceso” abre el Panel de Interfaces, “Error” abre Mensajes con Error, “Procesadas” abre Mensajes Procesados. Cuando el usuario no tiene la Herramienta de la pantalla destino, el número sigue siendo solo un número, en lugar de un enlace a una pantalla bloqueada.

La pantalla destino abre en Hoy, por la fecha de retorno y solo con tráfico real — la misma cuenta de la tarjeta. Así, el mensaje recibido ayer que falló hoy aparece en la lista que abrió “Error”, en lugar de contar en la tarjeta y desaparecer de la lista.

El botón Detalles abre la ficha de la aplicación: tipo de keep-alive, conexión externa vinculada, última actividad, el motivo de la falla cuando está offline, y las observaciones registradas (que se copian con un clic — sirven de anotación de guardia).

Tres formas de ver la misma lista

  • Grid — tarjetas, el modo por defecto.
  • Lista — tabla, mejor cuando hay muchas aplicaciones y se quiere ordenar por columna.
  • Categoría — las mismas tarjetas agrupadas por familia de conexión (HTTP, bases de datos, planta, SAP, mensajería). Útil para responder “¿el problema es solo de planta?”.

Encima de la lista hay además un atajo de pills por categoría, que solo muestra las categorías con al menos una aplicación.

Cuando una aplicación monitoreada se cae, el frontend emite alerta sonora y parpadea el título de la pestaña — incluso con el operador en otra pestaña del navegador. La tarjeta se pone roja y pulsa.


Panel de Interfaces — /dashboard

Interfaces de Recolección y de Entrega, con estado, cola y errores
Interfaces de Recolección y de Entrega, con estado, cola y errores

La lista de interfaces con movimiento, actualizada cada 5 segundos, separada en dos secciones: Interfaces de Recolección (el CMS busca) e Interfaces de Entrega (el CMS envía). Solo aparecen interfaces con al menos una Definición activa — una interfaz sin definición activa no va a procesar nada y solo ocuparía espacio.

La columna Estado, en orden de urgencia

La fila asume un estado, siguiendo esta precedencia — y la misma regla define el ordenamiento de la tabla, así que lo que necesita atención sube solo:

PrioridadEstadoSignifica
1BloqueadaLa interfaz fue bloqueada (manual o por error de negocio). Nada sale hasta liberar
2OFFLa aplicación dueña de la interfaz está offline — con el tiempo transcurrido al lado
3Programador PausadoEl job de esta interfaz está inactivo en Programadores. Nada será procesado
4ProcesandoHay mensajes en curso; el tooltip abre el detalle (esperando / en cola / entregando)
5OciosoSin pendientes, con el tiempo desde el último procesamiento

Bloqueada, OFF y Programador Pausado pintan la fila entera y parpadean. Una interfaz procesando pinta suavemente en azul (Entrega) o verde azulado (Recolección).

Columnas

Además del estado: En Proceso (cola pendiente), Errores, Procesadas, Últ. Proc. y una etiqueta de orden — secuencial (uno a la vez, en orden) o paralelo (varios a la vez).

Los tres contadores repiten en el encabezado el icono y el color que el pie de página usa para el total del sistema — los mismos de las tarjetas del Panel de Aplicaciones: naranja para lo que está en proceso, rojo para error, verde para procesado. Es el mismo número en tres recortes (por interfaz, por aplicación y el total), no tres conteos distintos.

El popup de detalles

El ícono de ojo, en la última columna, abre la ficha completa de la interfaz: aplicación, orden de procesamiento, estado con tiempo transcurrido, el error devuelto por el keep-alive cuando la aplicación está offline, contadores y — cuando hay cola — la Previsión de Término.

La previsión es optimista por construcción: mensajes en cola × tiempo medio de procesamiento de hoy. No considera mensajes nuevos llegando, reintentos ni interfaz detenida. Sirve para responder “¿minutos u horas?”, no para prometer un horario.

El mismo popup trae el botón Monitorear en tiempo real, que lleva al monitor de la interfaz.

Filtros

Aplicación e Interfaz (selección múltiple), pills de categoría de conexión y, a la derecha, tres chips de recorte: Todas, En Proceso y Errores. Los dos últimos son acumulativos, y la pantalla abre con los dos marcados — que es el recorte de quien llega a trabajar: lo que está parado y lo que falló. Todas limpia el recorte y muestra el panorama completo.

Por eso, en una planta sin backlog y sin errores, lo normal es ver la taza de café y el mensaje “¡Ningún mensaje pendiente de entrega!”.

El filtro de Interfaz y la categoría se recuerdan entre visitas (por sesión del navegador); la Aplicación viene del alcance global del encabezado.


Monitor de Mensajes — /interface-monitor

Vista consolidada del ritmo de cada interfaz
Vista consolidada del ritmo de cada interfaz

Donde el Panel de Interfaces es una tabla de pendientes, esta pantalla es un mural de ritmo: una tarjeta por interfaz, actualizada cada 5 segundos, mostrando último procesamiento, tiempo medio de procesamiento y cantidad en curso.

Sirve para la pregunta “¿esta interfaz está lenta?” — que el conteo de cola por sí solo no responde.

RecursoUso
Grid / ListaTarjetas para acompañar, tabla para ordenar
Filtro Recolección / EntregaRecorta por tipo de interfaz
Pills de categoríaLa misma taxonomía de conexión de las otras pantallas
BúsquedaFiltra por sigla de la interfaz
Ícono de definicionesAbre las Definiciones de esa interfaz sin salir de la pantalla

El tiempo medio es el promedio del tiempo de entrega de los mensajes concluidos con éxito hoy. No incluye el tiempo que el mensaje esperó en la cola antes de ser enviado — es el costo del destino, no el de la espera.

Una interfaz acumulando mensajes sin error normalmente significa bloqueo, programador pausado o destino lento — no pérdida de mensajes. Revise el estado antes de investigar el destino.


Monitor en tiempo real — /dashboard/:id/monitor

Mensajes de una interfaz llegando en vivo, con contadores por estado
Mensajes de una interfaz llegando en vivo, con contadores por estado

El nivel más fino: los mensajes de una interfaz, con actualización cada 1 segundo. Se llega desde el Panel de Interfaces o desde el Monitor de Mensajes — y el enlace de volver respeta de dónde vino.

Encabezado

Aplicación, interfaz, estado de bloqueo, frecuencia de la programación en texto legible (“cada 5 minutos”, “todos los días a las 2h”) y la próxima ejecución.

Para interfaces con programación por intervalo, la próxima ejecución es una estimación anclada en la última ejecución conocida — los ticks sin mensajes no graban nada. Para cron, es el horario exacto calculado a partir de la expresión.

Ventana de tiempo

Chips de 30 seg / 1 min / 2 min / 5 min / 10 min / 1 hora, más el modo Últimas N, que ignora período y día y muestra los últimos mensajes recibidos por la interfaz — pensado para interfaces que pasan días sin tráfico, donde toda ventana relativa saldría vacía.

Contadores y lista

Una franja de contadores por estado (En Proceso, Error Entrega, Error Negocio, Error Recolección, Procesada) y, debajo, la lista con ID, estado, Definición, intentos, recepción, retorno del destino, tiempo de ejecución y tiempo total en la mensajería.

El ícono de origen distingue mensaje externo (entró por la API, con la IP de quien envió) de mensaje interno (reenviado desde otro mensaje, con el ID de origen). Hacer clic en cualquier fila abre el detalle completo, con payload e historial de intentos.

El mensaje del Banco de Pruebas aparece en la lista con el frasco ámbar junto al estado. Los contadores de arriba no lo cuentan, así que la lista puede tener más filas que su suma — el frasco es lo que explica la diferencia.

Cuando la interfaz tiene más de una Definición, un filtro permite aislar una de ellas. Y si la interfaz no tiene ninguna Definición registrada, la pantalla lo avisa explícitamente — la causa más silenciosa de “no llega nada”.


Cockpit — /cockpit

Wallboard para TV o panel de planta
Wallboard para TV o panel de planta

Wallboard pensado para TV o panel de planta. Muestra el estado consolidado de las aplicaciones en letras grandes, con actualización automática cada 15 segundos. Exhibe solo estado agregado — nunca payload de mensaje. Cada tarjeta trae sigla, prioridad, ON/OFF, tiempo en el estado actual y un botón de información con las observaciones registradas en la Aplicación.

Una aplicación offline deja la tarjeta roja y pulsando, y el título de la pestaña parpadea, para llamar la atención incluso con el navegador minimizado.

Qué se cayó

Una tarjeta roja dice que la Aplicación está fuera; la primera pregunta de quien atiende, sin embargo, es qué se cayó — ¿el broker MQTT, la base, el servidor SAP? Por eso el tipo de conexión aparece en el pie de la tarjeta, a la izquierda de la prioridad: en una TV roja es lo primero que se lee, y la prioridad responde a la pregunta siguiente.

Al hacer clic se abre la ficha de esa Conexión Externa — nombre, dirección y configuración —, con la franja de disponibilidad de los últimos 30 días en el mismo formato de las otras pantallas. Es la misma ficha usada en los popups de Recolección y Entrega: dos pantallas describiendo la misma conexión con campos distintos sería peor que no tener el popup aquí.

Quién consigue abrirlo

Hasta agosto de 2026 esta era la única pantalla anónima del producto: quien alcanzara la dirección veía la sigla de cada Aplicación integrada, el estado de cada una, el volumen de mensajes del día y la última actividad. La decisión de producto sigue siendo la misma — la TV de la planta no tiene a nadie con sesión iniciada —, pero “sin login” pasó a significar con token, no sin credencial alguna.

Son dos caminos, y la respuesta viene recortada en cada uno:

CaminoQué muestra la TV
Sesión de usuarioQuien ya tiene sesión abre /cockpit directo, sin token, y ve las Aplicaciones que ve en el resto del sistema — las de sus propias Interfaces
Token de wallboardLa TV abre sin login, y muestra las Aplicaciones de ese token. Sin alcance definido, todas

Ninguno de los dos: la pantalla pide el token, con una caja para pegarlo. Distingue nunca hubo token en este navegador de el token guardado fue rechazado (revocado o vencido) — el segundo mensaje es lo que evita buscar defecto en la TV cuando el problema es el token.

Los tokens se crean en Configuración → Wallboard, que también entrega la URL lista para pegar en el navegador de la TV.

El recorte por sesión corrigió de paso una asimetría que nadie había notado: el Cockpit mostraba todas las Aplicaciones incluso a un usuario restringido a una Interfaz. Era la única pantalla del producto sin recorte.

Elegir qué aparece

El botón Elegir aplicaciones exhibidas filtra el panel. La elección vale solo en ese navegador (queda en el caché local), lo que permite tener una TV en expedición mostrando un recorte y otra en mantenimiento mostrando otro, desde la misma instalación.

Lo que se guarda es la lista de aplicaciones ocultas, no la de las visibles. Así, una Aplicación creada después aparece sola en el panel: un panel de monitoreo tiene que fallar mostrando de más, nunca de menos.

El Cockpit también respeta el nombre y el logotipo definidos en Configuraciones → Apariencia, y el idioma configurado en el sistema.