[英]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接口,该接口包含两个方法: describe
和collect
。
describe
只是通过给定通道发送有关收集器的可能指标的描述。 这包括它们的名称,可能的标签值和帮助字符串。
collect
创建一个从符合描述的实际指标describe
并用数据填充它们。 因此,在您的情况下,它将从服务中获取JSON,将其解组,然后将值写入相关指标。
然后,在main
功能中,您必须注册您的收集器,然后启动HTTP服务器,如下所示:
prometheus.MustRegister(NewCustomCollector())
http.Handle("/metrics", promhttp.Handler())
log.Fatal(http.ListenAndServe(":8080", nil))
您是说要使用golang为自己的服务编写导出程序? 普罗米修斯出口商页面上列出的出口商都是很好的例子,其中许多都是用golang编写的,您可以选择一个简单的例子,例如redis出口商,以了解其实现方式。
基本上,您需要做的是:
Exporter
类型 Exporter
到prometheus。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.