Sobes.tech
Senior

Siz metrikalarni qanday sozlagandingiz? Umuman qayerga joylashtiryapsiz?

sobes.tech AI

AIdan javob

Go loyihalarida metrikalarni sozlash uchun odatda prometheus/client_golang kutubxonasi bilan Prometheusdan foydalanaman. Metrikalar hisoblagichlar, histogramlar, gajlar va boshqalar bo'lib, bu so'rovlar soni, ishlash vaqti, xatoliklar va yukni kuzatishga imkon beradi.

So'rovlar hisoblagichini sozlash misoli:

import (
    "github.com/prometheus/client_golang/prometheus"
    "github.com/prometheus/client_golang/prometheus/promhttp"
    "net/http"
)

var (
    requestCounter = prometheus.NewCounterVec(
        prometheus.CounterOpts{
            Name: "http_requests_total",
            Help: "HTTP so'rovlar soni",
        },
        []string{"path", "method"},
    )
)

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

func handler(w http.ResponseWriter, r *http.Request) {
    requestCounter.WithLabelValues(r.URL.Path, r.Method).Inc()
    w.Write([]byte("Salom, Metrik!"))
}

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

Deploy qilish bo'yicha, odatda Kubernetes va Helm chartlardan foydalanaman. CI/CD GitLab CI yoki Jenkins orqali sozlangan va deployment bulutda amalga oshiriladi (masalan, AWS EKS yoki GCP GKE). Monitoring va alertlar uchun Prometheusni Grafana va Alertmanager bilan integratsiya qilaman.