我使用的是NewGaugeVec彙報我的指標:如何禁用普羅米修斯/ client_golang go_collector指標
elapsed := prometheus.NewGaugeVec(prometheus.GaugeOpts{
Name: "gogrinder_elapsed_ms",
Help: "Current time elapsed of gogrinder teststep",
}, []string{"teststep", "user", "iteration", "timestamp"})
prometheus.MustRegister(elapsed)
所有工作正常,但我注意到,我的自定義導出包含普羅米修斯/ go_collector.go所有指標:
# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 0.00041795300000000004
go_gc_duration_seconds{quantile="0.25"} 0.00041795300000000004
go_gc_duration_seconds{quantile="0.5"} 0.00041795300000000004
...
我懷疑這是一種默認行爲,但在文檔中找不到關於如何禁用該行爲的任何內容。有關如何配置我的自定義導出器以使這些默認指標消失的任何想法?
嗯,如果我沒有記錯的話prometheus聲稱不要自以爲是......如果說我爲我的盆栽植物保持一個溼度傳感器網絡。如果一家工廠報告其goroutines,gc統計等數量,我覺得很奇怪。很高興知道這已經在進行中。感謝指標文章! – mark
普羅米修斯頗有見地,因爲很多乍一看似乎是個好主意的東西其實都是反模式。擁有所有關鍵系統指標非常重要,包括出口商本身的表現。通過刮擦自動獲得它幾乎總是正確的做法。某些盆栽植物可能屬於無意義的類別,您應根據具體結構分別監控出口商。 –
看起來這個問題已經完成,但仍然無法禁用此功能。有'init()'(Golang稱之爲),它會無意識地啓動Go運行時和進程收集器:https://github.com/prometheus/client_golang/blob/69bb3870645f63c67a8dc9c9ef94585fd0d98c80/prometheus/registry.go#L51 –