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 关注
- 175 浏览
添加回答
举报