👀

GCP マルチプロジェクト監視ダッシュボード構築ガイド

に公開

はじめに

GCP資格のProfessional Cloud DevOps Engineerの範囲で、複数のGCPプロジェクトをモニタリングするというテーマがあります。これは手を動かしてみたほうが良いなと思い、試してみました。
継続コストのかかるVMを手元に持っていなかったので、手持ちのCloud Runはサーバレスだが、CPUとかのデータ取れるのか?とやる前に思いましたが、全く問題なしでした。


この記事のゴール

  • ✅ Cloud Monitoringのメトリクススコープで複数プロジェクトを横断監視
  • ✅ 監視専用プロジェクトを作り、本番環境と分離
  • ✅ 「project_id」でGroup Byし、プロジェクトごとに色分け表示
  • ✅ P95レイテンシ・エラー率・リクエスト数を一画面で確認
  • ✅ コストゼロ・設定1時間以内で完結

Phase 1:構成設計と準備

監視構成は次のように整理しました。
監視専用プロジェクトは、リソース切り分けのため、既存プロジェクトと別途用意するのがGCP公式のベストプラクティスだそうです。
https://cloud.google.com/monitoring/settings?hl=ja

監視専用プロジェクト(新規作成)
↓ メトリクススコープ
├── 言い訳AIプロジェクト(既存)
└── Helloプロジェクト(新規作成)

  • 各プロジェクト:Cloud Runサービスが稼働中
  • 監視ハブ:メトリクススコープで複数プロジェクトを集約

この構成なら、将来プロジェクトを追加しても「Add projects」で即反映できます。


Phase 2:メトリクススコープの設定

監視専用プロジェクトを作成します。
gcloud projects create monitoring-hub --name="(例)監視ハブ"

次に Cloud Console で
Monitoring → Settings → Metrics Scope → Add projects を開き、
監視対象プロジェクトを複数選択して追加します。

メトリクススコープを設定するだけで、各プロジェクトのメトリクスを一括参照可能になります。

Phase 3:ダッシュボード作成

Cloud Monitoringの左メニューから
Dashboards → +CREATE DASHBOARD を選択。

ウィジェット設定例:
Resource type:Cloud Run Revision
Metric:Request count

同様に、以下のようなメトリクスを追加していきます。

指標 Metric 集約方法 Group By
リクエスト数 run.googleapis.com/request_count Rate project_id
レイテンシ(P95) run.googleapis.com/request_latencies 95th percentile project_id
エラー率(5xx) response_code_class="5xx" フィルタ Rate project_id

↑Cloud RunだとコンテナベースでCPU使用率が見れる

Phase 4:ハマりポイントと対応策

症状 原因 解決方法
対象プロジェクトが出ない Cloud Runにまだリクエストが来ていない curl https://<service>.run.app でアクセスしてメトリクスを生成

リクエストがないとプロジェクトがそもそも選択肢に出てこないので要注意です。

まとめと学び

✅ 1時間以内でマルチプロジェクト監視が実現
✅ Cloud Runでもエージェント不要・設定最小
✅ Cloud Monitoringの無料枠内で完結し、運用コストゼロ

おわりに

今回の設定は本当に1時間以内で完了しました。
本番運用でも即活用できる構成で、追加プロジェクトにも柔軟に対応できます。

Accenture Japan (有志)

Discussion