Senior
Jakie metryki? Jakimi narzędziami będziemy je rejestrować?
sobes.tech AI
Odpowiedź od AI
Metryki to ilościowe wskaźniki, które pozwalają na monitorowanie stanu i wydajności aplikacji lub systemu. W kontekście Golang i rozwoju usług zwykle zbiera się metryki takie jak czas odpowiedzi, liczba żądań, błędy, zużycie pamięci i CPU.
Do zbierania i eksportowania metryk często używa się narzędzi i bibliotek, na przykład:
- Prometheus — system monitorowania i zbierania metryk z obsługą modelu pull.
- OpenTelemetry — standard do zbierania telemetrii (metryk, logów, śledzeń).
- Biblioteki klienckie Go — na przykład
prometheus/client_golangdo integracji z Prometheus.
Przykład użycia Prometheus w 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: "Liczba żądań HTTP",
},
[]string{"path"},
)
)
func init() {
prometheus.MustRegister(requestCount)
}
func handler(w http.ResponseWriter, r *http.Request) {
requestCount.WithLabelValues(r.URL.Path).Inc()
w.Write([]byte("Witaj, metryki!"))
}
func main() {
http.HandleFunc("/", handler)
http.Handle("/metrics", promhttp.Handler())
http.ListenAndServe(":8080", nil)
}
W ten sposób metryki pomagają monitorować stan aplikacji i reagować na problemy na czas.