【正解】B
【0からの解説】
①前提知識:
・指標スコープとスコーピング プロジェクト:Cloud Monitoring では、1 つのプロジェクト(スコーピング プロジェクト)の「指標スコープ」に他のプロジェクトを追加すると、そのプロジェクトから複数プロジェクトの指標をまとめて表示・アラート設定できます。複数プロジェクトの監視を 1 か所に集約する Google 推奨の方法です。
・Bindplane:Google と提携する observIQ 社の製品で、OpenTelemetry Collector をベースにしたエージェントと管理プレーンにより、オンプレミスや他クラウドのホスト・Kubernetes から指標やログを収集して Cloud Monitoring / Cloud Logging に送ることができます。Google Cloud のドキュメントでもオンプレミスとハイブリッド クラウドの指標収集方法として案内されています。
・OpenTelemetry:ベンダー中立なテレメトリ(指標・トレース・ログ)の計装と収集の標準規格です。
②要件の整理:(a) オンプレミスと複数の Google Cloud プロジェクトの Kubernetes を監視、(b) OpenTelemetry を使ってインフラとアプリの両方の指標を扱う、(c) 運用をサポートしやすくする(自前の監視基盤を運用しない)、(d) すべての指標を 1 か所に統合、の 4 点です。
③正解の理由:スコーピング プロジェクトで Google Cloud 側の全プロジェクトの指標を集約し、オンプレミス側は Bindplane(OpenTelemetry ベース)で Cloud Monitoring に取り込めば、すべての指標がマネージドな Cloud Monitoring 1 か所に統合されます。Prometheus や Thanos などの監視基盤を自分で運用する必要もなく、(a)〜(d) をすべて満たします。
【誤りの選択肢】
A:各 Pod のサイドカー コレクタ、クラスタごとの Prometheus、中央の Thanos、Grafana をすべて自前で構築・運用する構成で、技術的には動きますが運用負荷が非常に大きく、「運用をサポートしやすく」という要件に反します。
C:スコーピング プロジェクトの部分は正しいものの、オンプレミスのアプリケーションごとにユーザー定義指標(カスタム指標)を送るよう個別に計装する必要があり、開発工数が大きくなります。またインフラ指標の収集手段がなく、「OpenTelemetry を使ってインフラとアプリの両方を監視する」要件も満たしません。
D:GKE 側は Managed Service for Prometheus を使いますが、オンプレミス側は非マネージドの Prometheus を自前で運用することになり、指標が Cloud Monitoring と自前 Prometheus に分散して 1 か所に統合されません。Grafana も自前で運用が必要で、運用負荷の面でも B に劣ります。
【参考】
Bindplane を使用してオンプレミスとハイブリッド クラウドの指標を収集する | Cloud Monitoring指標スコープの概要 | Cloud Monitoring