Cloud Dataflow パイプラインに Stackdriver Monitoring を使用する

Stackdriver は、強力なモニタリング、ロギング、診断機能を提供します。Cloud Dataflow に Stackdriver Monitoring を統合すると、Stackdriver のダッシュボードからジョブ ステータス、要素のカウント、システムラグ(ストリーミング ジョブ用)、ユーザー カウンタなどの Cloud Dataflow ジョブ指標にアクセスできるようになります。また、Stackdriver のアラート機能を使用して、長いストリーミングのシステムラグまたは失敗したジョブなど、さまざまな状態の通知を受け取ることもできます。

始める前に

クイックスタートのいずれかに沿って、Cloud Dataflow プロジェクトのセットアップを行い、パイプラインを作成して実行します。

指標を調べる

Stackdriver を使用して、Cloud Dataflow の指標を調べることができます。このセクションの手順に沿って、Apache Beam の各パイプラインに対して提供されるいくつかの標準指標を確認します。

注: Apache Beam のパイプラインで定義する Aggregator は、いずれもカスタム指標として Cloud Dataflow から Stackdriver に報告されます。Cloud Dataflow は約 30 秒ごとに更新の増分を Stackdriver に報告します。競合を避けるために、すべてのユーザー指標が double データ型としてエクスポートされます。

  1. Google Cloud Platform Console に移動し、[Stackdriver Monitoring] メニューを選択します。 Stackdriver Monitoring

  2. Google Cloud Platform Console の手順に従って Stackdriver アカウントを作成し、Stackdriver の無料トライアルを開始します。

  3. Stackdriver の Cloud Dataflow ダッシュボードに移動し、[Resources] > [Metrics Explorer (Beta)] の順に移動します。 Metrics Explorer

  4. Metrics Explorer で、dataflow_job リソースタイプを選択します。 dataflow_job

  5. 表示されるリストから、いずれかのジョブに対して確認する指標を選択します。


    指標を選択
    例: この例では、Cloud Pub/Sub トピックから読み取って BigQuery に書き込むストリーミング パイプラインを取り上げます。このパイプラインには 5 つのステップがあり、そのうちの 1 つが PubsubIO.Read です。次の画像に、このパイプラインの PubsubIO.Read ステップの dataflow/job/element_count を示します。 例

アラートとダッシュボードを作成する

Stackdriver では Cloud Dataflow 関連の指標にアクセスできるだけでなく、アラートとダッシュボードを作成して、時系列の指標グラフを作成したり、指標が指定の値に達したときに通知を受けられるようにしたりできます。

リソースのグループを作成する

アラートの設定とダッシュボードの構築を簡単に行えるように、複数の Apache Beam パイプラインが含まれるリソース グループを作成できます。

  1. Stackdriver の Cloud Dataflow ダッシュボードで、[Groups] メニューに移動し、[Create Group] を選択します。

  2. グループに含まれる Cloud Dataflow リソースを定義するフィルタ条件を追加します。たとえば、フィルタ条件の 1 つの名前をパイプラインの接頭辞にできます。 グループを作成

  3. グループが作成されると、そのグループ内のリソースに関連する基本指標を表示できるようになります。 グループを作成

Cloud Dataflow の指標に対するアラートを作成する

Stackdriver では、アラートを作成して、特定の指標が指定したしきい値を超えたときに通知を受け取ることができます。たとえば、ストリーミング パイプラインのシステムラグが、事前に定義された値よりも大きくなったとします。

  1. Stackdriver の Cloud Dataflow ダッシュボードで、[Alerting] メニューに移動し、[Policies Overview] を選択します。

  2. [Add Policy] をクリックします。 ポリシーを追加

  3. [Create New Alerting Policy] ページで、アラートの条件とアラートの通信チャネルを定義できます。
    たとえば、WindowedWordCount Apache Beam パイプライン グループのシステムラグに対するアラートを設定する場合、[Resource Type] プルダウンから [Dataflow Job] を選択し、[Applies To] プルダウンから [Group] を選択し、[If Metric] プルダウンから [System Lag] を選択します。 アラートを作成

  4. アラートを作成した後、[Alerting] > [Events] に移動すると、Cloud Dataflow に関連するイベントを確認できます。指標しきい値条件によってアラートがトリガーされるたびに、Stackdriver でインシデントと対応するイベントが作成されます。アラートの通知メカニズム(メール、SMS など)を指定した場合、通知も受け取ります。 インシデント アラート

独自のカスタム モニタリング ダッシュボードを構築する

最も関連性の高い Cloud Dataflow 関連のグラフからなる Stackdriver Monitoring ダッシュボードを構築できます。

  1. Stackdriver の Cloud Dataflow ダッシュボードで、[Dashboards] メニューに移動し、[Create Dashboard] を選択します。

  2. [Add Chart] をクリックします。

  3. [Add Chart] ウィンドウで、[Resource Type] として [Dataflow Job] を選択し、[Metric Type] フィールドで、グラフを作成する指標を選択します。[Filter] パネルでは、Apache Beam パイプラインが含まれるグループを選択します。 グラフを追加

ダッシュボードにいくつでもグラフを追加できます。

Stackdriver Monitoring エージェントからワーカー VM 指標を受信する

Cloud Dataflow ワーカー VM インスタンスの永続ディスク、CPU、ネットワーク、プロセスの指標をモニタリングするには、パイプラインを実行するときに Stackdriver Monitoring エージェントを有効にします。使用可能な Monitoring エージェントの指標のリストをご覧ください。

Monitoring エージェントを有効にするには、パイプラインを実行するときに --experiments=enable_stackdriver_agent_metrics オプションを使用します。

パイプラインを停止せずに Monitoring エージェントを無効にするには、置換ジョブを起動して--experiments=enable_stackdriver_agent_metrics パラメータを指定せずにパイプラインを更新します。

次のステップ

詳細を確認するには、以下の他のリソースをご覧ください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。