Sobes.tech
Junior — Middle

Comment transmettre les métriques d'une application à Grafana pour la visualisation et la surveillance?

sobes.tech IA

Réponse de l'IA

Pour transmettre des métriques d'une application Go à Grafana, on utilise généralement le système de surveillance Prometheus, qui s'intègre bien avec Grafana.

Étapes principales :

  1. Dans l'application Go, connectez la bibliothèque cliente Prometheus (prometheus/client_golang).
  2. Définissez et enregistrez les métriques (compteurs, histogrammes, gauges).
  3. Lancez un serveur HTTP avec un endpoint /metrics, qui fournit les valeurs actuelles des métriques dans un format compréhensible par Prometheus.
  4. Configurez Prometheus pour collecter les métriques depuis cet endpoint.
  5. Grafana se connecte à Prometheus en tant que source de données et visualise les métriques.

Exemple de code en Go :

import (
    "net/http"
    "github.com/prometheus/client_golang/prometheus"
    "github.com/prometheus/client_golang/prometheus/promhttp"
)

var (
    opsProcessed = prometheus.NewCounter(prometheus.CounterOpts{
        Name: "myapp_processed_ops_total",
        Help: "Le nombre total d'événements traités",
    })
)

func init() {
    prometheus.MustRegister(opsProcessed)
}

func main() {
    http.Handle("/metrics", promhttp.Handler())
    go func() {
        for {
            opsProcessed.Inc() // incrémente le compteur
            time.Sleep(time.Second)
        }
    }()
    http.ListenAndServe(":2112", nil)
}

Ainsi, les métriques sont accessibles pour la collecte par Prometheus et leur affichage dans Grafana.