1 回答
TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
顧名思義,ConstLabels是一組標(biāo)簽(=鍵值對),它們出現(xiàn)在指標(biāo)上并且無法更改。您似乎希望有一個(gè)標(biāo)簽,其中每次執(zhí)行的值都不同。
如果是這樣,ConstLabels那不是您要找的東西。相反,您應(yīng)該考慮使用GaugeVec帶有 label 的 (gauge vector) name。
定義您的指標(biāo):
var jobsInQueues = promauto.NewGaugeVec(
prometheus.GaugeOpts{
Name: "A_jobs_panding",
Help: "A_Jobs Pending",
},
[]string{"name"},
)
然后,通過為名稱提供一個(gè)值來設(shè)置儀表getJobData:
func enqueueJob() {
for {
dat, err := getJobData()
if err != nil {
fmt.Println(err)
}
time.Sleep(10 * time.Second)
jobsInQueues.With(prometheus.Labels{
"name": dat[0].Name,
}).Set(dat[0].QueuedDuration)
}
}
請注意,這enqueueJob是代碼中的阻塞操作,因此它永遠(yuǎn)不會(huì)啟動(dòng) HTTP 服務(wù)器。你會(huì)想要在他們自己的 goroutine 上運(yùn)行enqueueJob或http.ListenAndServe調(diào)用。此外,值得考慮從 Gitlab API 返回的潛在不同名稱以及它們?nèi)绾斡绊懩闹笜?biāo)的基數(shù)。
- 1 回答
- 0 關(guān)注
- 186 瀏覽
添加回答
舉報(bào)
