簡體   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