Analyse des données Prometheus avec expfmt
L'extraction de données pertinentes à partir des métriques Prometheus peut être réalisée à l'aide du package expfmt, une boîte à outils open source développée par les auteurs de Prométhée. Ce package est conçu spécifiquement pour analyser et coder des données dans le format d'exposition Prometheus, une syntaxe basée sur EBNF.
Pour analyser les données Prometheus, vous pouvez suivre les étapes décrites ci-dessous :
go get github.com/prometheus/common/expfmt
import "github.com/prometheus/common/expfmt"
Utilisez le expfmt.TextParser pour analyser les données dans le format de famille de métriques correspondant :
parser := expfmt.TextParser{} metricFamilies, err := parser.TextToMetricFamilies(reader) if err != nil { log.Fatal(err) }
Une fois analysées, vous peut accéder à chaque famille de métriques en utilisant son nom. Chaque famille de métriques contient un ensemble de métriques, chacune comportant un ensemble d'étiquettes et une série temporelle :
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) } } }
Exemple d'utilisation :
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) }
Cet exemple d'utilisation analyse les données Prometheus. à partir du fichier spécifié et imprime les paires clé-valeur pour chaque famille de métriques.
Remarque : assurez-vous que vos données Prometheus sont formatées correctement avec des caractères de saut de ligne (n) comme terminateurs de ligne. L'utilisation d'autres caractères comme le retour chariot (r) peut entraîner des erreurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!