0
我正在嘗試使用python-prometheus lib來檢測API健康狀況。我使用的指示在documentation的API響應時間普羅米修斯直方圖和做指標prometheus_python儀器 - 直方圖中的Bucketing
預期的行爲
的HTTP導出我經歷了桶裝邏輯就在code我期待預先設定的直方圖響應時間的桶。我定義了1,3,5,10,Inf(大於10s)的桶(即小於或等於1s/3s/5s)
所以如果我只有一個請求花費2s, 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,如果我們能減去後期的樣本請求後從前後的總和,
5s,10s和Inf桶正在更新。我正在尋找哪裏以及如何桶> = 3.1s正在更新。
其他信息:
蟒蛇 - 普羅米修斯的多進程模式下使用
版本信息:
- 的Python - 2.7
- prometheus_client [Python的 - 0.0.21
感謝評論@ brian-brazil。如果我們深入瞭解代碼,它看起來似乎是每個條目似乎只有一次。讓我試着用代碼片段來更新這個問題。 –
我瞭解行爲是「樂」,所以它按預期工作。我很好奇哪一部分代碼。我強調的一個,只填充一個桶。 –
看看博覽會的代碼。 –