亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

prometheus ConstLabels取值

prometheus ConstLabels取值

Go
慕桂英546537 2023-03-15 14:33:05
我是 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 的值,我理解
查看完整描述

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 返回的潛在不同名稱以及它們如何影響您的指標的基數。


查看完整回答
反對 回復 2023-03-15
  • 1 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號