Sobes.tech
Junior — Middle

Wie kann man Metriken aus einer Anwendung an Grafana zur Visualisierung und Überwachung übertragen?

sobes.tech KI

Antwort von AI

Um Metrics von einer Go-Anwendung zu Grafana zu übertragen, verwendet man in der Regel das Überwachungssystem Prometheus, das gut mit Grafana integriert ist.

Hauptschritte:

  1. In der Go-Anwendung die Prometheus-Client-Bibliothek (prometheus/client_golang) einbinden.
  2. Metriken (Zähler, Histogramme, Gauge) definieren und registrieren.
  3. Einen HTTP-Server mit einem Endpoint /metrics starten, der die aktuellen Metrikwerte im Prometheus-kompatiblen Format bereitstellt.
  4. In Prometheus die Sammlung der Metriken von diesem Endpoint konfigurieren.
  5. Grafana verbindet sich mit Prometheus als Datenquelle und visualisiert die Metriken.

Beispielcode in 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: "Die Gesamtzahl der verarbeiteten Ereignisse",
    })
)

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

func main() {
    http.Handle("/metrics", promhttp.Handler())
    go func() {
        for {
            opsProcessed.Inc() // Zähler erhöhen
            time.Sleep(time.Second)
        }
    }()
    http.ListenAndServe(":2112", nil)
}

Auf diese Weise sind die Metriken für die Sammlung durch Prometheus und die anschließende Visualisierung in Grafana zugänglich.