使用expfmt 解析Prometheus 數據
可以使用expfmt 包來實現從Prometheus 指標中提取相關數據,expfmt 包斯的作者。該軟體包專為解析和編碼 Prometheus Exposition Format(一種基於 EBNF 的語法)中的資料而設計。
要解析Prometheus 數據,您可以按照以下步驟操作:
go get github.com/prometheus/common/expfmt
import "github.com/prometheus/common/expfmt"
parser := expfmt.TextParser{} metricFamilies, err := parser.TextToMetricFamilies(reader) if err != nil { log.Fatal(err) }
for name, metricFamily := range metricFamilies { fmt.Println("Metric Family:", name) for _, metric := range metricFamily.GetMetric() { fmt.Println("\tMetric:", metric) for _, label := range metric.GetLabel() { fmt.Println("\t\tLabel:", label) } for _, point := range metric.GetCounter().GetValue() { fmt.Println("\t\tPoint:", point) } } }
path := "path/to/prometheus.txt" mf, err := parseMF(path) if err != nil { log.Fatal(err) } for k, v := range mf { fmt.Println(k) fmt.Println(v) }
存取解析的資料:
解析後,您可以存取每個度量標準系列都使用其名稱。每個指標系列包含一組指標,每個指標都有一組標籤和一個時間序列:範例用法:此範例用法解析Prometheus 資料從指定的文件中取得並列印出每個指標系列的鍵值對。 注意:確保您的 Prometheus 資料是使用換行 (n) 字元作為行終止符正確格式化。使用回車符 (r) 等其他字元可能會導致錯誤。以上是如何使用Go中的expfmt包解析Prometheus資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!