我正在尝试使用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为自己的服务编写一个导出器?在prometheus exporter page上列出的出口商都是很好的例子,其中许多是用golang编写的,你可以选择一个像redis exporter这样的简单例子来看看它是如何实现的。
基本上你需要做的是:
Exporter
类型Exporter
将自己的prometheus.MustRegister注册到prometheus