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)
}

Այս կերպ, մետրիկները օգնում են հետևել ծրագրի վիճակին և ժամանակին արձագանքել խնդիրներին։