[英]Prometheus - Adding new labels to gauge results in an `inconsistent label cardinality` error
我有一個 Go 應用程序將數據發送到普羅米修斯儀表
...
import (
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promauto"
)
...
var gauge = promauto.NewGaugeVec(prometheus.GaugeOpts{
Name: "some_name",
Help: "some desc",
},
[]string{"labelA", "labelB"},
)
...
// sending data to gauge
gauge.With(prometheus.Labels{
"labelA": "...",
"labelB": "...",
})
然后我修改了應用程序以包含第三個 label ( labelC
)
...
var gauge = promauto.NewGaugeVec(prometheus.GaugeOpts{
Name: "some_name",
Help: "some desc",
},
[]string{"labelA", "labelB", "labelC"},
)
...
gauge.With(prometheus.Labels{
"labelA": "...",
"labelB": "...",
"labelC": "...",
})
但是現在當我運行包含新 label 的應用程序時,我收到此錯誤
panic: inconsistent label cardinality: expected ... label values but got ... in prometheus.Labels{...}
調用gauge.With
時發生錯誤
有人知道為什么嗎?
如果With
中的標簽數量與NewGaugeVec
中的標簽數量不匹配,客戶端庫將引發此錯誤。 因此,您可能忘記在代碼中的某處添加labelC: "..."
。 您應該能夠在堆棧跟蹤中找到該行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.