Cloud Monitoring のサービス ディスカバリの変更点と適応方法
Leonid Yankulin
Senior Developer Relations Engineer
Ethan Truong
Software Engineer
※この投稿は米国時間 2024 年 5 月 25 日に、Google Cloud blog に投稿されたものの抄訳です。
最近 Google Cloud コンソールで [SLO の概要] を開いた方は、次の通知が表示されることに気づかれたかもしれません。
この通知は、Cloud Monitoring でのサービスの定義方法が最近変更されたことをお知らせするものです。変更前は、AppEngine、Cloud Run、Google Kubernetes Engine(GKE)にプロビジョニングされたサービスが Cloud Monitoring により自動的に検出されていました。検出されたサービスは [サービスの概要] ダッシュボードに自動的に追加されました。
現在は、[サービスの概要] ダッシュボードのすべてのサービスを明示的に作成する必要があります。この作業が簡単にできるよう、新しいサービスを定義するときには、自動検出されたサービスに基づく候補リストがコンソールの UI に表示されます。自動検出されたサービスの完全なリストには、AppEngine、Cloud Run、Istio のマネージド サービスに加え、GKE のワークロードとサービスが含まれます。
UI を使用する以外に、services.create
API または Terraform の google_monitoring_service
リソースを使用して Cloud Monitoring にマネージド サービスを追加することもできます。
たとえば、cluster-001
という GKE クラスタが us-central1
リージョンにプロビジョニングされ、デフォルトの名前空間にサービス frontend
がある場合、Cloud Shell で次のコマンドを実行することで、このサービスを Cloud Monitoring の対象として定義できます。
Terraform リソースを使用する場合は、service_labels
引数のキーをキャメルケース表記(こちらのドキュメントを参照)からスネークケース表記に変換する必要があります。たとえば、上記のコマンドは Terraform では次のようになります。
サービスの定義が、いずれかのマネージド サービスと 1 対 1 で対応しない場合は、カスタム サービスを定義することでそれを Cloud Monitoring に追加できます。使用する API リクエストは同じです。
Terraform ではそのための Terraform リソース google_monitoring_custom_service を使用します。
カスタム サービスとは異なり、自動検出されるサービスには、可用性とレイテンシの 2 つの事前定義された SLI があります。これらの SLI は、リクエストの処理時間や HTTP リクエストのステータスなど、自動的に取得されるマネージド サービスの指標を使用します。カスタム サービスについては、リクエスト ベースまたはウィンドウ ベースの SLI を使用して、これらの SLI を明示的に定義する必要があります。
サービスの SLO やエラー バジェットのトラッキングの詳細については、SLO の作成と SLO ベースのアラートに関する説明をご覧ください。可用性とレイテンシの SLO で使用される事前定義の SLI については、こちらのブログ投稿をご覧ください。
-シニア デベロッパーリレーションズ エンジニア Leonid Yankulin
-ソフトウェア エンジニア Ethan Truong