![](/img/trans.png)
[英]How to disable go_collector metrics in prometheus/client_golang
[英]clear prometheus metrics from collector
我正在嘗試修改 prometheus mesos 導出器以公開框架狀態: https://github.com/mesos/mesos_exporter/pull/97/files
關於 mesos 導出器的一點信息 - 它從 mesos /metrics/snapshot
端點和/state
端點收集數據。 后者的問題,無論是我的 PR 中的更改還是從服務器上報告的現有指標,都是創建的指標永遠持續(直到重新啟動導出器)。 因此,例如,如果一個框架已完成,則為該框架報告的指標將是陳舊的(例如,它仍將顯示該框架正在使用 CPU)。
所以我試圖弄清楚如何清除這些陳舊的指標。 如果我每次都可以在收集完成之前清除整個mesosStateCollector
,那就太棒了。 對於不同的 p8s 向量(例如GaugeVec
)有一種delete
方法,但為了刪除一個指標,我不僅需要 label 名稱,還需要相關指標的 label 值。
好的,看起來它比我想象的要容易(如果我在處理這個任務之前熟悉 go-lang)。 只需要將收集器轉換為 GaugeVec 並重置它:
prometheus.NewGaugeVec(prometheus.GaugeOpts{
Help: "Total slave CPUs (fractional)",
Namespace: "mesos",
Subsystem: "slave",
Name: "cpus",
}, labels): func(st *state, c prometheus.Collector) {
c.(*prometheus.GaugeVec).Reset() ## <-- added this for each GaugeVec
for _, s := range st.Slaves {
c.(*prometheus.GaugeVec).WithLabelValues(s.PID).Set(s.Total.CPUs)
}
},
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.