Dataflow のターンキー アラート

Cloud Monitoring でポリシーを手動で構成することなく、ストリーミング パイプラインの健全性とリソース消費量をモニタリングするには、Dataflow でターンキー アラートを有効にします。ターンキー アラートは、ジョブの起動時に有効にできる、事前構成された推奨アラート ポリシーのスイートを提供します。

この機能では次のことが可能です。

  • 即座に可視化: バックログ処理時間や vCPU の増加など、重要なストリーミング指標を手動設定なしで自動的に追跡します。
  • モニタリングの標準化: 新規および既存の本番環境ワークロードにベースライン アラート ポリシーを迅速に適用します。
  • アラートをカスタマイズする: デフォルトのアラートしきい値を調整したり、個々のポリシーを無効にしたり、独自のカスタム アラート ポリシーをスイートに追加したりできます。

これらのデフォルト ポリシーは、Cloud Monitoring でいつでもカスタマイズできます。また、独自のカスタム アラート ポリシーをターンキー アラート スイートに統合することもできます。

前提条件

ターンキー アラートを使用するには、プロジェクトが次の要件を満たしている必要があります。

  1. 通知チャンネル: 少なくとも 1 つの通知チャンネル(メール、Slack、PagerDuty など)が構成されている必要があります。アラートが適切な関係者に届くように、Essential Contacts を構成することをおすすめします。この要件は Dataflow サービスによって適用されません。詳細については、通知チャンネルを作成して管理するをご覧ください。

  2. 権限: Dataflow サービス アカウント(P4SA)には、ユーザーに代わってこれらのポリシーを作成および管理するための特定の IAM 権限が必要です。

    • monitoring.alertPolicies.get
    • monitoring.alertPolicies.list
    • monitoring.alertPolicies.create
    • monitoring.alertPolicies.update
    • monitoring.alertPolicies.delete

    新しいプロジェクトでは、これらの権限が自動的に追加されます。既存のプロジェクトでは、P4SA アカウントにこれらの権限を手動で設定する必要がある場合があります。

P4SA 権限を更新する

Dataflow サービス エージェント(P4SA、またはプロダクトごと、プロジェクトごとのサービス アカウントと呼ばれることが多い)は、Dataflow API を有効にすると作成される自動管理のサービス アカウントです。メールアドレスの形式は次のとおりです。

service-PROJECT_NUMBER@dataflow-service-producer-prod.

P4SA を更新するには、resourcemanager.projects.setIamPolicy 権限、またはこの権限を含むロール(プロジェクト IAM 管理者(roles/resourcemanager.projectIamAdmin)など)が必要です。

Google Cloud コンソールを使用して必要なロールを付与する手順は次のとおりです。

  1. Google Cloud コンソールで、[IAM] ページに移動します。

    [IAM] に移動

  2. プロジェクトを選択します。

  3. [Google 提供のロール付与を含める] チェックボックスをオンにします。

  4. プリンシパルのリストで、Dataflow サービス エージェント(service-PROJECT_NUMBER@dataflow-service-producer-prod. または Cloud Dataflow サービス エージェント ロールを持つ)の行を見つけます。

  5. その行の「プリンシパルを編集します」アイコン をクリックします。

  6. [権限の編集] ペインで、[ 別のロールを追加] をクリックします。

  7. [ロールを選択] リストで、[モニタリング編集者](roles/monitoring.editor)を選択します。

  8. [保存] をクリックします。権限の更新が反映されるまでに数分かかることがあります。

ターンキー アラートを有効にする

gcloud CLI を使用して、ターンキー アラートにジョブを登録できます。

gcloud CLI を使用してアラートを有効にする

ジョブの送信時に次のいずれかのフラグを追加して、機能を有効または無効にします。

  • --enable-turnkey-alerts
  • --no-enable-turnkey-alerts

サービス アカウントに必要な権限がない場合、CLI はリクエストを拒否し、不足している権限を表示します。詳しくは事前準備についての記事をご覧ください。

