首页 > 解决方案 > Prometheus 计数器:如何使用 golang 客户端获取当前值?

问题描述

我正在使用计数器来计算请求的数量。有没有办法获得普罗米修斯计数器的当前值?

我的目标是重用现有计数器而不分配另一个变量。

Golang prometheus 客户端版本为 1.1.0。

标签: goprometheus

解决方案


很简单,有一个获取 Prometheus 计数器值的功能


import (
    "github.com/prometheus/client_golang/prometheus"
    dto "github.com/prometheus/client_model/go"
    "github.com/prometheus/common/log"
)

func GetCounterValue(metric *prometheus.CounterVec) float64 {
    var m = &dto.Metric{}
    if err := metric.WithLabelValues("label1", "label2").Write(m); err != nil {
        log.Error(err)
        return 0
    }
    return m.Counter.GetValue()
}

推荐阅读