1

Prometheus データの同期について質問があります。2 つの異なる環境で 2 つのポッド (同じ Spring Boot サービスと同じ Redis Db に接続) を実行しています。

1 つのサービスがメトリックを更新すると、他のサービスもそのメトリックを更新して、両方が同じ情報を表示するようにしたいと考えています。接続されているすべてのサービスでリロードを強制する方法はありますか? これを行うことはできますか、それともメトリクスの悪いユースケースですか?

ありがとう!

PS そのメトリックの情報は、そのサービスで発生した最新のイベントを表します。したがって、両方のサービスが同じ情報を表示することは理にかなっています。

4

1 に答える 1

0

あなたは間違った方向から問題を解決しようとしていると思います。そのままにしておくと、PromQLはすべてのインスタンスの中で最新のイベントがいつだったかを表示できます。同時に、サービスの各インスタンスで最後のイベントがいつ発生したかを知ることができます。

開始するための例を次に示します。タイムスタンプ メトリック (特定のイベントの unixtime を保持するゲージ) があるとします。

last_event{instance="foo", service="dispatch"} 100
last_event{instance="bar", service="dispatch"} 200
# instead of 100 and 200 there should be the number of seconds since 01.01.1970, but for the sake of simplicity...

このようなメトリクスを使用すると、次のクエリを使用して最後のイベントがいつ発生したかを知ることができます。

max by(service) (last_event)

結果は次のようになります。

{service="dispatch"} 200
于 2022-02-18T08:48:53.290 に答える