Monitoring Architecture
アーキテクチャの概要
ZCP は、Prometheus Agent を使用して複数のデータプレーンクラスターからメトリクスを収集し、コントロールプレーンクラスター内の Cortex に中央集約します。これは、Grafana を介してクラスター全体およびプロジェクト固有のワークロードを監視するための統合ダッシュボードを提供し、必要に応じてダッシュボードをカスタマイズする柔軟性を持っています。
システムは、各データプレーンクラスターに Prometheus を展開してメトリクスを収集し、次に remote_write API を使用してコントロールプレーンクラスターのCortexストアに送信します。
コントロールプレーンクラスター内では、Cortex Gateway がデータプレーンクラスターで実行されているPrometheusエージェントからメトリクスデータを受信するために展開されます。Cortexコンポーネントは、複数のクラスターにわたるメトリクスの保存と視覚化を処理します。さらに、Cortex Rule and Alertmanager コンポーネントは、収集されたメトリクスに基づいてアラームルールを有効にし、事前に定義された閾値を超えた場合にオペレーターに通知をトリガーします。
Prometheusエージェントの管理、マルチプロジェクトサポート、Grafanaの組織とダッシュボードの設定を担当する Monitoring Backend Component もコントロールプレーンクラスター内にあります。
コンポーネントと役割
コントロールプレーンコンポーネント
Component | Roles |
---|---|
Grafana | - 収集されたメトリクスを視覚化します |
モニタリングバックエンド | - Grafanaの組織、データソース、ダッシュボードを管理します - データプレーンクラスターにPrometheusを展開します |
Cortexゲートウェイ | - マルチテナント認証を処理します - Cortexコンポーネントへのリクエストをルーティングします |
ディストリビューター | - 受信メトリクスを検証します - 高可用性(HA)を追跡します - 負荷分散を行います |
インジェスター | - メトリクスを長期保存します |
クエリア | - PromQLクエリを実行します |
クエリフロントエンド(オプション) | - 読み取り性能を向上させます - キューイング、分割、キャッシングを処理します |
ルーラー(オプション) | - アラートと記録ルールのためにPromQLクエリを実行します |
アラートマネージャー(オプション) | - アラートのためのマルチテナントサポートを追加します |
設定(オプション) | - ルーラーとアラートマネージャーの設定を保存します |
コンパクター | - 複数のブロックを単一の最適化されたブロックにマージします - ストレージコストを削減します - クエリを高速化します |
ストアゲートウェイ | - ブロックのシャーディングとレプリケーションを処理します - クエリ結果をキャッシュします |
インデックスキャッシュ | - ルックアップ性能を向上させます |
チャンクキャッシュ | - 取得したデータチャンクを保存し、より迅速なアクセスを提供します |
メタデータキャッシュ | - テナントリストやブロックマッピングなどのメタデータをキャッシュします |
データプレーンコンポーネント
Component | Roles |
---|---|
Prometheus | - 時系列データベースとして機能します - メトリクスを収集し保存します - アラートをトリガーします |
Prometheusノードエクスポーター | - ノードレベルのシステムメトリクスを収集します |
Kube State Metrics | - Kubernetes API関連のメトリクスを収集します |