주어진 Prometheus 설명 형식에 표시된 대로 HTTP GET을 통해 얻은 측정항목을 구문 분석하려면 다음 두 가지 접근 방식을 고려해야 합니다.
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) } }
ebnf 패키지는 EBNF 구문과 Prometheus를 지원하므로 데이터 구문 분석을 위한 또 다른 옵션입니다. 그러나 expfmt는 Prometheus 데이터를 구문 분석하는 데 더 구체적이고 효율적인 선택입니다.
입력 파일이 Prometheus 텍스트를 따르도록 줄 끝으로 줄 바꿈 문자(n)를 사용하는지 확인하세요. 프로토콜 사양. r 등 다른 문자를 사용하면 프로토콜 오류가 발생합니다.
위 내용은 Go에서 Prometheus Exposition 형식 데이터를 효율적으로 구문 분석하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!