Maison > développement back-end > Golang > Comment puis-je analyser efficacement les données du format d'exposition Prometheus dans Go ?

Comment puis-je analyser efficacement les données du format d'exposition Prometheus dans Go ?

Mary-Kate Olsen
Libérer: 2024-12-03 21:10:15
original
483 Les gens l'ont consulté

How Can I Efficiently Parse Prometheus Exposition Format Data in Go?

Analyse des données Prometheus

Pour analyser les métriques obtenues via HTTP GET comme indiqué dans le format d'exposition Prometheus donné, il existe deux approches à considérer :

Utilisation du package expfmt

Le package expfmt de l'équipe Prometheus est spécifiquement conçu pour analyser et coder les données du format d'exposition Prometheus. Il suit la syntaxe EBNF et fournit un moyen pratique d'extraire les données.

Exemple d'entrée :

# 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
Copier après la connexion

Exemple de programme :

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)
    }
}
Copier après la connexion

Utilisation du package ebnf

Le package ebnf est une autre option pour analyser les données, car il prend en charge la syntaxe EBNF suivie par Prometheus. Cependant, expfmt est un choix plus spécifique et plus efficace pour analyser les données Prometheus.

Remarque de formatage

Assurez-vous que le fichier d'entrée utilise des caractères de saut de ligne (n) pour que les fins de ligne suivent le texte Prometheus. spécifications du protocole. L'utilisation d'autres caractères, tels que r, entraînera une erreur de protocole.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal