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

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

始める前に

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

カスタム指標

Apache Beam パイプラインで定義した指標は、Dataflow からカスタム指標として Monitoring に通知されます。Apache Beam パイプラインの指標には、CounterDistributionGauge の 3 種類があります。現在のところ、Dataflow は、CounterDistribution のみ Monitoring に通知します。Distribution は、_MAX_MIN_MEAN_COUNT が末尾に付加された 4 種類のサブ指標として通知されます。Dataflow は、Distribution 指標からヒストグラムを作成する機能はサポートしていません。

Dataflow は、ほぼ 30 秒ごとに Monitoring へ差分の更新を通知します。競合を避けるために、すべてのユーザー指標が double データ型としてエクスポートされます。Dataflow のカスタム指標は、Monitoring で custom.googleapis.com/dataflow/metric-name と表示され、1 つのプロジェクトにつき最大 500 指標に制限されています。

Monitoring に通知されたカスタム指標は、Cloud Monitoring 料金に基づく費用が発生します。

指標を調べる

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

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

    [モニタリング] に移動

  2. 左側のナビゲーション ペインで、 [Metrics Explorer] をクリックします。

  3. Find resource type and metric ペインで、Resource type に dataflow_job を選択します。Metrics Explorer で dataflow_job リソースを選択。

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


    指標を選択

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

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

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

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

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

    [モニタリング] に移動

  2. [グループ] メニューで [CREATE GROUP] を選択します。

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

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

Dataflow の指標に対するアラート ポリシーを作成する

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

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

    [モニタリング] に移動

  2. [アラート] メニューで、[CREATE POLICY] をクリックします。

  3. 新しいアラート ポリシーの作成ページで、アラート条件と通知チャネルを定義できます。
    たとえば、WindowedWordCount Apache Beam パイプライン グループのシステムラグに対するアラートを設定する場合は、次の手順を実行します。

    1. [ADD CONDITION] を選択します。
    2. [Find resource type or metric] フィールドに「dataflow_ job」と入力してそれを選択します。
    3. [Find resource type or metric] フィールドで、[System lag] を選択します。
  4. アラートを作成した後、[Events] セクションで [See all events] を選択すると、Dataflow に関連するイベントを確認できます。アラートがトリガーされるたびに、インシデントと対応するイベントが作成されます。アラートにメールやSMS などの通知メカニズムを指定した場合は、通知も受け取ります。

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

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

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

    [モニタリング] に移動

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

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

  4. [Add Chart] ウィンドウで、dataflow_jobとグラフを作成する指標を選択します。

  5. [Filter] フィールドで、Apache Beam パイプラインを含むグループを選択します。

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

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

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

Monitoring エージェントを有効にするには、パイプラインの実行時に --experiments=enable_stackdriver_agent_metrics オプションを使用します。コントローラ サービス アカウントには、roles/monitoring.metricWriter ロールが必要です。

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

次のステップ

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