私はpython-prometheus libを使ってAPIヘルスを計測しようとしています。私はdocumentationの指示に従ってAPIの応答時間のためプロメテウスヒストグラムを使用して、私は私が事前設定のヒストグラムを期待していcodeにバケットロジックを経てメトリックprometheus_python instrumentation - ヒストグラムでバケット化
期待される動作
のHTTPエクスポートをしていました応答時間のバケツ。私は、1,330,10、Inf(1s/3s/5s以下)のバケットを定義しました。
リクエストが2秒かかる場合は、 3sバケットは1の頻度を持ち、他のバケットはゼロです。
def observe(self, amount):
'''Observe the given amount.'''
self._sum.inc(amount)
for i, bound in enumerate(self._upper_bounds):
if amount <= bound:
self._buckets[i].inc(1)
break
をバケット化に
コードスニペット私は休憩がバケットは、例えば、一度だけ起こる保証さだと思います。
応答時間:我々は後半を引くことができれば3.1sを取ったサンプル要求については
後
前
前と後の合計。
5秒、10秒、Infバケットも更新されています。私はバケット> = 3.1がどこでどのように更新されているのかを見つけようとしています。
その他の詳細:
のpython - プロメテウスが
バージョン情報マルチモードで使用されている: - 2.7
- パイソン
@ brian-brazilに感謝の意地をお寄せいただきありがとうございます。コードを少し深く見れば、各エントリは1回だけバケツに見えるように見えます。コードスニペットで質問を更新しようとしましょう。 –
私はその動作が "le"であると理解しているので、期待どおりに動作しています。私はどのコードがその部分をしているのか不思議です。私が強調しているものは、1つのバケツだけを満たしています。 –
展示コードを見てください。 –