2017-03-17 35 views
0

我想寫使用client_golang如何使用client_golang

我找不到這方面的任何有用的例子在GoLang一個JSON出口拉動的普羅米修斯指標。我有一個通過HTTP產生JSON輸出的服務ABC。我想使用客戶端-golang將此度量標準導出到prometheus。

+0

你想要通過prometheus拉動度量嗎?或者你想推普度美國pushgateway?如果你想拉動指標,你應該通過http註冊指標,如下所示:https://github.com/prometheus/client_golang/blob/master/examples/random/main.go – Leonard

+0

我有一個服務可以通過HTTP生成JSON輸出。需要一個從這個HTTP讀取JSON並將它傳遞給prometheus的GoLang示例。 – ambikanair

+0

https://www.robustperception.io/writing-json-exporters-in-python/ 在GoLang中這樣的事情。 – ambikanair

回答

1

看看Go客戶端的godoc,它非常詳細,幷包含大量的例子。在一個用於收集器接口可能是最相關的位置:

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

從本質上講,你將實現收集器接口,其中包含兩個方法:describecollect

describe只是通過給定通道發送收集器可能的度量標準的描述。這包括他們的名字,可能的標籤值和幫助字符串。

collect創建與describe中的描述相匹配的實際指標,並使用數據填充它們。因此,就你的情況而言,它會從你的服務中獲取JSON,解組並將值寫入相關指標。

在你main功能,你就必須註冊您的收藏家,並啓動HTTP服務器,就像這樣:

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

你的意思是你想要寫一個出口商使用golang自己的服務?列在prometheus exporter page上的出口商都是很好的例子,其中許多是用golang編寫的,你可以選擇一個簡單的例子,看看它是如何實現的。

基本上你需要做的是:

  1. 定義自己的Exporter
  2. 實現接口prometheus.Collector,您可以查詢從服務JSON數據和建立在此基礎上度量
  3. 註冊您的自己的Exporter到prometheus由prometheus.MustRegister
  4. 啓動一個HTTP服務器並公開Prometheus的度量標準端點以輪詢度量標準