ストリーミング パイプラインでは、ステップや変換が遅いとスループットが制限され、バックログが伝播してジョブ全体のレイテンシが増加する可能性があります。Dataflow ボトルネック検出機能は、バックログの原因となっている特定のステップを Google Cloud コンソールで自動的に特定してハイライト表示します。これにより、試行錯誤のデバッグを行わずに実行遅延を迅速に診断して解決できます。
Dataflow がボトルネックを特定して バックログを伝播させる方法のコンセプトの概要については、Dataflow ボトルネック 検出機能についてをご覧ください。
始める前に
トラブルシューティングにボトルネック検出ツールを使用する前に、ジョブとプロジェクトが次の要件を満たしていることを確認してください。
- 実行中のストリーミング Dataflow ジョブがある。
- ジョブは Streaming Engine を使用して実行されている。Streaming Engine で実行されないジョブでは、ボトルネック検出はサポートされていません。
- Dataflow ジョブを表示するために必要な Identity and Access Management(IAM)権限がある。詳細については、 Dataflow IAM ロールをご覧ください。
Google Cloud コンソールでアクティブなボトルネックを表示する
アクティブなボトルネックの通知とアラートは、Dataflow モニタリング インターフェースで直接確認できます。
Google Cloud コンソールで、[Dataflow] ページに移動します。
ジョブリストでストリーミング ジョブを選択して、ジョブの詳細ページを開きます。
[ジョブグラフ] タブで、実行グラフを確認します。
- アクティブなボトルネックが発生しているステップには、色付きの警告アイコンまたはアラートアイコンが表示されます。
- アラートは、このステップで 5 分以上の処理遅延が発生したことを示します。
警告アイコンが表示されているステップをクリックします。

画面の右側にある [ステップ情報] パネルで、[ボトルネック] セクションを見つけます。このセクションには次の情報が表示されます。
- ボトルネックの種類。たとえば、遅延、バックログが安定している、スタックしているなどです。
- 診断エンジンによって特定された場合、考えられる原因。
- 期間と関連する診断の詳細。
![[ステップ情報] パネルでのボトルネックの検出。](https://docs.cloud.google.com/static/dataflow/images/bottleneck-detector-console_pubsub.jpeg?hl=ja)
ボトルネックの原因を解決する
ボトルネックを解決するには、[ステップ情報] パネルで考えられる原因を特定し、[ボトルネックのトラブルシューティング]の手順に沿って操作します。
Monitoring でボトルネックをモニタリングする
プログラムによるアラートを設定する場合や、ボトルネック アクティビティを時系列で表示する場合は、Monitoring を使用します。ボトルネック検出ツールは、次の指標をエクスポートします。
dataflow.googleapis.com/job/is_bottleneck: ステージがアクティブなボトルネックであるかどうかを示すブール値。ボトルネックの種類と考えられる原因を指定するラベルが付きます。dataflow.googleapis.com/job/backlogged_keys: ボトルネックが発生したステージでバックアップされたキーの数。dataflow.googleapis.com/job/recommended_parallelism: 影響を受けるステージのボトルネックを軽減するために推奨される並列処理の値。
これらの指標を使用してグラフとアラートを作成する方法については、 Dataflow に Monitoring を使用するをご覧ください。