Sobes.tech
Senior

Xizmatlarning kuzatuvchanligi uchun qanday vositalar ishlatildi?

sobes.tech AI

AIdan javob

Go'da xizmatlarning kuzatuvchanligini ta'minlash uchun odatda bir nechta vositani kombinatsiyasidan foydalanaman:

  • Prometheus metrikalarni yig'ish uchun: Go bilan oson integratsiya qilinadi, moslashtirilgan metrikalarni yig'ish va panel qurish imkonini beradi.
  • Grafana Prometheusdan olingan metrikalarni vizualizatsiya qilish uchun.
  • Jaeger yoki OpenTelemetry taqsimlangan izlash uchun, bu kechikishlarni va xizmatlar o'rtasidagi chaqiriqlar zanjirini tushunishga yordam beradi.
  • Logrus yoki Zap strukturali log yozish uchun, keyinchalik ELK-stack (Elasticsearch, Logstash, Kibana) yoki Loki ga yig'ish uchun.

Go'da Prometheus integratsiyasi misoli:

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 so'rovlarining umumiy soni",
    },
    []string{"path"},
)

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

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

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

Bu stek xizmatlarning holati va ishlashini to'liq ko'rsatishga imkon beradi.