ターンキー アラートの設定は、ジョブの更新後も保持されます。ジョブを更新すると、以前のターンキー アラート設定が保持されるため、設定を変更する場合を除き、--enable-turnkey-alerts フラグまたは --no-enable-turnkey-alerts フラグを再度指定する必要はありません。

デフォルトのポリシー スイート

ターンキー アラートには、一般的なストリーミング ワークロード向けに設計された 2 つの主要なポリシーが含まれています。これらのポリシーは、処理時間やリソース使用率などのリアルタイムの KPI に重点を置いています。Google 提供のポリシーには、識別用に Default Policy: という接頭辞が付いています。ただし、サービスではラベルがプライマリ識別子として使用されます。

お客様は、デフォルトのポリシー スイートのすべてのポリシーに自動的に登録されます。必要に応じて、Cloud Monitoring Alerting で特定のデフォルト ポリシーを無効にできます。

ポリシー名 基本指標 デフォルトのしきい値 根拠
デフォルト ポリシー: 推定バックログ job/estimated_backlog_processing_time 30 分 現在のバックログをクリアするために必要な時間を推定します。バックログが 30 分を超えている場合は、ジョブの処理が遅れていることを示します。
デフォルト ポリシー: vCPU 増加ポリシー job/current_num_vcpus 1 時間の平均 vCPU 使用量が 7 日間の平均と比較して 5 倍以上増加 vCPU 数の相対的な変化をモニタリングして、予期しないジョブ費用を測定します。

ポリシーのライフサイクル

  • ベータ版ポリシー: これらのポリシーの名前には BETA 接頭辞が付いており、しきい値が調整されると変更または削除される可能性があります。
  • GA ポリシー: ポリシーが安定していると見なされると、BETA 接頭辞が削除されます。

アラートをカスタマイズして管理する

ターンキー アラートは出発点として機能します。特定のビジネス要件に合わせてカスタマイズすることをおすすめします。

  1. Google Cloud コンソールで、[Cloud Monitoring] > [アラート] に移動します。
  2. ポリシー(例: デフォルト ポリシー: 推定バックログ)を見つけます。
  3. しきい値を希望の値に編集します。

カスタム ポリシーを作成する

Cloud Monitoring のアラート ポリシーに goog-turnkey-alerts ラベルを追加すると、そのポリシーをターンキー アラート スイートに追加できます。これにより、デフォルトのスイートとともに、ビジネス固有のカスタムルールを管理できます。

アラート ポリシーを無効にするか削除する

Monitoring を使用して、特定のデフォルト ポリシーを無効にしたり削除したりできます。ポリシーを無効にすると、Monitoring はポリシー条件の評価を停止し、新しいインシデントは作成されませんが、ポリシー構成は保持されます。ポリシーを削除すると、プロジェクトから完全に削除されます。ポリシーのライフサイクルの管理の詳細については、アラート ポリシーを管理すると無効なアラート ポリシーをご覧ください。

トラブルシューティング

問題 解決策
PERMISSION_DENIED Dataflow P4SA に、前提条件に記載されている必要な monitoring.alertPolicies.* 権限があることを確認します。P4SA にこれらのロールがない場合でも、パイプラインは正常に起動しますが、コマンドライン出力とジョブログに PERMISSION_DENIED エラーが表示され、デフォルトのアラートを作成できなかったことが示されます。
アラートが届かない インシデントを確認して、アラートの条件が満たされたかどうかを判断します。アラートの発生とインシデントのタイムラインは、Monitoring で確認できます(インシデントとイベントを表示するをご覧ください)。
ポリシーを複製する これは通常、複数のポリシーが goog-turnkey-alerts ラベルと同じ指標構成を共有している場合に発生します。Dataflow は、名前の完全一致ではなく、ラベルと指標の重複をチェックします。ポリシーを確認し、冗長な構成からラベルを削除してください。