Back to Blog
TutorialJuly 1, 20225 min

Sniffing Real-Time Data

Es ist schwierig zu verstehen, was in komplexen Verarbeitungsszenarien tatsächlich passiert. layline.io hilft, indem es Abtastwerkzeuge bereitstellt, um Einblicke in das Innenleben komplexer Workflows zur Laufzeit zu erhalten.

Sniffing Real-Time Data

Die Herausforderung der Fehlersuche in komplexen Verarbeitungsströmen

Die Welt verwendet das Konzept von Workflows, um komplexe Verarbeitungsszenarien zu definieren. Eine der Eigenschaften solcher Workflows ist, dass sie sehr komplex sein können, da sie viele Schritte (Prozesse) enthalten, die basierend auf verschiedenen Bedingungen miteinander verbunden sind.

Daten durchlaufen diese Workflows, lösen Aktionen aus und werden basierend auf ihrem Inhalt und Zustand, unter anderem, weitergeleitet. Je komplexer ein Workflow und die ihn durchlaufenden Daten sind, desto schwieriger ist es, Probleme innerhalb des Workflows und der Daten zu erkennen, was zu unerwünschten Ergebnissen führen kann.

Praktisch alle solchen Systeme sind Blackboxes in der Art und Weise, wie sie Informationen verarbeiten. Man kann sich den Input ansehen, sehen, was auf der anderen Seite herauskommt, und versuchen zu verstehen, was dazwischen passiert ist. Möglicherweise kann man auch Debug-Ausgabeanweisungen im Code hinzufügen, um Schnappschüsse der Daten zu erfassen, um den Dingen auf den Grund zu gehen, oder alle Daten in ein Log ausgeben und dann versuchen, sie durchzusehen und die Punkte zu verbinden.

All dies ist einfach nur eine große Qual, frustrierend und sehr zeitaufwändig. Es muss einen besseren Weg geben.

Sniffing data in layline.io Workflows

Anstatt den Workflow dazu zu bringen, Debug-Informationen auszugeben, wäre ein intelligenterer Ansatz, den Workflow eher wie ein Computernetzwerk zu behandeln. Die Überwachung von Daten in Computernetzwerken ist nicht-invasiv, da Daten während des Durchlaufs durch das Netzwerk sondiert ("sniffed") werden. Mit anderen Worten: Sie reisen frei, werden aber an interessanten Punkten aufgenommen, um sie weiter zu analysieren, ohne den Fluss zu stören.

layline.io funktioniert auf die gleiche Weise. Es unterstützt das Sondieren einzelner Workflows für Daten, während sie ihre Aufgaben vollständig ausführen. Im Folgenden erklären wir, wie das funktioniert und werfen einen Blick auf die Vorteile.

Starten einer Sniffer-Session

Sonden werden initiiert und ihre Ergebnisse über das webbasierte Configuration Center angezeigt. Sonden können auf jedem laufenden Workflow gestartet werden. Gehen Sie dazu zu "/Operations —> Audit Trail/". Sie werden einen Tab sehen, der "Sniffer Sessions" sagt, den wir verwenden werden:

Sniffer Sessions - wie der Name schon sagt - öffnen eine Sitzung, die Daten sammelt und sie dann nach einem vordefinierten Volumen und/oder Zeit schließt. Die Ergebnisse der Sitzung werden gespeichert, und Sie können sich Zeit nehmen, um die Ergebnisse zu analysieren.

Um eine neue Sniffer-Session zu starten, müssen Sie auf das kleine Augensymbol rechts klicken. Dies öffnet einen Dialog, der Ihnen hilft, eine neue Sniffer-Session zu definieren:

Workflow auswählen

Links können wir einen Workflow aus allen laufenden Workflows auswählen. Die Auswahlmöglichkeiten sind:

  • Allgemein: Workflow sondieren, unabhängig davon, wo er läuft
  • Node-Ebene: Workflow sondieren, der auf einem bestimmten Node läuft
  • Instanz-Ebene: Spezifische Instanz eines Workflows sondieren, die auf einem bestimmten Node läuft

