Sobes.tech
Senior

Millised on mõõdikud? Milliste tööriistadega me neid mõõdikuid kirjutame?

sobes.tech AI

Vastus AI-lt

Metrikad on kvantitatiivsed näitajad, mis võimaldavad jälgida rakenduse või süsteemi olekut ja jõudlust. Golang'i ja teenuste arenduse kontekstis kogutakse tavaliselt metrikatena vastamise aeg, päringute arv, vead, mälu ja CPU kasutus.

Metrikate kogumiseks ja eksportimiseks kasutatakse sageli tööriistu ja raamatukogusid, näiteks:

  • Prometheus — jälgimis- ja metrikate kogumise süsteem, mis toetab pull-mudelit.
  • OpenTelemetry — standard telemeetria (mõõdikud, logid, jäljed) kogumiseks.
  • Go kliendiraamatukogud — näiteks, prometheus/client_golang Prometheus'iga integreerimiseks.

Näide Prometheus kasutamisest Go keeles:

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: "HTTP päringute koguarv",
        },
        []string{"path"},
    )
)

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

func handler(w http.ResponseWriter, r *http.Request) {
    requestCount.WithLabelValues(r.URL.Path).Inc()
    w.Write([]byte("Tere, mõõdikud!"))
}

func main() {
    http.HandleFunc("/", handler)
    http.Handle("/metrics", promhttp.Handler())
    http.ListenAndServe(":8080", nil)
}

Sellisel viisil aitavad metrikad jälgida rakenduse olekut ja reageerida probleemidele õigeaegselt.