Inspector
El Inspector es una sola línea de tiempo para todas las herramientas: cada mensaje OSC, datagrama, intercambio HTTP, publicación MQTT, mensaje WebSocket, paquete retransmitido e intercambio de emulador aterriza ahí, decodificado, con los bytes de los que estaba hecho. Úsalo para ver qué pasó realmente por el cable, en qué orden y qué le ocurrió.
Vive en el panel inferior, como la pestaña Inspector junto a la consola, así que está en todas las pantallas. Haz clic en la pestaña para abrirlo; el panel se abre con altura suficiente para unas filas y el detalle de una trama. El botón ⤢ (A toda la altura de la ventana) hace que el panel ocupe toda la altura de la ventana. El Inspector conserva su lista y su selección mientras cierras el panel o cambias de pantalla.
Capturar
La captura está desactivada cuando Signal Lab arranca, y mientras está desactivada no cuesta nada: las herramientas ni siquiera construyen tramas.
- Abre la pestaña Inspector.
- Pulsa Activar captura. El punto de la pestaña se vuelve rojo y late.
- Usa cualquier herramienta. Las tramas aparecen en la parte superior de la lista, la más reciente primero.
- Pulsa Desactivar captura cuando tengas lo que necesitas.
La pestaña muestra cuántas tramas se han capturado, desde cualquier pantalla.
Las tramas se capturan desde el momento en que activas la captura, nunca antes: actívala primero y luego envía.
En un servidor, la captura pertenece al servidor: todas las páginas conectadas a él ven las mismas tramas, y activarla o vaciarla en una página lo hace para todas.
Qué se captura
| Herramienta | Tramas | Cuántas |
|---|---|---|
| OSC: envío | Cada mensaje enviado | Todos |
| OSC: monitor | Cada paquete recibido; uno que no se decodifica se marca con el error de decodificación | Todos |
| OSC: generador de señales | Mensajes enviados | Como máximo uno cada 100 ms, marcado sampled |
| Difusión: enviar una vez | Cada datagrama, uno por destino; un envío fallido con su error | Todos |
| Difusión: baliza | Datagramas enviados | Como máximo uno cada 50 ms |
| Difusión: escucha de descubrimiento | Sondeos recibidos | Como máximo uno cada 40 ms |
| Difusión: escucha de descubrimiento | Sus respuestas (auto-reply) | Todas |
| HTTP: envío, señales, solicitudes de experimentos | Cada intercambio: la línea de solicitud, el estado y el tiempo, los encabezados de la respuesta y el inicio del cuerpo | Todos |
| HTTP: ráfaga de carga y solicitudes bajo carga | Intercambios | Como máximo uno cada 100 ms |
| MQTT: conexión | Publicaciones enviadas | Todas |
| MQTT: conexión | Mensajes recibidos | Como máximo uno cada 200 ms |
| MQTT: una señal MQTT enviada mientras la pantalla no está conectada a su bróker | La publicación | Todas |
| WebSocket | Mensajes enviados y recibidos | Todos mientras el tráfico es ligero; como máximo 200 por segundo |
| Emuladores | Lo que llega y la respuesta, juntos | Como máximo un intercambio cada 10 ms |
| Degradación | Cada datagrama o fragmento retransmitido, en ambos sentidos, con su suerte | Como máximo uno cada 25 ms para los dos sentidos juntos |
| Tormenta (UDP) | Paquetes de inundación, todos idénticos | Uno por segundo, marcado sampled 1/s; una tormenta TCP no captura ninguno |
| Escáner | Cada puerto abierto, con su banner | Todos |
| Experimentos | Lo que envían los pasos de una ejecución (un mensaje TCP: la carga útil escrita y la respuesta leída) y lo que reciben sus esperas | Como la herramienta que usa |
Una herramienta que muestrea deja el resto fuera a propósito y los cuenta: la siguiente trama que sí dibuja dice cuántas se guardó, en su veredicto como +n not shown (sampled · +5 not shown). El recuento es de lo que la herramienta habría dibujado, no de lo que la propia captura descartó (consulta Recuentos y huecos).
La lista de tramas
| Columna | Qué |
|---|---|
| Hora | Cuándo se capturó, al milisegundo. |
| Sentido | → enviada (tx), ← recibida (rx). Para un relé, → es del cliente al destino y ← del destino al cliente. |
| Proto. | osc, udp, tcp, http, mqtt o ws. |
| Par | El otro extremo: un IP:port, una URL, un bróker. |
| Bytes | El tamaño de la trama. |
| Resumen | Una línea en la notación propia del protocolo, como /fader/1 0.75 o GET http://127.0.0.1:8080/ → 200 in 3ms. |
| Veredicto | Qué le ocurrió, cuando hay algo que decir. |
El veredicto es verde, ámbar o rojo. Rojo es una pérdida o un fallo (dropped (loss), failed, error: …); ámbar es una trama alterada o solo una muestra de muchas (corrupted, copy 2/2, sampled, +n not shown); verde es el resto. Algunos veredictos que verás:
| Veredicto | De | Significa |
|---|---|---|
forwarded +42ms | Degradación | Reenviada tras ese retardo; pueden seguir · corrupted, · reordered o · copy 1/2. |
dropped (loss), dropped (burst), dropped (offline) | Degradación | Perdida a propósito, y por qué. |
throttled | Degradación | Descartada por el límite de ancho de banda. |
· client→target, · target→client | Degradación | Cierra el veredicto de cada trama retransmitida, antes de cualquier +n not shown: hacia dónde iba. |
#2 → 200 OK · 37 B, — → 404 … | Emuladores | Qué regla respondió (—: ninguna) y la respuesta. |
down, down → 503 | Emuladores | Llegó mientras el emulador estaba caído. |
200 OK, failed | HTTP | El estado de la respuesta, o ninguna respuesta. |
open | Escáner | Un puerto abierto. |
auto-reply | Descubrimiento | Una respuesta que la escucha envió a un sondeo. |
clears retained | MQTT | Una publicación retenida vacía. |
+n not shown | Cualquier herramienta que muestree | Se dejaron fuera esas tramas desde la anterior; sigue al otro veredicto de la trama tras un ·. |
La lista conserva las 4000 tramas más recientes y dibuja las 300 más recientes que coinciden con los filtros; bajo los filtros dice cuántas muestra de cuántas coinciden.
Filtrar
- Escribe en el campo de texto (filtrar por dirección, par, origen…) para conservar las tramas cuyo resumen, extremo, origen, protocolo o veredicto contenga el texto.
- Haz clic en las etiquetas de protocolo (
osc,udp,tcp,http,mqtt,ws) para mostrar solo esos protocolos. Sin ninguna activada, se muestran todos los protocolos. - Haz clic en
txorxpara mostrar solo las tramas enviadas o solo las recibidas. - restablecer limpia los tres.
Los filtros cambian solo lo que muestra la lista. La captura, los recuentos y una exportación siempre abarcan todo.
Pausar y vaciar
Pausar vista congela la lista para que puedas leerla mientras el tráfico continúa; la captura sigue. Reanudar vista deja entrar tramas nuevas otra vez. Las tramas que llegaron mientras la vista estaba en pausa no se añaden a la lista, pero están en la captura y en una exportación.
Borrar vacía la lista y la captura, y restablece sus recuentos.
Recuentos y huecos
La barra de la parte superior cuenta las tramas capturadas y sus bytes, y cuán llena está la captura (tramas retenidas de 8192).
Cuando las tramas llegan más rápido de lo que la lista puede aceptarlas —más de 250 en una octava parte de segundo—, la lista omite las más antiguas. Una etiqueta ámbar cuenta entonces las tramas no mostradas, y una fila en la lista marca dónde faltan. Esas tramas siguen en la captura, a menos que otras más nuevas las hayan desplazado desde entonces: expórtala para verlas.
El detalle de una trama
Haz clic en una fila para ver la trama a la derecha.
| Campo | Qué |
|---|---|
| n.º | El número de la trama. Los números suben en orden de captura y nunca se reutilizan. |
| Hora | Cuándo se capturó. |
| sentido | Enviada o recibida. |
| Protocolo | Como en la lista. |
| origen | La herramienta que la capturó (osc-send, osc-monitor, netsim, emulator, experiment-wait, …), y su número de tarea cuando pertenece a una. |
| local | La dirección de este lado, cuando la hay. Para una trama retransmitida, la dirección en la que escucha el relé. |
| Par | El otro extremo. Para una trama retransmitida, hacia dónde iba: el destino, o el cliente al que volvió la respuesta. |
| tamaño | Su tamaño en bytes. |
| Veredicto | Como en la lista. |
Bajo Decodificado está la trama leída en su protocolo: cada mensaje de un bundle OSC con sus argumentos, los encabezados de una respuesta HTTP y el inicio de su cuerpo, la solicitud y la respuesta de un emulador.
Bajo Bytes hay un volcado hex: desplazamiento, 16 bytes en hex y los mismos bytes como texto. La lista lleva el primer KiB de cada trama; cuando una trama es más larga, un botón bajo el volcado carga todo.
Qué conserva una trama
| Límite | Valor | Al llegar al límite |
|---|---|---|
| Bytes que conserva una trama | 256 KiB | Una trama más larga conserva sus primeros 256 KiB y dice cuánto del total conservó. |
| Tramas en la captura | 8192 | La trama más antigua hace sitio. |
| Bytes que conserva la captura en total | 64 MiB | Las tramas más antiguas hacen sitio. |
Algunas tramas no conservan bytes: los intercambios HTTP (su tamaño se registra, y los encabezados de la respuesta y el inicio del cuerpo están en el texto decodificado) y los puertos abiertos del Escáner.
Una trama MQTT conserva la carga útil del mensaje, no el paquete del protocolo que lo rodea; el tema, el QoS y el indicador de retención están en su resumen.
Secretos
Mientras una ejecución de experimento o Enviar ahora usa secretos, sus valores se enmascaran en cada trama antes de capturarla: •••• en el resumen, el texto decodificado, las direcciones y el veredicto, y * por cada byte de la carga útil, para que los desplazamientos del volcado sigan siendo ciertos. Las credenciales de la pantalla HTTP tampoco aparecen nunca: una trama HTTP contiene la respuesta, no el encabezado Authorization que se envió.
Guardar una trama como señal
Para guardar un paquete que has capturado y volver a enviarlo más tarde, cuando el dispositivo que lo envió ya no está:
- Selecciona la trama.
- Pulsa Guardar como señal.
La señal va a la carpeta Capturadas de la biblioteca de señales con todos los bytes de la trama, tomados de lo que conservó la captura, no del texto decodificado. Se nombra a partir del resumen de la trama, y su nota dice de qué trama viene.
Lo que obtienes depende de la trama:
| Trama | Señal |
|---|---|
| Un datagrama OSC o UDP | Una señal UDP sin procesar con los bytes de la trama, en hex. |
| Una publicación MQTT —enviada, recibida o de un emulador— | Una señal MQTT con el bróker, el tema, el QoS y el indicador de retención de la trama, y su carga útil como texto, exactamente como estaba. Una carga útil vacía se conserva, así que limpiar un valor retenido se puede guardar. |
| Cualquier otra cosa: un flujo TCP (incluido uno que llevó un relé, o el del nodo TCP), un intercambio HTTP, un mensaje WebSocket, un paquete MQTT que no es una publicación (la suscripción de un cliente en un emulador) | Nada: el botón está desactivado y su consejo dice por qué. Una señal envía un datagrama o una publicación; estas no se pueden volver a enviar como estaban. |
Un datagrama se envía a:
- una trama recibida: la dirección que la recibió (el lado local), para que la señal haga el papel del emisor;
- una trama enviada: el extremo al que se envió;
- una trama retransmitida, en cualquier sentido: la dirección hacia la que iba: el destino para una trama que va desde el cliente, el cliente para una respuesta.
Cuando esa dirección es todas las direcciones de este equipo —un monitor que escucha en 0.0.0.0:9000 o [::]:9000—, la señal se dirige a este equipo en su lugar: 127.0.0.1:9000 o [::1]:9000. Abre la señal y cambia su destino si quieres otra dirección.
Una señal MQTT va al bróker que indica la trama. Se llega a un bróker que escucha en todas las direcciones por 127.0.0.1 de la misma manera.
El botón también está desactivado para:
- una trama que no se conservó entera: una mayor de 256 KiB, o una que no conservó ningún byte;
- un mensaje MQTT cuya carga útil no es texto: la carga útil de una señal es texto, así que sus bytes no se podrían volver a enviar como estaban;
- una trama recibida que no nombra ningún socket de este lado, así que no hay dirección a la que enviar.
Una trama que la captura ya ha soltado tampoco se puede guardar; la consola lo indica. Mientras no se puede leer el archivo de la biblioteca, Guardar como señal también está desactivado, y el consejo muestra el error del archivo (consulta Señales).
Exportar
Exportar .jsonl y Exportar .txt escriben toda la captura —hasta 8192 tramas, cada byte que conservó cada una, digan lo que digan los filtros— en un archivo capture-<time>.jsonl o capture-<time>.txt en la carpeta de datos (consulta Archivos). La consola dice dónde. En un navegador conectado a un servidor, el archivo se escribe en el servidor y tu navegador lo descarga.
Una captura vacía no se escribe; la consola dice que no hay nada que guardar.
.jsonl— un objeto JSON por línea, una línea por trama:seq,ts(milisegundos desde 1970),proto,dir,source,job_id,local,remote,bytes,kept,summary,detail,hex(el volcado del primer KiB),verdictydata, los bytes que conservó en base64..txt— para leer: una línea por trama con su número, hora, dirección, protocolo, extremo, tamaño y veredicto, y luego su resumen, su texto decodificado y un volcado hex de cada byte que conservó.
{"seq":12,"ts":1767225600123,"proto":"osc","dir":"rx","source":"osc-monitor","job_id":3,"local":"0.0.0.0:9000","remote":"127.0.0.1:53211","bytes":20,"summary":"/fader/1 0.75","detail":"/fader/1 0.75","hex":"0000 2f 66 61 64 65 72 2f 31 00 00 00 00 2c 66 00 00 |/fader/1....,f..|\n0010 3f 40 00 00 |?@..|\n","verdict":null,"kept":20,"data":"L2ZhZGVyLzEAAAAALGYAAD9AAAA="}Venir de otros sitios
Otras pantallas apuntan a tramas: una espera en la línea de tiempo de un experimento enlaza la trama con la que coincidió, y la lista de lo recibido de un emulador tiene un botón ⌕ (Abrir en el Inspector) en cada intercambio. Seguir uno abre el Inspector con esa trama seleccionada, los filtros limpios y la vista reanudada.
Véase también
- Señales: en qué se convierte una trama guardada.
- Degradación: los veredictos del relé.
- Emuladores: lo que recibió un emulador.