簡體   English   中英

從收集器中清除普羅米修斯指標

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM