expfmt를 사용하여 Prometheus 데이터 구문 분석
Prometheus 측정항목에서 관련 데이터를 추출하려면 다음에서 개발한 오픈 소스 툴킷인 expfmt 패키지를 사용하면 됩니다. 프로메테우스 작가들. 이 패키지는 EBNF 기반 구문인 Prometheus Exposition Format의 데이터를 구문 분석하고 인코딩하기 위해 특별히 설계되었습니다.
Prometheus 데이터를 구문 분석하려면 아래 설명된 단계를 따르세요.
go get github.com/prometheus/common/expfmt
import "github.com/prometheus/common/expfmt"
expfmt.TextParser를 사용하여 데이터를 해당 측정항목군 형식으로 구문 분석합니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!