私たちが構築しているシステムでは、Prometheus を使用して k8s クラスターで実行されるコンポーネント (Kafka Connect、Spark など) を監視する必要があります。k8s クラスターは別のネットワークで実行されるため、Prometheus サーバーはこれらのコンポーネントを直接スクレイピングできません。このために、k8s クラスターで PushGateWay を実行します。
私は次のデザインを思いつきます:
- カスタム ビルドされた「プッシュ プロキシ」コンポーネントは、「kube-api-service」を読み取り、監視する各コンポーネントのポッドのリストを取得します (また、定期的にポッドの状態をチェックし、新しいポッドをチェックします..など)
- 「プッシュ プロキシ」は、定期的に各ポッドのエクスポーターを破棄します。(各ポッドの /metrics エンドポイントを呼び出します)。これらのスクレイピングされた行列をバッファーに格納します。
- 「プッシュ プロキシ」は、バッファリングされたマトリックスを定期的に PushGateWay にプッシュします。
- この PushGateWay は、Prometheus からアクセスできます。Prometheus は、PushGW から定期的にマトリックスをスクレイピングします。
質問は次のとおりです。
- 構築を計画している「プッシュ プロキシ」のようなコンポーネントはありますか?
- これは、この問題を処理する有効な設計ですか。