0

データセンターで実行していて、サーバーのサイズによって制限されている状況に遭遇しました。1 つのサーバーで 1 つの Prometheus インスタンスとエクスポーターを実行しています。エクスポーターのターゲットの数は数千に上ります。これはサーバーの負荷が大きすぎるため、スケールアップできません。ただし、同じサイズのサーバーをさらに追加することはできます。

複数の同一の Prom インスタンスをフェデレートして、それぞれのエクスポーターで実行し (現在のセットアップのように)、Leader Prom インスタンスにフィードできると思います。ただし、ターゲットの長いリストをスクレイピングしていますが、Prom インスタンスは多くのリソースを使用しておらず、エクスポーターはより多くのリソースを使用しています (リソースの 85% がエクスポーターによって使用されています)。したがって、それぞれが独自のサーバーにいくつかの同一のエクスポーターをセットアップし、単一の Prom インスタンスを使用して、リストから各エクスポーター サーバーにターゲットの 1/3 を送信することは理にかなっています。

複数の Prom サーバーを実行したくないので、これはフェデレーションの使用例とは少し異なります。さらに、ターゲットのリストを含むファイルが生成され、それを複数のファイルに分割することは困難です。それ以外の場合は、prometheus.yml で異なるジョブを作成するだけで済みます。各ジョブは、file_sd_configs を使用して、ファイルの 1/3 を含む一意のファイルを指します。ターゲット (targets1.json、targets2.json、targets3.json など)

理想的には、file_sd_configs 用の 1 つのファイル「targets.json」を用意し、relabeling/hashmod (または何か?) を使用してそれらを均等に分割し、サブセットを特定のサーバーに送信したいと考えています。これは可能なことですか?

4

1 に答える 1