Angenommen, ich habe eine Tonne (ein kontinuierlicher Stream) von Anfragen zu verarbeiten, und jede Anfrage hat mehrere Stufen. Zum Beispiel: "Verbindung zur Datenquelle", "Daten aus Datenquelle lesen", "Daten validieren", "Daten verarbeiten", "Verbindung zur Datensenke", "Ergebnis in Datensenke schreiben".Wie visualisiert man das Verhalten vieler gleichzeitiger mehrstufiger Prozesse?
Welche Methoden Visualisierung oder auch Werkzeuge gut passen das Verhalten eines solchen Systems zu visualisieren?
Ich möchte gerne sehen, welche Stufen lange dauern und wie die Stufen der verschiedenen Anforderungen zueinander ausgerichtet sind (zum Beispiel um zu sehen, dass die Datenquelle länger reagiert, wenn auf sie zugegriffen wird zu viele Anfragen auf einmal).
Wenn es nur ein paar Dutzend Anfragen waren, würde ich mit ein paar Dutzend einzelnen farbigen Fristen in Ordnung sein, aber für ein paar tausend, die nicht gut passen. Ich denke, ich kann mit N farbigen Timelines davonkommen, wobei N der "Nebenläufigkeitsfaktor" ist, aber 1) vielleicht gibt es etwas Besseres, 2) gibt es vielleicht Werkzeuge dafür?
P.S. Schamloser Stecker: Sobald ich die beste Art der Visualisierung herausgefunden habe, füge ich sie meinem nützlichen Werkzeug timeplot hinzu;)
P.P.S. Noch ein schamloser Stecker: Ich beschloss, ein separates Tool zu schreiben: splot. Hier ist, was es tun kann, basierend auf einem einfachen Protokoll trivialer und einem awk Einzeiler:
Es ist 160 Kerne eines Clusters zeigt Aufgaben zugeführt, die ihnen von RabbitMQ durchführt. Blau ist "Daten holen", Orange ist "rechnen", weiß ist "nichts tun". Einige Probleme sind sofort aus diesem Diagramm ersichtlich, das nur durch das Betrachten der Protokolle sehr schwer zu finden wäre.
Das ist ziemlich toll! Auf der Ebene der Interdependenz bin ich nicht klar, aber in Fällen, in denen die äußersten rechten Aufgaben von denen auf der linken Seite abhängen, haben Sie das Äquivalent eines Diagramms zur Analyse kritischer Pfade. Ich werde sicher mit deiner Software basteln :) – Phillip