Senior
Welke metrics? Met welke tools gaan we deze metrics vastleggen?
sobes.tech AI
Antwoord van AI
Metrieken zijn kwantitatieve indicatoren die het mogelijk maken de toestand en prestaties van een applicatie of systeem te volgen. In de context van Golang en serviceontwikkeling worden meestal metriekgegevens verzameld zoals responstijd, aantal verzoeken, fouten, geheugen- en CPU-gebruik.
Om metriekgegevens te verzamelen en te exporteren worden vaak tools en bibliotheken gebruikt, bijvoorbeeld:
- Prometheus — een monitoring- en metriekverzamelingssysteem dat pull-modellen ondersteunt.
- OpenTelemetry — een standaard voor het verzamelen van telemetrie (metriek, logs, traces).
- Go clientbibliotheken — bijvoorbeeld
prometheus/client_golangvoor integratie met Prometheus.
Voorbeeld van het gebruik van Prometheus in Go:
import (
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
"net/http"
)
var (
requestCount = prometheus.NewCounterVec(
prometheus.CounterOpts{
Name: "http_requests_total",
Help: "Totaal aantal HTTP-verzoeken",
},
[]string{"path"},
)
)
func init() {
prometheus.MustRegister(requestCount)
}
func handler(w http.ResponseWriter, r *http.Request) {
requestCount.WithLabelValues(r.URL.Path).Inc()
w.Write([]byte("Hallo, metrics!"))
}
func main() {
http.HandleFunc("/", handler)
http.Handle("/metrics", promhttp.Handler())
http.ListenAndServe(":8080", nil)
}
Op deze manier helpen metriekgegevens om de toestand van de applicatie te monitoren en tijdig te reageren op problemen.