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

如何在 prometheus/client_golang 中禁用 go_collector 指标

如何在 prometheus/client_golang 中禁用 go_collector 指标

Go
喵喔喔 2021-12-07 17:06:08
我正在使用 NewGaugeVec 来报告我的指标:elapsed := prometheus.NewGaugeVec(prometheus.GaugeOpts{    Name: "gogrinder_elapsed_ms",    Help: "Current time elapsed of gogrinder teststep",}, []string{"teststep", "user", "iteration", "timestamp"})prometheus.MustRegister(elapsed)一切正常,但我注意到我的自定义导出器包含来自 prometheus/go_collector.go 的所有指标:# HELP go_gc_duration_seconds A summary of the GC invocation durations.# TYPE go_gc_duration_seconds summarygo_gc_duration_seconds{quantile="0"} 0.00041795300000000004go_gc_duration_seconds{quantile="0.25"} 0.00041795300000000004go_gc_duration_seconds{quantile="0.5"} 0.00041795300000000004...我怀疑这是一种默认行为,但我没有在文档中找到有关如何禁用它的任何内容。关于如何配置我的自定义导出器以便这些默认指标消失的任何想法?
查看完整描述

3 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

好吧,这个话题已经很老了,但以防万一其他人不得不处理它。以下代码适用于当前代码库v0.9.0-pre1


// [...] imports, metric initialization ...


func main() {

  // go get rid of any additional metrics 

  // we have to expose our metrics with a custom registry

  r := prometheus.NewRegistry()

  r.MustRegister(myMetrics)

  handler := promhttp.HandlerFor(r, promhttp.HandlerOpts{})


  // [...] update metrics within a goroutine


  http.Handle("/metrics", handler)

  log.Fatal(http.ListenAndServe(":12345", nil))

}


查看完整回答
反对 回复 2021-12-07
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

这在 Go 客户端中目前是不可能的,一旦https://github.com/prometheus/client_golang/issues/46完成,您将有办法做到这一点。

一般来说,您希望您的自定义导出器导出这些,我知道目前没有意义的唯一导出器是 snmp 和 blackbox 导出器。

顺便说一句,timestamp作为标签似乎很奇怪,如果你想要的话,你可能应该使用日志记录而不是指标。请参阅https://blog.raintank.io/logs-and-metrics-and-graphs-oh-my/ 普罗米修斯的方式是将时间戳作为一个值,而不是一个标签。


查看完整回答
反对 回复 2021-12-07
?
智慧大石

TA贡献1946条经验 获得超3个赞

--web.disable-exporter-metrics现在可以使用了。

https://github.com/prometheus/node_exporter/pull/1148


查看完整回答
反对 回复 2021-12-07
  • 3 回答
  • 0 关注
  • 428 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信