Back to Blog
TutorielJuly 1, 20225 min

Sniffing Real-Time Data

Il est difficile de comprendre ce qui se passe réellement dans des scénarios de traitement complexes. layline.io aide en fournissant des outils de sondage pour obtenir des informations sur le fonctionnement interne des Workflows complexes en temps réel.

Sniffing Real-Time Data

Le défi du débogage des données dans des flux de traitement complexes

Le monde utilise la notion de Workflows pour définir des scénarios de traitement complexes. L'une des caractéristiques de ces Workflows est qu'ils peuvent être très complexes, car ils contiennent de nombreuses étapes (processus) qui sont interconnectées en fonction de diverses conditions.

Les données traversent ces Workflows, déclenchent des actions et sont poussées plus loin en fonction de leur contenu et de leur état, entre autres. Plus un Workflow et les données qui le traversent sont complexes, plus il est difficile de repérer les problèmes au sein du Workflow et des données, ce qui peut conduire à des résultats indésirables.

Pratiquement tous ces systèmes sont des boîtes noires dans la façon dont ils traitent l'information. Vous pouvez regarder l'entrée, voir ce qui sort de l'autre côté et essayer de comprendre ce qui s'est passé entre les deux. Vous pouvez également ajouter des instructions de sortie de débogage dans le code pour capturer des instantanés de données afin de comprendre les choses, ou carrément déverser toutes les données dans un journal, puis essayer de les parcourir et de relier les points.

Tout cela est une vraie galère, frustrant et très chronophage. Il doit y avoir une meilleure façon.

Sniffing data in layline.io Workflows

Au lieu de faire en sorte que le Workflow crache des informations de débogage, une approche plus intelligente consisterait à traiter le Workflow davantage comme un réseau informatique. La surveillance des données dans les réseaux informatiques est non invasive en ce sens que les données sont sondées ("sniffed") tout en traversant le réseau. En d'autres termes : elles circulent librement, mais sont captées à des points d'intérêt, pour une analyse plus approfondie sans perturber le flux.

layline.io fonctionne de la même manière. Il prend en charge la sonde de Workflows individuels pour les données pendant qu'ils exécutent pleinement leurs tâches. Ci-dessous, nous expliquerons comment cela fonctionne et examinerons les avantages.

Démarrer une Sniffer Session

Les sondes sont initiées et leurs résultats visualisés via le Configuration Center basé sur le web. Les sondes peuvent être démarrées sur n'importe quel Workflow en cours d'exécution. Pour ce faire, rendez-vous sur "/Operations —> Audit Trail/". Vous verrez un onglet qui dit "Sniffer Sessions" que nous allons utiliser :

Les Sniffer Sessions - comme le nom l'indique - ouvrent une session qui collecte des données et la ferment ensuite après un volume et/ou un temps prédéfini. Les résultats de la session sont conservés, et vous pouvez prendre votre temps pour analyser les résultats.

Pour démarrer une nouvelle Sniffer Session, vous devez cliquer sur le petit bouton en forme d'œil à droite. Cela fera apparaître une boîte de dialogue qui vous aidera à définir une nouvelle Sniffer Session :

Choisir le Workflow

À gauche, nous pouvons choisir un Workflow parmi tous les Workflows en cours d'exécution. Les choix sont :

  • Généralement : Sonder le Workflow indépendamment de l'endroit où il s'exécute
  • Niveau de nœud : Sonder le Workflow s'exécutant sur un nœud spécifique
  • Niveau d'instance : Sonder une instance spécifique du Workflow s'exécutant sur un nœud spécifique

Cela nous donne un contrôle granulaire sur l'endroit exact où nous voulons sniff les données. Imaginez exécuter un Workflow spécifique sur plusieurs nœuds et instances, mais une seule de ces instances semble avoir des problèmes. Ici, vous pouvez spécifier que vous ne souhaitez sniff les données que de cette instance particulière au lieu de n'importe quelle instance de Workflow.

Paramètres

À droite, nous avons les paramètres de session. Nous pouvons ajouter des paramètres comme un nom individuel pour la session, définir le nombre maximum de messages que nous voulons sonder, ainsi que définir une limite de temps pour combien de temps nous voulons écouter les données en secondes.

Déclencheur

Enfin, nous pouvons définir quand le sniffing doit commencer. Vous pouvez soit commencer instantanément avec sniffing tout message qui passe, soit commencer uniquement lorsqu'un nouveau flux commence, ou à partir de la première instance qui répond, etc.

Exécution du Sniffer

Une fois que vous appuyez sur "OK" dans la boîte de dialogue, le sniffing commencera. Une Sniffer Session ouverte sera créée, en attente de données. Selon vos paramètres précédents, la session restera ouverte jusqu'à ce que le nombre souhaité de messages ait été sondé ou que le seuil de durée maximale ait été atteint.

Au fur et à mesure que les messages arrivent, leurs métadonnées sont listées sur le côté droit de la fenêtre du Sniffer avec le plus récent en haut. Cela contient des informations telles que l'heure, le type de messages, où il a été sniffed (instance), le nom du flux, et très important, où dans le Workflow il a été sondé (emplacement).

Vous vous demandez peut-être d'où dans le Workflow les messages sont pris. Comme nous pouvons l'imaginer, le contenu des messages est susceptible d'être modifié au fur et à mesure qu'il traverse les processeurs du Workflow. Alors, où est le meilleur endroit pour sonder les données ? Au début, à la fin, quelque part au milieu ? La réponse est, sur chaque "ligne" de connexion dans un Workflow. Cela est à nouveau analogue au network sniffing, où vous ne sniff pas dans les ordinateurs, mais plutôt "sur le fil" entre les ordinateurs.

layline.io sniff de la même manière le même message sur tous les fils de connexion d'un Workflow, ce qui vous permet de suivre un message du début à la fin au fur et à mesure qu'il passe à travers le Workflow.

Analyse

En sélectionnant un message dans la liste des résultats, sa position d'où il a été sniffed sera affichée dans le graphique du Workflow en bas de la fenêtre. Vérifiez simplement la ligne pointillée orange. Sélectionner le même message à d'autres endroits sur la liste le montrera à d'autres endroits dans le graphique du Workflow. Cela vous permet de vérifier réellement un message à toutes ses étapes de traitement et de comparer les changements potentiels au même message.

Enfin, nous aimerions savoir ce qu'il y a à l'intérieur du message. Pour cela, cliquez sur le signe "+" au début du message pour déplier la structure du message et voir toutes les données contenues.

Notez que les données de sondage sont conservées. C'est vraiment pratique au cas où vous exécutez un certain nombre de sondes sur le même Workflow et que vous souhaitez comparer les résultats entre plusieurs Sniffer Sessions.

Résumé

Une tâche généralement fastidieuse de débogage et de sondage de données à partir de millions de messages est rendue très simple avec layline.io. Comme dans une chaîne de production de charbon, vous pouvez simplement en saisir un peu sur le tapis roulant au fur et à mesure qu'il passe, et l'analyser sans perturber le processus de fabrication.

Plutôt cool.

Ressources

Share:

Enjoyed this article?

Subscribe to get more insights delivered to your inbox.