繁体   English   中英

如何使用client_golang在Prometheus中提取指标

[英]How to pull metrics in prometheus using client_golang

我正在尝试使用client_golang在GoLang中编写一个JSON导出

我找不到任何有用的示例。 我有一个服务ABC,它通过HTTP生成JSON输出。 我想使用client-golang将该指标导出到prometheus。

看一下Go客户端的godoc,它非常详细,并包含许多示例。 这里的Collector界面最相关:

https://godoc.org/github.com/prometheus/client_golang/prometheus#example-Collector

本质上,您将实现Collector接口,该接口包含两个方法: describecollect

describe只是通过给定通道发送有关收集器的可能指标的描述。 这包括它们的名称,可能的标签值和帮助字符串。

collect创建一个从符合描述的实际指标describe并用数据填充它们。 因此,在您的情况下,它将从服务中获取JSON,将其解组,然后将值写入相关指标。

然后,在main功能中,您必须注册您的收集器,然后启动HTTP服务器,如下所示:

prometheus.MustRegister(NewCustomCollector())
http.Handle("/metrics", promhttp.Handler())
log.Fatal(http.ListenAndServe(":8080", nil))

您是说要使用golang为自己的服务编写导出程序? 普罗米修斯出口商页面上列出的出口商都是很好的例子,其中许多都是用golang编写的,您可以选择一个简单的例子,例如redis出口商,以了解其实现方式。

基本上,您需要做的是:

  1. 定义自己的Exporter类型
  2. 实现接口prometheus.Collector ,您可以轮询服务中的json数据并基于该数据构建指标
  3. 通过prometheus注册您自己的Exporter到prometheus。
  4. 启动HTTP服务器并公开指标终结点以供Prometheus轮询指标

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM