go - Prometheus 指标未使用 Prometheus Go 客户端显示

标签 go metrics prometheus

我正在使用 prometheus golang 客户端。代码片段如下。同样的构建工作正常。

问题是只显示 go 指标。 xyz_* 指标缺失。我将 initMetrics() 作为 main() 函数中的第一件事。

// Declaring prometheus metric counters
var (

  metric_prefix = "xyz_"

  xyzAPICallsCounter = prometheus.NewCounterVec(
    prometheus.CounterOpts{
      Name: metric_prefix + "api_calls_total" ,
      Help: "Number of calls to xyz endpoint",
    },
    []string{
      // Type of api call. Present values 
      "type",
      // Method can be "add", "delete", "getall", "get", "create", "ensure"
      "method",
      // Status is success or failed
      "status",
    },
  )

)

    func initMetrics(){
    prometheus.MustRegister(xyzAPICallsCounter)
    http.Handle("/metrics", promhttp.Handler())
    http.ListenAndServe(":8080", nil)
    }

编辑:我将 initMetrics() 函数更改为以下内容,现在根本没有指标和以下错误消息。

func initMetrics(){
  var registry = prometheus.NewRegistry()
  registry.MustRegister(
    xyzAPICallsCounter,
  )
  http.Handle("/metrics", promhttp.HandlerFor(registry, promhttp.HandlerOpts{}))
  log.Fatal(http.ListenAndServe(":8080", nil))
}

最佳答案

CounterVec 是计数器的集合,只有在其中包含计数器后才会导出。

参见 code docsexample了解更多信息。

关于go - Prometheus 指标未使用 Prometheus Go 客户端显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47634807/

相关文章:

go - Go中有没有类似于C++绑定(bind)的东西?

java - 是否有明确定义的方法来衡量 XML 文件的大小和/或复杂性?

go - Prometheus - 如何在指标中包含评论

go - 在没有循环依赖的 Go 中注册包

go - 指定已解析模板的名称

java - 千分尺相当于普罗米修斯的标签

amazon-web-services - 监控微服务架构

kubernetes - 如何区分同名 Prometheus 指标与 Kubernetes 中动态发现的微服务

bash - 普罗米修斯:zsh:未找到匹配项:server.remoteWrite[0].url

json - 当 Go 的 JSON 包提到 Marshal 时是什么意思?