首頁 > Java > 呼叫計數器後,Prometheus /metrics 頁面未更新

呼叫計數器後,Prometheus /metrics 頁面未更新

WBOY
發布: 2024-02-11 17:09:08
轉載
1209 人瀏覽過

php小編子墨在使用Prometheus監控工具時,遇到了一個問題:呼叫計數器後,Prometheus /metrics頁面未更新。這個問題的出現​​可能導致監控資料不準確,對系統的運作帶來了一定的困擾。為了解決這個問題,我們需要找出原因並採取相應的措施。在接下來的內容中,我們將逐步分析可能的原因,並提供解決方案,幫助讀者解決這個問題。

問題內容

我有一個 spring bean,其中的儀表是這樣初始化的:

@postconstruct
    public void initgauge() {
        paymentstriedgauge = gauge.build().name("payments_tried").help("how many payments was sent to paymentservices to be created").register(registry.getprometheusregistry());
        paymentscreated = gauge.build().name("payments_created").help("how many payments sent to paymentservices were created").register(registry.getprometheusregistry());
    }
登入後複製

註冊表來自哪裡

@autowired
prometheusmeterregistry registry;
登入後複製

然後我用一個方法:

paymentstriedgauge.inc();
登入後複製

但後來在 promtheus 的 /metrics 頁面上我沒有收到任何更新:

# HELP payments_tried How many payments was sent to PaymentServices to be created
# TYPE payments_tried gauge
payments_tried 0.0
登入後複製

解決方法

您的用例直接使用 prometheus 儀表。 micrometer 本身可以與自己的儀表一起使用。 (不需要spring boot)

例如:

// maintain a reference to myGauge
AtomicInteger myGauge = registry.gauge("numberGauge", new AtomicInteger(0));

// ... elsewhere you can update the value it holds using the object reference
myGauge.set(27);
myGauge.set(11);
登入後複製

請注意變數 mygauge 其實是一個 atomicinteger 並且 micrometer 只是報告該實例的值。 atomicinteger 還有一個 increment() 方法,您可以很好地使用。

以上是呼叫計數器後,Prometheus /metrics 頁面未更新的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板