Dataflow 自動スケーリングをモニタリングする

Dataflow モニタリング インターフェースでは、ストリーミング ジョブの自動スケーリングのモニタリング グラフを表示できます。これらのグラフには、パイプライン ジョブの期間中の指標が表示され、次の情報が含まれます。

  • 任意の時点においてジョブで使用されるワーカー インスタンスの数
  • 自動スケーリング ログファイル
  • 推定バックログの推移
  • 平均 CPU 使用率の推移

バックログと CPU 使用率の指標をワーカーのスケーリング イベントに関連付けることができるように、グラフは垂直方向に配置されます。

Dataflow の自動スケーリングの決定方法について詳しくは、自動チューニング機能のドキュメントをご覧ください。Dataflow のモニタリングと指標の詳細については、Dataflow モニタリング インターフェースを使用するをご覧ください。

自動スケーリングのモニタリング グラフにアクセスする

Google Cloud コンソールを使用すると、Dataflow モニタリング インターフェースにアクセスできます。[自動スケーリング] 指標タブにアクセスするには、次の操作を行います。

  1. Google Cloud コンソールにログインします。
  2. Google Cloud プロジェクトを選択します。
  3. ナビゲーション メニューを開きます。
  4. [分析] で、[Dataflow] をクリックします。Dataflow ジョブのリストとそれぞれのステータスが表示されます。
  5. モニタリングするジョブをクリックし、[自動スケーリング] タブをクリックします。

自動スケーリング指標をモニタリングする

Dataflow サービスは、自動スケーリングのジョブを実行するために必要なワーカー インスタンスの数を自動的に選択します。ワーカー インスタンスの数は、ジョブの要件に応じて時間とともに変化する可能性があります。

自動スケーリング指標は、Dataflow インターフェースの [自動スケーリング] タブで確認できます。各指標は、次のダッシュボードにまとめられています。

自動スケーリングのアクションバーには、現在の自動スケーリングのステータスとワーカー数が表示されます。

自動スケーリング

[自動スケーリング] グラフには、現在のワーカー数、目標ワーカー数、ワーカーの最小数と最大数の時系列グラフが表示されます。

パイプライン内のワーカー数を示すデータの可視化。

自動スケーリング ログを表示するには、[Show autoscaling logs] をクリックします。

自動スケーリングの変更履歴を表示するには、[その他の履歴] をクリックします。パイプラインのワーカーの履歴情報のテーブルが表示されます。この履歴には、ワーカー数が最小ワーカー数または最大ワーカー数に達したかなどの自動スケーリング イベントが含まれます。

パイプラインのワーカーの履歴を示すテーブル。

自動スケーリングの理由(Streaming Engine のみ)

[自動スケーリングの理由] グラフには、指定した期間にスケールアップまたはスケールダウンが行われた理由や、何もアクションを起こさなかった理由が表示されます。

自動スケーリングの理由を示すデータの可視化。

特定の時点の理由の説明を表示するには、グラフの上にポインタを置きます。

自動スケーリングの理由の説明を示すデータの可視化。

次の表に、スケーリング アクションと考えられる理由を示します。

スケーリング アクション 理由 説明
スケーリングに変化なし 判断のためにさらにデータを収集 オートスケーラーで、スケールアップまたはスケールダウンするための十分なシグナルがありません。たとえば、ワーカープールのステータスが最近変更された場合や、バックログまたは使用率の指標が変動している場合などです。
スケーリングに変化はなく、シグナルは安定 リソースに関連しない上限に到達 スケーリングは、キーの並列処理や、構成された最小ワーカー数と最大ワーカー数などの制限によって制約されます。
バックログが少なく、ワーカーの使用率が高い パイプラインの自動スケーリングは、現在のトラフィックと構成により安定した値に収束しています。スケーリングの変更は必要ありません。
スケールアップ バックログが多い バックログを減らすためにスケールアップします。
ワーカーの使用率が高い 目標 CPU 使用率を達成するためにスケールアップします。
リソースに関係のない上限に到達 ワーカーの最小数が更新され、現在のワーカー数は構成された最小数を下回っています。
スケールダウン ワーカーの使用率が低い スケールダウンして、目標 CPU 使用率を達成します。
リソースに関係のない上限に到達 ワーカーの最大数が更新され、現在のワーカー数は構成された最大数を上回っています。

ワーカー CPU 使用率

CPU 使用率は、使用されている CPU の量を処理可能な CPU の量で割ったものです。平均 CPU 使用率グラフには、すべてのワーカーの平均 CPU 使用率の推移、ワーカー使用率のヒント、Dataflow がヒントをターゲットとして積極的に使用したかどうかが表示されます。

すべての Dataflow ワーカーの平均 CPU 使用率を示すデータの可視化。

バックログ(Streaming Engine のみ)

最大バックログ グラフは、処理待ちの要素に関する情報を示します。グラフには、新しいデータがなく、スループットに変化がない場合に、現在のバックログを使用するために必要な時間(秒単位)の推定値が表示されます。バックログの推定時間は、スループットと、まだ処理が必要な入力ソースからのバックログ バイト数の両方から計算されます。この指標は、スケールアップまたはスケールダウンを行うタイミングを判断するために、ストリーミング自動スケーリング機能で使用されます。

このグラフのデータは、Streaming Engine を使用するジョブでのみ使用できます。ストリーミング ジョブが Streaming Engine を使用しない場合、グラフは空になります。

ストリーミング パイプラインの最大バックログ グラフを示すデータの可視化。

推奨事項

ここでは、パイプラインで発生する可能性のある動作と、自動スケーリングを調整する方法について説明します。

  • 過度のダウンスケーリング。目標 CPU 使用率が高すぎると、Dataflow がスケールダウンし、バックログが増加し始め、安定したワーカー数に収束するのではなく Dataflow がスケールアップして補正するというパターンが見られる場合があります。この問題を軽減するには、ワーカー使用率のヒントを低く設定してみてください。バックログが増加し始めた時点の CPU 使用率を確認し、使用率のヒントをその値に設定します。

  • アップスケーリングが遅すぎる。アップスケーリングが遅すぎると、トラフィックの急増に追いつかず、レイテンシが増加する可能性があります。ワーカー使用率のヒントを減らして、Dataflow がより迅速にスケールアップするようにします。バックログが増加し始めた時点の CPU 使用率を確認し、使用率のヒントをその値に設定します。レイテンシとコストの両方をモニタリングしてください。プロビジョニングするワーカー数を増やすと、ヒント値が小さくなり、パイプラインの総コストが増加する可能性があります。

  • 過剰なアップスケーリング。過剰なスケールアップにより費用が増加している場合は、ワーカー使用率のヒントの増加を検討してください。レイテンシをモニタリングして、シナリオの許容範囲内に収まっていることを確認します。

詳細については、ワーカー使用率のヒントを設定するをご覧ください。新しいワーカー使用率のヒント値を試すときは、調整するたびに、パイプラインが安定するまで数分待ってから確認してください。

次のステップ