为了账号安全,请及时绑定邮箱和手机立即绑定

从收集器中清除普罗米修斯指标

从收集器中清除普罗米修斯指标

Go
Smart猫小萌 2022-06-13 15:21:50
我正在尝试修改 prometheus mesos 导出器以公开框架状态: https ://github.com/mesos/mesos_exporter/pull/97/files关于 mesos 导出器的一点信息 - 它从 mesos/metrics/snapshot端点和/state端点收集数据。后者的问题,无论是我的 PR 中的更改以及从服务器上报告的现有指标,都是创建的指标永远持续(直到重新启动导出器)。因此,例如,如果一个框架已完成,则为该框架报告的指标将是陈旧的(例如,它仍将显示该框架正在使用 CPU)。所以我试图弄清楚如何清除那些陈旧的指标。如果我可以在每次收集完成之前清除整个mesosStateCollector时间,那就太棒了。delete对于不同的 p8s 向量(例如),有一种方法GaugeVec,但是为了删除一个指标,我不仅需要标签名称,还需要相关指标的标签值。
查看完整描述

1 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

好的,看起来它比我想象的要容易(如果我在处理这个任务之前熟悉 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)

            }

        },


查看完整回答
反对 回复 2022-06-13
  • 1 回答
  • 0 关注
  • 292 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号