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:
- In der Go-Anwendung die Prometheus-Client-Bibliothek (prometheus/client_golang) einbinden.
- Metriken (Zähler, Histogramme, Gauge) definieren und registrieren.
- Einen HTTP-Server mit einem Endpoint
/metricsstarten, der die aktuellen Metrikwerte im Prometheus-kompatiblen Format bereitstellt. - In Prometheus die Sammlung der Metriken von diesem Endpoint konfigurieren.
- 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.