6

私は Apache Prometheus モニタリングと というモデルを備えた Django アプリケーションを持っていますSample

Sample.objects.count() メトリックを監視し、この値を具体的な時間間隔でキャッシュして、データベースでのコストのかかる COUNT(*) クエリを回避したいと考えています。

このチュートリアル https://github.com/prometheus/client_python#custom-collectorsから、 カスタムコレクターを作成する必要があることを読みました。

これを達成するための最良のアプローチは何ですか?djangoにSample.objects.count()キャッシュされた値を取得してK秒後に更新する方法はありますか? また、アプリケーションで Redis を使用しています。この値をそこに保存する必要がありますか? Sample.objects.count()キャッシュ値を更新するために別のスレッドを作成する必要がありますか?

4

2 に答える 2

1

古すぎない場合は以前の値を返し、それ以外の場合はフェッチするカスタム コレクターが適しています。私はそれをすべて進行中のままにします。

MySQL を使用している場合は、mysqld_exporter が提供するコレクターを確認することをお勧めします。

于 2016-12-30T13:38:55.463 に答える