Sobes.tech
Senior

Hangi metrikler? Bu metrikleri hangi araçlarla yazacağız?

sobes.tech yapay zeka

AI'dan gelen yanıt

Metrikler, uygulama veya sistemin durumunu ve performansını izlemeye olanak tanıyan nicel göstergelerdir. Golang ve servis geliştirme bağlamında, genellikle yanıt süresi, istek sayısı, hatalar, bellek ve CPU kullanımı gibi metrikler toplanır.

Metrikleri toplamak ve dışa aktarmak için genellikle araçlar ve kütüphaneler kullanılır, örneğin:

  • Prometheus — pull modeli destekleyen bir izleme ve metrik toplama sistemi.
  • OpenTelemetry — telemetri (metrikler, günlükler, izler) toplama standardı.
  • Go istemci kütüphaneleri — örneğin, prometheus/client_golang Prometheus ile entegrasyon için.

Prometheus'un Go'da kullanımına örnek:

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: "Toplam HTTP isteği sayısı",
        },
        []string{"path"},
    )
)

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

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

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

Bu şekilde, metrikler uygulamanın durumunu izlemeye ve sorunlara zamanında müdahale etmeye yardımcı olur.