Dies gibt uns eine granulare Kontrolle darüber, von wo genau wir Daten sniffen möchten. Stellen Sie sich vor, Sie führen einen bestimmten Workflow auf mehreren Nodes und Instanzen aus, aber nur eine dieser Instanzen scheint Probleme zu haben. Hier können Sie angeben, dass Sie nur Daten von dieser bestimmten Instanz sniffen möchten, anstatt von jeder Workflow-Instanz.

Parameter

Rechts haben wir die Sitzungsparameter. Wir können Parameter wie einen individuellen Namen für die Sitzung hinzufügen, die maximale Anzahl von Nachrichten festlegen, die wir sondieren möchten, sowie ein Zeitlimit festlegen, wie lange wir in Sekunden auf Daten hören möchten.

Auslöser

Zuletzt können wir definieren, wann das sniffing gestartet werden soll. Sie können entweder sofort mit dem sniffing jeder vorbeifliegenden Nachricht beginnen oder nur dann starten, wenn ein neuer Stream beginnt, oder von der ersten Instanz, die antwortet, usw.

Sniffer-Ausführung

Sobald Sie im Dialog auf "OK" klicken, beginnt das sniffing. Eine offene Sniffer-Session wird erstellt, die auf Daten wartet. Abhängig von Ihren vorherigen Einstellungen bleibt die Sitzung offen, bis entweder die gewünschte Anzahl von Nachrichten sondiert wurde oder der maximale Dauer-Schwellenwert erreicht ist.

Wenn Nachrichten eingehen, werden ihre Metadaten auf der rechten Seite des Sniffer-Fensters mit den neuesten oben aufgelistet. Dies enthält Informationen wie die Zeit, den Nachrichtentyp, wo sie sniffed wurde (Instanz), den Namen des Streams und sehr wichtig, wo im Workflow sie sondiert wurde (Ort).

Sie fragen sich vielleicht, von wo im Workflow Nachrichten entnommen werden. Wie wir uns vorstellen können, ist der Nachrichteninhalt anfällig für Änderungen, während er die Prozessoren des Workflows durchläuft. Wo ist also der beste Ort, um Daten zu sondieren? Am Anfang, am Ende, irgendwo in der Mitte? Die Antwort ist, auf jeder verbindenden "Linie" in einem Workflow. Dies ist wiederum analog zum network sniffing, wo Sie nicht in Computern sniffen, sondern eher "auf dem Draht" zwischen Computern.

layline.io sniffed ebenso die gleiche Nachricht auf allen verbindenden Leitungen eines Workflows, was es Ihnen ermöglicht, eine Nachricht von Anfang bis Ende zu verfolgen, während sie den Workflow durchläuft.

Analyse

Beim Auswählen einer Nachricht aus der Ergebnisliste wird ihre Position, von der sie sniffed wurde, im Workflow-Diagramm im unteren Bereich des Fensters angezeigt. Achten Sie einfach auf die orange gepunktete Linie. Wenn Sie dieselbe Nachricht an anderen Stellen in der Liste auswählen, wird sie an anderen Stellen im Workflow-Diagramm angezeigt. Dies ermöglicht es Ihnen, tatsächlich eine Nachricht in all ihren Verarbeitungsstufen zu überprüfen und potenzielle Änderungen an derselben Nachricht zu vergleichen.

Zuletzt möchten wir wissen, was sich in der Nachricht befindet. Klicken Sie zu diesem Zweck auf das "+"-Zeichen am Anfang der Nachricht, um die Nachrichtenstruktur zu entfalten und alle enthaltenen Daten zu sehen.

Beachten Sie, dass die Sondierungsdaten gespeichert werden. Dies ist wirklich praktisch, falls Sie eine Anzahl von Sonden auf demselben Workflow ausführen und Ergebnisse zwischen mehreren Sniffer-Sessions vergleichen möchten.

Zusammenfassung

Eine normalerweise mühsame Aufgabe des Debuggens und Sondierens von Daten aus Millionen von Nachrichten wird mit layline.io super einfach gemacht. Wie in einer Produktionslinie für Kohle können Sie einfach etwas vom Förderband greifen, während es vorbeifliegt, und es analysieren, ohne den Herstellungsprozess zu stören.

Ziemlich cool.

Ressourcen

Share:

Enjoyed this article?

Subscribe to get more insights delivered to your inbox.