要解析透過HTTP GET 取得的指標(如給定的Prometheus 展示格式所示),可以考慮兩種方法:
來自Prometheus 的expfmt包團隊專為解析和編碼 Prometheus Exposition Format 資料而設計。它遵循 EBNF 語法,提供了一種便捷的方式來提取資料。
範例輸入:
# HELP net_conntrack_dialer_conn_attempted_total # TYPE net_conntrack_dialer_conn_attempted_total untyped net_conntrack_dialer_conn_attempted_total{dialer_name="federate",instance="localhost:9090",job="prometheus"} 1 1608520832877
範例程式:
package main import ( "fmt" "log" "os" dto "github.com/prometheus/client_model/go" "github.com/prometheus/common/expfmt" ) func main() { reader, err := os.Open("path/to/input.txt") if err != nil { log.Fatalln(err) } var parser expfmt.TextParser mf, err := parser.TextToMetricFamilies(reader) if err != nil { log.Fatalln(err) } for k, v := range mf { fmt.Println("KEY:", k) fmt.Println("VAL:", v) } }
以上是如何在Go中高效解析Prometheus Exposition格式資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!