Sobes.tech
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_golang integrā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.