Ladění založené na datech s využitím diagramu úloh
Diagram úloh v okně Monitorování na webu Azure Portal vám může pomoct s vizualizací kanálu úloh. Zobrazuje vstupy, výstupy a kroky dotazu. Diagram úloh můžete použít ke zkoumání metrik pro jednotlivé kroky, abyste při řešení potíží mohli rychleji izolovat zdroj problému.
Použití diagramu úlohy
Na webu Azure Portal v úloze Stream Analytics v části PODPORA a ŘEŠENÍ POTÍŽÍ vyberte Diagram úlohy:
Výběrem jednotlivých kroků dotazu zobrazíte odpovídající oddíl v podokně pro úpravy dotazu. Graf metrik pro krok se zobrazí v dolním podokně na stránce.
Pokud chcete zobrazit oddíly vstupu služby Azure Event Hubs, vyberte . . . Zobrazí se místní nabídka. Můžete se také podívat na vstupní fúze.
Pokud chcete zobrazit graf metrik pouze pro jeden oddíl, vyberte uzel oddílu. Metriky se zobrazují v dolní části stránky.
Pokud chcete zobrazit graf metrik pro sloučení, vyberte uzel fúze. Následující graf ukazuje, že nedošlo k vyřazení ani úpravě událostí.
Pokud chcete zobrazit podrobnosti o hodnotě a času metriky, nasměrujte na graf.
Řešení potíží s využitím metrik
Metrika QueryLastProcessedTime označuje, kdy konkrétní krok přijal data. Když se podíváte na topologii, můžete z výstupního procesoru pracovat zpětně a zjistit, který krok nepřijímá data. Pokud krok nesčítá data, přejděte těsně před ním do kroku dotazu. Zkontrolujte, jestli předchozí krok dotazu obsahuje časové okno a jestli je dostatek času pro výstup dat. (Všimněte si, že časová okna jsou přichycená k hodině.)
Pokud je předchozí krok dotazu vstupním procesorem, použijte vstupní metriky, které vám pomůžou zodpovědět následující cílové otázky. Můžou vám pomoct určit, jestli úloha získává data ze vstupních zdrojů. Pokud je dotaz dělený, zkontrolujte všechny oddíly.
Kolik dat se čte?
- InputEventsSourcesTotal je počet přečtených datových jednotek. Například počet objektů blob.
- InputEventsTotal je počet přečtených událostí. Tato metrika je dostupná pro jednotlivé oddíly.
- InputEventsInBytesTotal je počet přečtených bajtů.
- InputEventsLastArrivalTime se aktualizuje o čas zařazení každé přijaté události do fronty.
Posunuje se čas dopředu? V případě načtení skutečných událostí nemuselo dojít k přerušení.
- InputEventsLastPunctuationTime udává, kdy došlo k přerušení pro zajištění dopředného běhu času. Pokud interpunkční znaména nevystavíte, tok dat se může zablokovat.
Došlo ve vstupu k nějakým chybám?
- InputEventsEventDataNullTotal je počet událostí, které mají data null.
- InputEventsSerializerErrorsTotal je počet událostí, které nelze správně deserializovat.
- InputEventsDegradedTotal je počet událostí, které měly jiný problém než při deserializaci.
Dochází k vyřazení nebo úpravě událostí?
- InputEventsEarlyTotal je počet událostí, které mají časové razítko aplikace před vysokým vodoznakem.
- InputEventsLateTotal je počet událostí, které mají časové razítko aplikace za vysokým vodoznakem.
- InputEventsDroppedBeforeApplicationStartTimeTotal je počet událostí vynechaných před časem spuštění úlohy.
Zaostáváme za čtením dat?
- V backlogu vstupních událostí (celkem) zjistíte, kolik dalších zpráv je potřeba číst pro vstupy služby Event Hubs a Azure IoT Hub. Pokud je toto číslo větší než 0, znamená to, že vaše úloha nemůže zpracovat data tak rychle, jak přichází. V takovém případě možná budete muset zvýšit počet jednotek streamování nebo se ujistit, že je možné úlohu paralelizovat. Další informace o tom najdete na stránce paralelizace dotazu.
Získání pomoci
Pokud potřebujete další pomoc, vyzkoušejte naši stránku pro otázky Microsoftu pro Azure Stream Analytics.