我正在尝试修改 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)
}
},
- 1 回答
- 0 关注
- 292 浏览
添加回答
举报
0/150
提交
取消