Colas, pods, sesiones y las series cuyo valor distinto de cero significa que algo se está perdiendo en silencio.
Este panel sólo habla con token de admin, y no hay ninguno guardado. Inicia sesión como admin en el dashboard.Ir al dashboard
Pod ?—BD ?RabbitMQ ?Drenado ?sin canal—
Colas del broker
——
Mensajes y consumidores se leen SIEMPRE juntos: cien mil mensajes con un consumidor es carga; con cero consumidores es una avería que descarta por la cabeza sin devolver error a nadie.
Asomarse a una cola
Devuelve los mensajes a la cola al terminar: mira sin consumir. Repetirlo enseña siempre la cabeza de la cola, no la página siguiente.
DLQ de salida
—
Reinyectar vuelve a enviar mensajes de WhatsApp de verdad, a destinatarios de verdad. Va por lotes de 100 como mucho, a propósito: entre lote y lote se puede mirar el resultado y parar.
Zona peligrosa
—Drenado ?
Purgar destruye los mensajes de la cola. No hay copia en ninguna parte y no hay vuelta atrás — por eso hay que teclear el nombre.
Drenar consume con ACK: se lleva los mensajes que el consumidor del cliente debería recibir. Viene apagado; el panel, por defecto, sólo espía.
Pods vivos
sondeado—
Del registro de Redis, con TTL de 15 s: un pod que deja de latir desaparece solo. La ausencia ES la señal, así que una lista corta puede significar que Redis no está.
Sesiones de la flota
——
«Último evento» es el reloj que sólo escribe el manejador de eventos entrantes: es lo único que distingue un socket abierto de un WhatsApp que sigue entregando. «Aleteo» son las reconexiones desde que la sesión existe.
Salud de la sesión
Historial de cambios
Qué está vigilado
—
Las reglas que Prometheus evalúa sobre este gateway, con quién las atiende y dónde está el procedimiento.
Detección de zombies
—
Una sesión zombie es la que el pod cree viva y no lo está.
¿Se envía todo?
—
El saliente no promete entrega, promete veredicto.
Buzón: lo que falta por procesar
—
La cola de trabajo del buzón durable, no su cola de muertos.
Acciones sobre un pod
—
Las tres caen sobre TODAS las sesiones del pod elegido, una a una y al ritmo del presupuesto de conexiones de la flota; ninguna reinicia el proceso. Redistribuir es lo que se quiere al escalar: suelta las sesiones para que otros pods las adopten. Drenar deja el pod vacío. Reiniciar recicla el socket sin mover nada de sitio.
—
Mapa del clúster
——
Los cuatro niveles del despliegue en una sola vista: qué pods hay, qué sesiones sostiene cada uno, qué sitios de voz atienden y qué comparte toda la flota.
Pods y las sesiones que sostienen
Sitios de voz
Lo que comparte toda la flota
Incidentes por sesión (este pod)
——
Los últimos errores registrados por cada sesión de ESTE pod, con su componente, instante y mensaje, para localizar y correlacionar un error concreto. Es el anillo en memoria (no sobrevive a un reinicio) y sólo cubre las sesiones que este pod sostiene; otro pod tiene los suyos.
Cuándo
Sesión
Componente
Mensaje
Se está perdiendo algo en silencio
—
Series cuyo valor distinto de cero significa que algo se está perdiendo o degradando sin que nadie reciba un error. Las explicaciones salen de docs/OPERATIONS.md.
Cola de errores
—
Sesiones con problemas
——
Qué binario corre cada cosa
—
La versión anunciada lleva el commit del binario. Un pod que no coincide con los demás corre otro binario; el sufijo «-dirty» significa que se compiló con el árbol modificado, o sea que ese commit no describe lo que corre.
Versión de WhatsApp Web (este pod)—
Extensión de navegador—
Broker
—
Con una alarma levantada, RabbitMQ no rechaza las publicaciones: las deja esperando. Las colas se ven vacías y tranquilas precisamente porque nadie puede publicar en ellas.
Bases de datos
—
Consultas lentas
—
El top de pg_stat_statements por tiempo total, un grupo por servidor. El texto viene normalizado (los valores ya reemplazados por $1, $2…), así que no expone datos. El call-site sale de la instrumentación app (de dónde del código sale la consulta), y la frecuencia es la ventana entre dos lecturas; cada consulta se puede expandir y copiar. «Sin medir» no es «no hay consultas lentas»: es que la extensión no está instalada en ese servidor.
Redis
—
Voz
—
«Nunca latió» no es una avería: ese sitio no se ha encendido todavía. «Caído» sí lo es —latía y dejó de hacerlo— y el asignador deja de mandarle números nuevos. El estado de un FreeSWITCH no se mide desde aquí: su socket de control es de loopback. Lo que sí se ve del switch es si consulta el directorio SIP.
Lambdas
—
Con el offload encendido, estas funciones SON el camino de la media: se despliegan y se rompen aparte del gateway. «No desplegada» sólo significa ausente cuando se pudo preguntar; si no, es desconocida. Un contador vacío es que CloudWatch no publicó ningún punto —Lambda no publica ceros—, no un cero medido.
Diagnóstico: reglas sobre lo medido
—
Reglas computadas sobre lo que se está midiendo ahora mismo. Una lista vacía significa que ninguna regla disparó — no que no se haya mirado: lo que no se pudo comprobar sale abajo, aparte.
Reglas que no se pudieron comprobar
El hierro de cada pod
——
Cada medida dice de qué es. Las marcadas como del host describen la máquina entera, así que varios pods que la compartan enseñan el mismo número — y eso no es un error, es lo que pasa.
Pulsa el nombre de una máquina para abrir su detalle completo aquí debajo.
Qué tiene configurado cada pod
—
Sólo lectura. Lo que interesa no es el listado sino la divergencia: si tus pods no coinciden en un knob, la mitad del tráfico se comporta distinto y nada más lo dice. De los secretos sólo se sabe si están puestos.
Las herramientas de cmd/
—
Cinco herramientas de línea de comandos. Dos se ejecutan desde aquí (con el pod marcado como banco); tres sólo se explican, porque ejecutarlas desde el panel mediría mal o escribiría algo real.
Banco en curso
—
Consumer MQ de testing
—
Dos consolas que drenan una cola con ACK puro y enseñan en vivo lo que llega. No es el consumidor de producción: no persiste ni reintenta, sólo vacía y muestra.
Drenar consume los mensajes de verdad. Con un consumidor real presente en la cola, arrancar responde 409 para no robarle mensajes.
Consola wa.incoming
—
Consola wa.telemetry
—
Log en vivo del pod
—
El log del proceso de ESTE pod, sobre un anillo en memoria acotado que no crece sin límite. Arrancar abre el stream y vuelca lo que hay en el buffer; parar lo cierra. Es local: cada pod sirve su propio log.
El log puede contener números de teléfono y otros datos de las sesiones. Sólo se abre con token de admin.
Voz, avatar e inteligencia de llamada
Lo que VideoCore dejó operativo.
Configuración de la sesión
Se guarda en la sesión, no en el pod.
—
—
Avatar de las videollamadas
El método y los clips propios del cliente.
Clips del cliente
mp4, webm o mov. De 2 a 10 segundos, máximo 20 MB.
Reglas y perfiles de asistente
Los perfiles se crean y editan aquí. Una regla decide a qué perfil va cada llamada; el perfil dice con qué proveedor, agente y cara la atiende.
Reglas, en el orden en que se evalúan
Las reglas de enrutado se muestran en sólo lectura desde el panel de administración; se editan desde la pestaña «Reglas» del teléfono de la sesión. (TODO #1045: exponer su escritura admin-prefijada.)
Perfiles de asistente
Llamadas de la sesión
Cuándo
Dir.
Con quién
Estado
Duración
Material
Configuración del pod (sólo lectura)
Se cambian en el entorno del pod y exigen reiniciarlo.