我是 Golang 的新手,也许我的问题很简单,但我已经尝试了很多方法来做到这一点。我正在尝试为普罗米修斯编写一个简单的导出器。我的代码从 gitlab API 获取一个指标,我希望它只添加 ConstLabels。我的代码:
func enqueueJob() {
for {
dat, err := getJobData()
if err != nil {
fmt.Println(err)
}
time.Sleep(10 * time.Second)
jobsInQueues.Set(dat[0].QueuedDuration)
}
}
var jobsInQueues = promauto.NewGauge(
prometheus.GaugeOpts{
Name: "A_jobs_panding",
Help: "A_Jobs Pending",
ConstLabels: prometheus.Labels{"name": dat[0].Name},
},
)
func main() {
enqueueJob()
http.Handle("/metrics", promhttp.Handler())
http.ListenAndServe(":2112", nil)
}
问题是如何将 getJobData() 函数中的 dat[0].Name 传递给 jobsInQueues getJobData 返回一个 Job 结构?
type Job struct {
ID int `json:"id"`
Status string `json:"status"`
Stage string `json:"stage"`
Name string `json:"name"`
QueuedDuration float64 `json:"queued_duration"`
TagList []string `json:"tag_list"`
}
如果您在函数外部定义 var dat, err = getJobData() ,它不会在 for 之外更新 Name 的值,我理解
一只萌萌小番薯
相关分类