コンテンツに移動
DevOps & SRE

Cloud Monitoring での PromQL アラート作成を公開プレビュー版で提供開始

2023年8月28日
Google Cloud Japan Team

※この投稿は米国時間 2023 年 8 月 11 日に、Google Cloud blog に投稿されたものの抄訳です。

昨年、Google Cloud は Managed Service for Prometheus を導入しました。これにより、独自にホスティングするより簡単に Prometheus 環境をスケールいただけるようになりました。この発表の一環として、Prometheus でよく使われている Cloud Monitoring での PromQL クエリ言語のサポートも追加しました。それ以来、Prometheus の経験豊富なユーザーからも新しいユーザーからも、アラートを単一のエコシステムで管理したいという要望がありました。このたび、公開プレビュー版で、PromQL を使用したアラートCloud Monitoring でサポートされるようになりましたことを発表いたします。バックエンド サービスのメンテナンスをせずに、PromQL クエリに基づいて、Cloud Monitoring の指標およびダッシュボードと共存するグローバル規模のアラート ポリシーを作成いただけるようになりました。

このリリースでは以下のことができます。

  • Cloud Monitoring でグローバル規模の PromQL ベースのアラート ポリシーを記述する。

  • アラート ポリシーで Prometheus、GCP システム、およびカスタムの指標を参照する。

  • Cloud Monitoring がサポートしている任意の通知チャンネルに通知をルーティングする。メール、Slack、SMS、モバイル プッシュを使用して、チームメンバーに通知を送信します。webhook を使用して任意の公開エンドポイントに通知を送信します。また、Pub/Sub を使用して任意の限定公開エンドポイントに通知を送信します。

  • メール通知チャンネルで件名をカスタマイズする。

  • 既存の Prometheus alert_rules を Cloud Monitoring に容易に移行する。

  • Terraform で構成を管理する。

すでに Prometheus アラートルールを使用している場合、PromQL クエリを含む Cloud Monitoring アラート ポリシーにそのルールを移行できます。また、Monitoring API または gcloud CLI を使用して、Cloud Monitoring 内で独自の PromQL アラート ポリシーを直接作成することもできます。

アラート ポリシーを理解する

以下の Prometheus アラートルールは、使用している Kuberentes ボリュームが使用可能なディスク容量の 90% に達したときにトリガーされます。このフィールドの一部を確認しましょう。

alert: 何が発生しているかをユーザーが特定できるようにするため、アラートの名前を設定します。

expr: 評価する PromQL 式です。これが成立する場合、ボリュームの容量が 90% を超えているのでアラートが発出されます。  

for: クエリの各評価で真の値を生成してからアラートを発出するまでの時間の長さを指定します。

summary: アラートに使用するカスタマイズされた件名です。

labels フィールドと annotations フィールドでは、アラートに関する追加情報が提供されます。追加のコンテキストやアクションを渡すために使用できます。

多くの Prometheus アラートルールには、{{ $value}}{{$labels}}{{$labels.<name>}} などの Prometheus テンプレート言語コンストラクトが含まれます。当分の間は、このようなコンストラクトを summary または description に含めた場合はそのまま文字どおりに表示されます。

Google Cloud が Prometheus テンプレート言語コンストラクトを同等のドキュメント変数に置き換えるため、以下の Prometheus アラートルールは現在も将来も正しく表示されます。
読み込んでいます...

Cloud Monitoring へのアラートルールの移行

多くの Prometheus ユーザーは、アラートルールを Prometheus 構成ファイルまたはルールファイルに保存しています。このようなファイルを、PromQL クエリによって Cloud Monitoring アラート ポリシーに移行できるようになりました。この方法では、すべてのアラート ポリシーを 1 か所に保存できます。移行プロセスの例を見てみましょう。

平日のインスタンスのレイテンシのスパイクが 95 パーセンタイルを超えた場合、以下の PromQL 式がアラートを送信します。
読み込んでいます...

以下の Prometheus ルールファイル サンプルは、レイテンシ評価クエリとその他のいくつかの重要なフィールドを示しています。

alerting_rules.yaml

読み込んでいます...

このアラートルールを、gcloud 移行コマンドに指定することによって移行できます。

読み込んでいます...

そして、Cloud Monitoring によって PromQL クエリを含むアラート ポリシーが作成されます。

読み込んでいます...

これらのサンプルで、Cloud Monitoring の新しい PromQL アラート機能を簡単に利用できることがおわかりいただけたと思います。既存の Prometheus アラートルールを Cloud Monitoring アラート ポリシーに移行できます。また、Cloud Monitoring で API または CLI を使用して PromQL アラート ポリシーを作成できます。  

使用しているクラスタにローカルにアラートをインストールして、クラスタから Prometheus Alert Manager にアラートをルーティングする場合、マネージド コレクションにもセルフデプロイ コレクションにも、Managed Service for Prometheus のルール評価オプションを引き続き使用できます。そのようにしない場合は、既存の Prometheus アラートルールを Cloud Monitoring アラート ポリシーに移行することにより、アラート管理の時間を削減できます。

詳しくは以下のドキュメントをご覧ください。

今回も、エクスペリエンス向上のため、プレビュー期間中フィードバックをお待ちしております。


- Cloud Ops、プロダクト マネージャー Kyle Benson
- プロダクト マネージャー Alisa Goldstein
投稿先