layline.io Blog
Sniffing von Echtzeitdaten.
Es ist schwer zu verstehen, was in komplexen Verarbeitungsszenarien tatsächlich passiert. layline.io hilft durch die Bereitstellung von Sondierungswerkzeugen, um Einblicke in die inneren Abläufe komplexer Workflows zur Laufzeit zu erhalten.
Reading time: 5 min.
Die Herausforderung der Fehlersuche bei Daten in komplexen Verarbeitungsströmen
Die Welt verwendet den Begriff des Workflows, um komplexe Verarbeitungsszenarien zu definieren. Eines der Merkmale solcher Workflows ist, dass sie sehr komplex sein können, da sie viele Schritte (Prozesse) enthalten, die auf der Grundlage verschiedener Bedingungen miteinander verknüpft sind.
Daten durchlaufen diese Workflows, lösen Aktionen aus und werden u. a. auf der Grundlage ihres Inhalts und Zustands weiterverarbeitet. Je komplexer ein Workflow und die ihn durchlaufenden Daten sind, desto schwieriger ist es, Probleme innerhalb des Workflows und der Daten zu erkennen, die zu unerwünschten Ergebnissen führen können.
So gut wie alle Systeme dieser Art sind Blackboxen, die Informationen verarbeiten. Man kann sich den Input anschauen, sehen, was auf der anderen Seite herauskommt und versuchen zu verstehen, was dazwischen passiert ist. Man kann auch Debug-Output-Anweisungen in den Code einfügen, um Schnappschüsse von Daten zu erhalten, um den Dingen auf den Grund zu gehen, oder man kann alle Daten in ein Protokoll schreiben und dann versuchen, sie zu durchsuchen und die Punkte zu verbinden.
All das ist sehr mühsam, frustrierend und zeitraubend. Es muss doch einen besseren Weg geben.
Daten in layline.io Workflows ausspähen
Anstatt den Workflow dazu zu bringen, Debug-Informationen auszuspucken, wäre ein intelligenterer Ansatz, den Workflow eher wie ein Computernetzwerk zu behandeln. Die Überwachung von Daten in Computernetzwerken ist insofern nicht-invasiv, als dass die Daten während der Durchquerung des Netzwerks abgefragt ("gesnifft") werden. Mit anderen Worten: Die Daten bewegen sich ungehindert, werden aber an interessanten Punkten zur weiteren Analyse abgefangen, ohne den Fluss zu stören.
layline.io arbeitet auf die gleiche Weise. Es unterstützt die Abfrage einzelner Workflows nach Daten, während diese ihre Aufgaben vollständig ausführen. Im Folgenden wird erklärt, wie dies funktioniert und welche Vorteile dies mit sich bringt.
Starten einer Sniffer-Sitzung
Über das webbasierte Configuration Center werden Probes initiiert und deren Ergebnisse angezeigt. Sonden können in jedem laufenden Workflow gestartet werden. Gehen Sie dazu zu "/Operationen -> Audit Trail/". Dort sehen Sie eine Registerkarte mit der Bezeichnung "Sniffer Sessions" (1↓), die wir verwenden werden:
Sniffer-Sitzungen - wie der Name schon sagt - eröffnen eine Sitzung, die Daten sammelt und sie nach einem vordefinierten Volumen und/oder einer vordefinierten Zeit wieder schließt. Die Ergebnisse der Sitzung werden gespeichert, und Sie können die Ergebnisse in aller Ruhe analysieren.
Um eine neue Sniffer-Sitzung zu starten, müssen Sie auf die kleine Augen-Schaltfläche rechts klicken (2↑). Daraufhin wird ein Dialog angezeigt, mit dessen Hilfe Sie eine neue Sniffer-Sitzung definieren können:
Workflow auswählen
Auf der linken Seite können wir einen Workflow aus allen laufenden Workflows auswählen. Die Auswahlmöglichkeiten sind:
- Generell (2a↑): Probe Workflow unabhängig davon, wo er läuft
- Knotenebene (2b↑): Probe-Workflow läuft auf einem bestimmten Knoten
- Instanz-Ebene (2c↑): Sondieren einer bestimmten Instanz des Workflows, die auf einem bestimmten Knoten läuft
Dies gibt uns eine granulare Kontrolle darüber, wo genau wir Daten ausspähen wollen. Stellen Sie sich vor, Sie lassen einen bestimmten Workflow auf mehreren Knoten und Instanzen laufen, aber nur eine dieser Instanzen scheint Probleme zu haben. Hier können Sie angeben, dass Sie nur Daten von dieser bestimmten Instanz und nicht von allen Workflow-Instanzen abfragen möchten.
Parameter
Auf der rechten Seite finden Sie die Sitzungsparameter (3↑). In (4↑) sehen wir, was wir auf der linken Seite ausgewählt haben. Wir können dann Parameter wie einen individuellen Namen für die Sitzung hinzufügen (5↑), die maximale Anzahl von Nachrichten festlegen, nach denen wir suchen wollen (6↑), sowie ein Zeitlimit für die Dauer des Abhörens in Sekunden festlegen (7↑).
Trigger
Zu guter Letzt können wir festlegen, wann das Sniffing gestartet werden soll. Man kann entweder sofort mit dem Sniffing beginnen, wenn eine Nachricht vorbeikommt, oder nur, wenn ein neuer Stream beginnt, oder ab der ersten Instanz, die antwortet, usw.
Sniffer-Ausführung
Sobald Sie im Dialogfeld auf "OK" klicken, beginnt das Sniffing. Es wird eine offene Sniffer-Sitzung erstellt, die auf Daten wartet. Je nach Ihren vorherigen Einstellungen bleibt die Sitzung so lange geöffnet, bis entweder die gewünschte Anzahl von Nachrichten abgefragt oder der Schwellenwert für die maximale Dauer erreicht wurde.
Wenn Nachrichten eintreffen, werden ihre Metadaten auf der rechten Seite des Sniffer-Fensters aufgelistet, wobei die neuesten oben stehen (1↓). Sie enthalten Informationen wie die Uhrzeit, die Art der Nachrichten, den Ort, an dem sie gesnifft wurden (Instanz), den Namen des Datenstroms und - sehr wichtig - die Stelle im Arbeitsablauf, an der sie abgefragt wurden (Standort).
Sie fragen sich vielleicht, woher die Meldungen im Workflow stammen. Wie wir uns vorstellen können, kann der Inhalt von Nachrichten auf dem Weg durch die Prozessoren des Workflows verändert werden. Wo ist also der beste Ort, um nach Daten zu suchen? Am Anfang, am Ende, irgendwo in der Mitte? Die Antwort lautet: auf jeder Verbindungsleitung in einem Workflow. Dies ist wiederum analog zum Netzwerk-Sniffing, bei dem man nicht in Computern schnüffelt, sondern "auf dem Draht" zwischen Computern.
layline.io schnüffelt ebenfalls die gleiche Nachricht auf allen Verbindungsleitungen eines Workflows, was Ihnen erlaubt, eine Nachricht von Anfang bis Ende zu verfolgen, während sie den Workflow durchläuft.
Analyse
Wenn Sie eine Nachricht aus der Ergebnisliste auswählen, wird ihre Position, ab der sie gesnifft wurde, im Workflow-Diagramm im unteren Teil des Fensters angezeigt (3↓). Achten Sie einfach auf die orange gepunktete Linie. Wenn Sie dieselbe Meldung an anderen Stellen in der Liste auswählen, wird sie an anderen Stellen im Workflow-Diagramm angezeigt. Auf diese Weise können Sie eine Nachricht in allen Phasen ihrer Bearbeitung überprüfen und mögliche Änderungen an derselben Nachricht vergleichen.
Zu guter Letzt möchten wir wissen, was in der Nachricht enthalten ist. Zu diesem Zweck klicken Sie auf das "+"-Zeichen am Anfang der Nachricht (2↑ oder 1↓), um die Struktur der Nachricht zu entfalten und alle enthaltenen Daten zu sehen (2↓).
Beachten Sie, dass die Sondierungsdaten aufbewahrt werden. Dies ist sehr praktisch, wenn Sie mehrere Sondierungen für denselben Workflow durchführen und die Ergebnisse zwischen mehreren Sniffer-Sitzungen vergleichen möchten.
Zusammenfassung
Mit layline.io wird die normalerweise mühsame Aufgabe des Debuggens und Sondierens von Daten aus Millionen von Nachrichten sehr einfach. Wie in einem Fließband für Kohle kann man einfach ein paar Daten vom Fließband nehmen, während sie vorbeifliegen, und sie analysieren, ohne den Produktionsprozess zu stören.
Ziemlich cool.
Ressourcen
- Erfahren Sie hier mehr über layline.io.
- Kontaktieren Sie uns hello@layline.io.