マネージド コレクションとセルフデプロイ コレクションを使用した取り込みとクエリ

このドキュメントでは、さまざまな Google Cloud プロジェクトとクラスタ間で、セルフデプロイ コレクタとマネージド コレクタが混在する環境を設定する場合の方法について説明します。

すべての Kubernetes 環境にマネージド コレクションを使用することを強くおすすめします。これにより、クラスタ内で Prometheus コレクタを実行するオーバーヘッドがなくなります。マネージド コレクタとセルフデプロイ コレクタは同じクラスタ内で実行できます。モニタリングには一貫したアプローチを使用することをおすすめしますが、このドキュメントで説明するように、push ゲートウェイのホスティングなどの特定のユースケースにはデプロイ方法を組み合わせてもかまいません。

次の図は、2 つの Google Cloud プロジェクト、3 つのクラスタを使用し、マネージド コレクションとセルフデプロイ コレクションを組み合わせる構成を示しています。この図は、マネージド コレクションまたはセルフデプロイ コレクションのみの場合にも使用できますが、その場合は、使用しないコレクション スタイルを無視してください。

マネージド コレクションとセルフデプロイ コレクションを組み合わせて、Managed Service for Prometheus を設定できます。

図に示すような構成を設定して使用するには、次のことに注意してください。

  • 必要なエクスポータをクラスタにインストールする必要があります。Google Cloud Managed Service for Prometheus はエクスポータを自動的にインストールしません。

  • プロジェクト 1 にはマネージド コレクションを実行するクラスタがあります。これは、ノード エージェントとして実行されます。コレクタは、PodMonitoring リソース(名前空間内のターゲットをスクレイピングする場合)と、ClusterPodMonitoring リソース(クラスタ全体でターゲットをスクレイピングする場合)で構成されます。PodMonitoring は、指標を収集するすべての名前空間に適用する必要があります。ClusterPodMonitoring はクラスタごとに 1 回適用されます。

    プロジェクト 1 で収集されたデータはすべてプロジェクト 1 の Monarch に保存されます。このデータは、元の Google Cloud リージョンにデフォルトで保存されます。

  • プロジェクト 2 には、prometheus-operator を使用してセルフデプロイ コレクションを実行し、スタンドアロン サービスとして実行されるクラスタがあります。このクラスタは、prometheus-operator である PodMonitors または ServiceMonitors を使用して、Pod または VM でエクスポータを取得するように構成されています。

    プロジェクト 2 は、エフェメラル ワークロードから指標を収集する push ゲートウェイ サイドカーもホストします。

    プロジェクト 2 で収集されたデータはすべてプロジェクト 2 の Monarch に保存されます。このデータは、元の Google Cloud リージョンにデフォルトで保存されます。

  • プロジェクト 1 には、Grafanaデータソース同期ツールを実行するクラスタもあります。この例で、これらのコンポーネントはスタンドアロン クラスタでホストされていますが、任意の単一のクラスタでホストできます。

    データソース同期ツールは scoping_project_A を使用するように構成されており、その基盤となるサービス アカウントには scoping_project_A に対するモニタリング閲覧者権限があります。

    ユーザーが Grafana からクエリを発行すると、Monarch は構成済みのモニタリング対象プロジェクトに scoping_project_A を展開し、すべての Google Cloud リージョンでプロジェクト 1 とプロジェクト 2 の両方の結果を返します。すべての指標は、グループ化とフィルタリングのために元の project_id ラベルと location (Google Cloud リージョン)ラベルを保持します。

クラスタが Google Cloud 内で実行されていない場合は、project_id ラベルと location ラベルを手動で構成する必要があります。これらの値の設定については、Google Cloud の外部で Managed Service for Prometheus を実行するをご覧ください。

Managed Service for Prometheus を使用する場合は連携しないでください。Monarch に送信する前にデータを「ロールアップ」することでカーディナリティと費用を削減するには、代わりにローカル集約を使用します。詳細については、ローカル集約の構成をご覧ください。