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] を選択します。

    [モニタリング] に移動

  2. [Add your project to a Workspace] ダイアログが表示されたら、[New Workspace] で GCP プロジェクトを選択し、[Add] をクリックして新しいワークスペースを作成します。 次の画像では、GCP プロジェクト名は Quickstart となっています。

    新しいワークスペースを作成するダイアログ。

    [Add your project to a Workspace] ダイアログが表示されるのは、少なくとも 1 つの既存のワークスペースが利用可能な場合だけです。[Existing Workspace] の下に表示されているワークスペースは、作成したワークスペース、または編集権限がある GCP プロジェクト用のワークスペースです。このダイアログを使用して、新しいワークスペースを作成するか、既存のワークスペースにプロジェクトを追加するかを選択できます。

  3. [Resource] メニューで [Metrics Explorer] を選択します。

  4. [Find a resource type and/or a metric] ペインで、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. Google Cloud Platform Console で、[Stackdriver Monitoring] を選択します。

    [モニタリング] に移動

  2. [Groups] メニューで [Create Groups] を選択します。

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

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

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

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

  1. Google Cloud Platform Console で、[Stackdriver Monitoring] を選択します。

    [モニタリング] に移動

  2. [Alerting] メニューで、[Policies Overview] を選択します。

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

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

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

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

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

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

    [モニタリング] に移動

  2. [Dashboards] > [Create Dashboard] を選択します。

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

  4. [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 のサポートページをご覧ください。