Sobes.tech
Senior

Кайсы метрикалар? Бул метрикаларды кайсы инструменттер менен жазабыз?

sobes.tech AI

AIден жооп

Метрилер — бул сандык көрсөткүчтөр, алар колдонмо же системанын абалын жана иштешин көзөмөлдөөгө мүмкүндүк берет. Golang жана кызматтарды өнүктүрүү контекстинде, адатта, жооп убактысы, суроо саны, каталар, эс тутум жана CPU колдонуу сыяктуу метрикалар топтолуп турат.

Метрилерди топтоо жана экспорттоо үчүн көбүнчө инструменттер жана китепканалар колдонулат, мисалы:

  • Prometheus — pull моделин колдогон мониторинг жана метрикаларды топтоо системасы.
  • OpenTelemetry — телеметрияны (метрикалар, логдор, трассалар) топтоо стандарты.
  • Go кардар китепканалары — мисалы, prometheus/client_golang Prometheus менен интеграциялоо үчүн.

Goда Prometheus колдонуу мисалы:

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 суроолорунун жалпы саны",
        },
        []string{"path"},
    )
)

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

func handler(w http.ResponseWriter, r *http.Request) {
    requestCount.WithLabelValues(r.URL.Path).Inc()
    w.Write([]byte("Салам, метрикалар!"))
}

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

Ушул жол менен, метрикалар колдонмонун абалын көзөмөлдөөгө жана көйгөйлөргө убагында реакция кылууга жардам берет.