ジョブ ダイアグラムを使用したデータ主導型デバッグ

Azure Portal の [監視] ブレードのジョブ ダイアグラムは、ジョブ パイプラインの視覚化に役立ちます。 ここには、入力、出力、クエリのステップが表示されます。 ジョブ ダイアグラムを使用すると、各ステップのメトリックを確認して、問題のトラブルシューティングを行う際に問題の原因をより迅速に分離できます。

ジョブ ダイアグラムの使用

Stream Analytics ジョブの使用中に、Azure Portal の [サポート + トラブルシューティング] の下にある [ジョブ ダイアグラム] を選択します。

Job diagram with metrics - location

各クエリ ステップを選択すると、クエリ編集ウィンドウに対応するセクションが表示されます。 ステップのメトリック グラフは、ページ下部のウィンドウに表示されます。

Job diagram with metrics - basic job

Azure Event Hubs の入力をパーティション単位で確認するには、[...] を選択します。コンテキスト メニューが表示されます。 入力を集合体として確認することもできます。

Job diagram with metrics - expand partition

1 つのパーティションのみのメトリック グラフを確認するには、パーティションのノードを選択します。 メトリックはページの下部に表示されます。

Job diagram with metrics - more metrics

パーティションの集合体のメトリック グラフを確認するには、集合体のノードを選択します。 次のグラフは、削除または調整されたイベントがなかったことを示しています。

Job diagram with metrics - grid

メトリックの値と時刻の詳細を確認するには、グラフをポイントします。

Job diagram with metrics - hover

メトリックを使用したトラブルシューティング

QueryLastProcessedTime メトリックは、特定のステップでデータが受信された時間を示します。 トポロジを確認することで、出力プロセッサからさかのぼって、どのステップでデータが受信されていないかを参照できます。 あるステップでデータが受信されていなかった場合、その直前のクエリ ステップに移動します。 前のクエリ ステップに時間枠があるかどうかを確認し、データが出力されるのに十分な時間が経過したかどうかを確認します (時間枠は 1 時間単位となります)。

前のクエリ ステップが入力プロセッサである場合、入力メトリックを使用して、以下の目的の質問に答えるために役立てます。 これらは、ジョブが入力ソースからデータを取得しているかどうかを判断するうえで役に立ちます。 クエリがパーティション分割されている場合は、各パーティションを調べます。

読み取られているデータの量はどのくらいか。

  • InputEventsSourcesTotal は、読み取られたデータ ユニットの数です。 たとえば、BLOB の数です。
  • InputEventsTotal は、読み取られたイベントの数です。 このメトリックは、パーティションごとに使用できます。
  • InputEventsInBytesTotal は、読み取られたバイト数です。
  • InputEventsLastArrivalTime は、受信したイベントがエンキューされるたびにそのときの時刻で更新されます。

時間が先に進んでいるかどうか。 実際のイベントが読み取られる場合、区切り記号は発行されません。

  • InputEventsLastPunctuationTime は、時間を常に先に進めるために、区切り記号が発行された時刻を示します。 区切り記号が発行されない場合は、データ フローをブロックすることができます。

入力にエラーがあるかどうか。

  • InputEventsEventDataNullTotal は、null データが含まれたイベントの数です。
  • InputEventsSerializerErrorsTotal は、正常に逆シリアル化されないイベントの数です。
  • InputEventsDegradedTotal は、逆シリアル化以外に関する問題が発生したイベントの数です。

イベントが削除または調整されているかどうか。

  • InputEventsEarlyTotal は、高基準値以前のアプリケーション タイムスタンプが付いたイベントの数です。
  • InputEventsLateTotal は、高基準値より後のアプリケーション タイムスタンプが付いたイベントの数です。
  • InputEventsDroppedBeforeApplicationStartTimeTotal は、ジョブの開始時刻の前に削除されたイベントの数です。

データの読み取りを追跡しているかどうか。

  • Input Events Backlogged (Total) では、Event Hubs と Azure IoT Hub の入力用に読み取る必要がある追加のメッセージの数がわかります。 この数値が 0 より大きい場合は、データの取得後すぐに、ジョブがデータを処理できないことを意味します。 この場合、必要に応じて、ストリーミング ユニット数を増やしたり、ジョブを並列処理できるようにしたりします。 この処理の詳細については、クエリの並列化に関するページを参照してください。

ヘルプの参照

さらにサポートが必要な場合は、Azure Stream Analytics に関する Microsoft Q&A 質問ページを参照してください。

次のステップ