Sobes.tech
Junior — Middle

Hoe kunnen metrics van een applicatie naar Grafana worden overgebracht voor visualisatie en monitoring?

sobes.tech AI

Antwoord van AI

Om metrics van een Go-toepassing naar Grafana te sturen, wordt meestal het monitoring systeem Prometheus gebruikt, dat goed integreert met Grafana.

Belangrijkste stappen:

  1. In de Go-toepassing wordt de Prometheus clientbibliotheek (prometheus/client_golang) gekoppeld.
  2. Metrics (tellers, histogrammen, gauges) worden gedefinieerd en geregistreerd.
  3. Een HTTP-server wordt gestart met een endpoint /metrics, dat de huidige metricwaarden in een door Prometheus te begrijpen formaat levert.
  4. In Prometheus wordt de verzameling van metrics vanaf dit endpoint geconfigureerd.
  5. Grafana verbindt zich met Prometheus als gegevensbron en visualiseert de metrics.

Voorbeeld van code 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: "Het totale aantal verwerkte gebeurtenissen",
    })
)

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

func main() {
    http.Handle("/metrics", promhttp.Handler())
    go func() {
        for {
            opsProcessed.Inc() // teller verhogen
            time.Sleep(time.Second)
        }
    }()
    http.ListenAndServe(":2112", nil)
}

Op deze manier zijn de metrics beschikbaar voor verzameling door Prometheus en visualisatie in Grafana.