我正在尝试使用client_golang
在GoLang中编写JSON导出器我找不到任何有用的例子。我有一个服务ABC,通过HTTP生成JSON输出。我想使用client-golang将此指标导出到prometheus。
答案 0 :(得分:1)
看一下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))
答案 1 :(得分:1)
你的意思是你想使用golang为自己的服务编写一个导出器? prometheus exporter page上列出的出口商都是很好的例子,其中许多是用golang编写的,你可以选择一个简单的例如redis exporter来看看它是如何实现的。
基本上你需要做的是:
Exporter
类型Exporter
到普罗米修斯