Zurück zum Blog
TutorialJuly 1, 20225 min

Sniffing Real-Time Data

Es difícil entender lo que realmente está sucediendo en escenarios de procesamiento complejos. layline.io ayuda proporcionando herramientas de sondeo para obtener información sobre el funcionamiento interno de Workflows complejos en tiempo de ejecución.

Sniffing Real-Time Data

El desafío de depurar datos en flujos de procesamiento complejos

El mundo utiliza la noción de Workflows para definir escenarios de procesamiento complejos. Una de las características de tales Workflows es que pueden ser muy complejos ya que contienen muchos pasos (procesos) que están interconectados basados en varias condiciones.

Los datos atraviesan estos Workflows, desencadenan acciones y se empujan más allá basados en su contenido y estado, entre otras cosas. Cuanto más complejo es un Workflow y los datos que lo atraviesan, más difícil es detectar problemas dentro del Workflow y los datos, lo que puede llevar a resultados no deseados.

Prácticamente todos estos sistemas son cajas negras en la forma en que procesan la información. Puedes mirar la entrada, ver qué sale del otro lado e intentar entender qué sucedió en el medio. También puedes ser capaz de añadir declaraciones de salida de depuración en el código para capturar instantáneas de datos con el fin de llegar al fondo de las cosas, o simplemente volcar todos los datos a un registro y luego intentar revisarlo y conectar los puntos.

Todo esto es simplemente un gran dolor, frustrante y muy lento. Tiene que haber una mejor manera.

Sniffing data in layline.io Workflows

En lugar de hacer que el Workflow escupa información de depuración, un enfoque más inteligente sería tratar el Workflow más como una red de computadoras. Monitorear datos en redes de computadoras es no invasivo en el sentido de que los datos son sondeados ("sniffed") mientras atraviesan la red. En otras palabras: viajan libremente, pero se recogen en puntos de interés para un análisis posterior sin perturbar el flujo.

layline.io funciona de la misma manera. Soporta sondear Workflows individuales para datos mientras están ejecutando completamente sus tareas. A continuación, explicaremos cómo funciona esto y veremos las ventajas.

Iniciando una Sniffer Session

Las sondas se inician y sus resultados se visualizan a través del Configuration Center basado en la web. Las sondas se pueden iniciar en cualquier Workflow en ejecución. Para hacerlo, dirígete a "/Operations —> Audit Trail/". Verás una pestaña que dice "Sniffer Sessions", que es lo que usaremos:

Las Sniffer Sessions, como su nombre indica, abren una sesión que recopila datos y luego la cierra después de un volumen y/o tiempo predefinido. Los resultados de la sesión se persisten, y puedes tomarte tu tiempo para analizar los resultados.

Para iniciar una nueva Sniffer Session, necesitas hacer clic en el pequeño botón de ojo a la derecha. Esto abrirá un diálogo que te ayudará a definir una nueva Sniffer Session:

Elegir Workflow

A la izquierda podemos elegir un Workflow de todos los Workflows en ejecución. Las opciones son:

  • Generalmente: Sondear Workflow independientemente de dónde se esté ejecutando
  • Nivel de nodo: Sondear Workflow ejecutándose en un nodo específico
  • Nivel de instancia: Sondear instancia específica de Workflow ejecutándose en un nodo específico

Esto nos da un control granular sobre de dónde exactamente queremos sniff datos. Imagina ejecutar un Workflow específico en múltiples nodos e instancias, pero solo una de esas instancias parece tener problemas. Aquí puedes especificar que solo quieres sniff datos de esa instancia particular en lugar de cualquier instancia de Workflow.

Parámetros

A la derecha tenemos los Parámetros de Sesión. Podemos añadir parámetros como un nombre individual para la sesión, establecer el número máximo de mensajes que queremos sondear, así como establecer un límite de tiempo para cuánto tiempo queremos escuchar datos en segundos.

Disparador

Por último, podemos definir cuándo se debe iniciar el sniffing. Puedes comenzar con sniffing instantáneamente cualquier mensaje que pase, o solo comenzar cuando se inicie un nuevo flujo, o desde la primera instancia que responda, etc.

Ejecución del Sniffer

Una vez que presionas "OK" en el diálogo, el sniffing comenzará. Se creará una Sniffer Session abierta, esperando datos. Dependiendo de tus configuraciones previas, la sesión permanecerá abierta hasta que se haya sondeado el número deseado de mensajes o se haya alcanzado el umbral de duración máxima.

A medida que llegan los mensajes, sus metadatos se listan en el lado derecho de la ventana Sniffer con el más reciente en la parte superior. Esto contiene información como la hora, tipo de mensajes, dónde fue sniffed (instancia), el nombre del flujo, y muy importante, dónde en el workflow fue sondeado (ubicación).

Puedes preguntarte de dónde se toman los mensajes en el Workflow. Como podemos imaginar, el contenido del mensaje es propenso a ser modificado a medida que atraviesa los procesadores del Workflow. Entonces, ¿dónde es el mejor lugar para sondear datos? ¿Al principio, al final, en algún lugar en el medio? La respuesta es, en cada "línea" de conexión en un Workflow. Esto es nuevamente análogo al network sniffing, donde no sniff en las computadoras, sino más bien "en el cable" entre computadoras.

layline.io de manera similar sniff el mismo mensaje en todos los cables de conexión de un Workflow, lo que te permite seguir un mensaje de principio a fin mientras pasa por el Workflow.

Análisis

Al seleccionar un mensaje de la lista de resultados, su posición desde donde fue sniffed se mostrará en el gráfico del Workflow en la sección inferior de la ventana. Solo verifica la línea punteada naranja. Seleccionar el mismo mensaje en otras ubicaciones de la lista lo mostrará en otras ubicaciones en el gráfico del Workflow. Esto te permite realmente verificar un mensaje en todas sus etapas de procesamiento y comparar posibles cambios en el mismo mensaje.

Por último, nos gustaría saber qué hay dentro del mensaje. Para este propósito, haz clic en el signo "+" al principio del mensaje para desplegar la estructura del mensaje y ver todos los datos contenidos.

Nota que los datos de sondeo se persisten. Esto es realmente conveniente en caso de que estés ejecutando varias sondas en el mismo Workflow y quieras comparar resultados entre múltiples Sniffer Sessions.

Resumen

Una tarea generalmente engorrosa de depurar y sondear datos de millones de mensajes se hace súper simple con layline.io. Como en una línea de producción de carbón, puedes simplemente tomar algo de la cinta transportadora mientras pasa, y analizarlo sin perturbar el proceso de fabricación.

Bastante genial.

Recursos

Share:

Enjoyed this article?

Subscribe to get more insights delivered to your inbox.