Datengesteuertes Debuggen mithilfe des Auftragsdiagramms

Mithilfe des Auftragsdiagramms auf dem Blatt Überwachung im Azure-Portal können Sie Ihre Auftrags-Pipeline visualisieren. Sie zeigt Ein- und Ausgaben sowie Abfrageschritte an. Mithilfe des Auftragsdiagramms können Sie die Metriken für jeden Schritt untersuchen, um die Ursache eines Problems bei der Problembehandlung schneller zu isolieren.

Verwendung des Auftragsdiagramms

Wählen Sie im Azure-Portal bei geöffnetem Stream Analytics-Auftrag unter SUPPORT + PROBLEMBEHANDLUNG die Option Auftragsdiagramm:

Job diagram with metrics - location

Durch Auswählen der einzelnen Abfrageschritte wird ein entsprechender Abschnitt in einem Bereich zur Bearbeitung der Abfrage angezeigt. Eine Metrikdiagramm für den jeweiligen Schritt wird im unteren Bereich der Seite angezeigt.

Job diagram with metrics - basic job

Um die Partitionen der Azure Event Hubs-Eingabe anzuzeigen, wählen Sie . . . Ein Kontextmenü wird angezeigt. Zudem wird die Eingabefusion angezeigt.

Job diagram with metrics - expand partition

Um das Metrikdiagramm für nur eine einzelne Partition anzuzeigen, wählen Sie den Partitionsknoten aus. Die Metriken werden im unteren Bereich der Seite angezeigt.

Job diagram with metrics - more metrics

Um das Metrikdiagramm für eine Fusion anzuzeigen, wählen Sie den Fusionsknoten aus. Im folgenden Diagramm wird angezeigt, dass keine Ereignisse verworfen oder angepasst wurden.

Job diagram with metrics - grid

Um die Details und den Zeitpunkt des Metrikwerts anzuzeigen, zeigen Sie auf das Diagramm.

Job diagram with metrics - hover

Problembehandlung mithilfe von Metriken

Die Metrik QueryLastProcessedTime gibt an, wann ein bestimmter Schritt Daten empfangen hat. Anhand der Topologie können Sie sich vom Ausgabeprozessor aus in umgekehrter Richtung bis zu dem Schritt vorarbeiten, in dem keine Daten empfangen werden. Wenn ein Schritt keine Daten erhält, navigieren Sie unmittelbar davor zum Abfrageschritt. Überprüfen Sie, ob der vorherige Abfrageschritt ein Zeitfenster aufweist und ob genügend Zeit für die Ausgabe von Daten verstrichen ist. (Beachten Sie, dass Zeitfenster auf Stunden ausgerichtet sind.)

Handelt es sich beim vorherigen Abfrageschritt um einen Eingabeprozessor, beantworten Sie mithilfe der Eingabemetriken die folgenden gezielten Fragen. Dadurch können Sie feststellen, ob ein Auftrag Daten von den jeweiligen Eingabequellen erhält. Wenn die Abfrage partitioniert ist, überprüfen Sie jede Partition.

Wie viele Daten werden gelesen?

  • InputEventsSourcesTotal gibt die Anzahl gelesener Dateneinheiten an. Beispiel: die Anzahl von Blobs.
  • InputEventsTotal gibt die Anzahl gelesener Ereignisse an. Diese Metrik steht pro Partition zur Verfügung.
  • InputEventsInBytesTotal gibt die Anzahl gelesener Bytes an.
  • InputEventsLastArrivalTime wird mit der Zeit aktualisiert, zu der die einzelnen empfangenen Ereignisse in die Warteschlange eingereiht wurden.

Erhöht sich der Zeitwert? Werden tatsächliche Ereignisse gelesen, werden möglicherweise keine Interpunktion ausgegeben.

  • InputEventsLastPunctuationTime gibt an, wann ein Satzzeichen ausgegeben wurde, damit sich der Zeitwert weiterhin erhöht. Wenn keine Interpunktion ausgegeben wird, kann der Datenfluss blockiert werden.

Enthält die Eingabe Fehler?

  • InputEventsEventDataNullTotal gibt eine Anzahl von Ereignissen mit Null-Daten an.
  • InputEventsSerializerErrorsTotal gibt eine Anzahl von Ereignissen an, die nicht korrekt deserialisiert werden konnten.
  • InputEventsDegradedTotal enthält eine Anzahl von Ereignissen, bei denen andere Probleme als Deserialisierungsprobleme aufgetreten sind.

Werden Ereignisse verworfen oder angepasst?

  • InputEventsEarlyTotal gibt die Anzahl von Ereignissen mit einem Anwendungszeitstempel an, der unter dem hohen Grenzwert liegt.
  • InputEventsLateTotal gibt die Anzahl von Ereignissen mit einem Anwendungszeitstempel an, der über dem hohen Grenzwert liegt.
  • InputEventsDroppedBeforeApplicationStartTimeTotal gibt die Anzahl von Ereignissen an, die vor der Auftragsstartzeit verworfen wurden.

Gibt es eine Verzögerung beim Lesen der Daten?

  • Eingabeereignisse im Rückstand (gesamt) gibt die Anzahl von Nachrichten an, die für Event Hubs- und Azure IoT Hub-Eingaben noch gelesen werden müssen. Wenn diese Zahl größer als 0 ist, bedeutet dies, dass der Auftrag die Daten nicht so schnell verarbeiten kann, wie sie eintreffen. In diesem Fall müssen Sie die Anzahl der Streamingeinheiten erhöhen und/oder sicherstellen, dass Ihr Auftrag parallelisiert werden kann. Weitere Informationen hierzu finden Sie auf der Seite zur Parallelisierung von Abfragen.

Hier erhalten Sie Hilfe

Weitere Unterstützung finden Sie auf der Frageseite von Microsoft Q&A (Fragen und Antworten) zu Azure Stream Analytics.

Nächste Schritte