Senior
Kādas ir metrikas? Ar kādiem rīkiem mēs rakstīsim šīs metrikas?
sobes.tech AI
Atbilde no AI
Metrikas ir kvantitatīvi rādītāji, kas ļauj uzraudzīt lietojumprogrammas vai sistēmas stāvokli un veiktspēju. Golang un pakalpojumu izstrādes kontekstā parasti tiek vāktas metrikas, piemēram, atbildes laiks, pieprasījumu skaits, kļūdas, atmiņas un CPU izmantošana.
Metriku vākšanai un eksportēšanai bieži izmanto rīkus un bibliotēkas, piemēram:
- Prometheus — uzraudzības un metrikas vākšanas sistēma ar pull modeli.
- OpenTelemetry — standarts telemetrijas (metriku, žurnālu, trases) vākšanai.
- Go klientu bibliotēkas — piemēram,
prometheus/client_golangintegrācijai ar Prometheus.
Piemērs, kā izmantot Prometheus 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: "Kopējais HTTP pieprasījumu skaits",
},
[]string{"path"},
)
)
func init() {
prometheus.MustRegister(requestCount)
}
func handler(w http.ResponseWriter, r *http.Request) {
requestCount.WithLabelValues(r.URL.Path).Inc()
w.Write([]byte("Sveiki, metrikas!"))
}
func main() {
http.HandleFunc("/", handler)
http.Handle("/metrics", promhttp.Handler())
http.ListenAndServe(":8080", nil)
}
Šādi metrikas palīdz uzraudzīt lietojumprogrammas stāvokli un savlaicīgi reaģēt uz problēmām.