1 回答

TA貢獻1795條經驗 獲得超7個贊
顧名思義,ConstLabels是一組標簽(=鍵值對),它們出現在指標上并且無法更改。您似乎希望有一個標簽,其中每次執行的值都不同。
如果是這樣,ConstLabels那不是您要找的東西。相反,您應該考慮使用GaugeVec帶有 label 的 (gauge vector) name。
定義您的指標:
var jobsInQueues = promauto.NewGaugeVec(
prometheus.GaugeOpts{
Name: "A_jobs_panding",
Help: "A_Jobs Pending",
},
[]string{"name"},
)
然后,通過為名稱提供一個值來設置儀表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是代碼中的阻塞操作,因此它永遠不會啟動 HTTP 服務器。你會想要在他們自己的 goroutine 上運行enqueueJob或http.ListenAndServe調用。此外,值得考慮從 Gitlab API 返回的潛在不同名稱以及它們如何影響您的指標的基數。
- 1 回答
- 0 關注
- 166 瀏覽
添加回答
舉報