prometheus/client_golang Go: पूर्ण गाइड उदाहरणों के साथ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

prometheus/client_golang Go के लिए: पूरी गाइड

1. यह क्या है और इसकी आवश्यकता क्यों है

prometheus/client_golang लाइब्रेरी Prometheus मॉनिटरिंग सिस्टम के लिए आधिकारिक क्लाइंट है, जो Go भाषा में लिखा गया है। यह डेवलपर्स को Go एप्लिकेशन से मेट्रिक्स इकट्ठा करने, एकत्र करने और निर्यात करने के लिए एक शक्तिशाली और लचीला टूलकिट प्रदान करता है। Prometheus, DevOps और क्लाउड टेक्नोलॉजी की दुनिया में, विशेष रूप से Kubernetes इकोसिस्टम में, सबसे लोकप्रिय मेट्रिक्स और मॉनिटरिंग सिस्टम में से एक है।

इसकी आवश्यकता क्यों है? आधुनिक माइक्रोसर्विस आर्किटेक्चर में यह समझना बेहद ज़रूरी है कि आपका एप्लिकेशन कैसे काम कर रहा है: यह कितने अनुरोधों को प्रोसेस कर रहा है, प्रतिक्रिया में कितनी देरी हो रही है, कितनी मेमोरी खपत कर रहा है, और कितनी बार त्रुटियाँ हो रही हैं। prometheus/client_golang आपको अपने कोड में ये मेट्रिक्स आसानी से जोड़ने की सुविधा देता है। यह लाइब्रेरी स्वचालित रूप से एक एंडपॉइंट (आमतौर पर /metrics) प्रदान करती है, जिसे Prometheus शेड्यूल के अनुसार "स्क्रेप" (पूछताछ) कर सकता है। इससे आप Grafana में डैशबोर्ड बना सकते हैं, अलर्ट सेट कर सकते हैं और अपने सर्विस की पूरी हेल्थ स्थिति जान सकते हैं।

लाइब्रेरी की मुख्य क्षमताओं में Prometheus के चार मुख्य मेट्रिक प्रकारों का समर्थन शामिल है: Counter (काउंटर जो केवल बढ़ता है), Gauge (गेज जो बढ़ और घट सकता है), Histogram (हिस्टोग्राम जो मानों के वितरण को मापता है, जैसे प्रतिक्रिया समय), और Summary (सारांश जो हिस्टोग्राम के समान है, लेकिन क्लाइंट साइड पर क्वांटाइल की गणना करता है)। इसके अलावा, लाइब्रेरी Go (मेमोरी, गोरूटीन, GC) और HTTP सर्वर के मानक मेट्रिक्स के लिए सुविधाजनक "कलेक्टर" प्रदान करती है।

2. इंस्टॉलेशन

लाइब्रेरी को इंस्टॉल करने के लिए मानक go get कमांड का उपयोग करें। सुनिश्चित करें कि आपके पास Go का वर्शन 1.16 या उससे ऊपर है (नवीनतम स्थिर वर्शन की सिफारिश की जाती है)।

go get github.com/prometheus/client_golang/prometheus
go get github.com/prometheus/client_golang/prometheus/promhttp

इन कमांड को चलाने के बाद, आपके go.mod में एक डिपेंडेंसी जुड़ जाएगी। prometheus पैकेज में लाइब्रेरी का कोर (मेट्रिक प्रकार, रजिस्ट्रेशन) होता है, जबकि promhttp मेट्रिक्स को निर्यात करने के लिए HTTP हैंडलर प्रदान करता है।

3. त्वरित शुरुआत — न्यूनतम कार्यशील उदाहरण

आइए एक न्यूनतम एप्लिकेशन बनाते हैं जो एक मेट्रिक — प्रोसेस किए गए HTTP अनुरोधों की संख्या — को निर्यात करेगा।

package main

import (
    "fmt"
    "net/http"

    "github.com/prometheus/client_golang/prometheus"
    "github.com/prometheus/client_golang/prometheus/promhttp"
)

var (
    // "path" लेबल के साथ अनुरोध काउंटर को परिभाषित करें
    requestsTotal = prometheus.NewCounterVec(
        prometheus.CounterOpts{
            Name: "http_requests_total",
            Help: "HTTP अनुरोधों की कुल संख्या।",
        },
        []string{"path"},
    )
)

func init() {
    // मेट्रिक को ग्लोबल रजिस्ट्री में रजिस्टर करें
    prometheus.MustRegister(requestsTotal)
}

func main() {
    // मुख्य पथ के लिए हैंडलर
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        // "/" पथ के लिए काउंटर बढ़ाएँ
        requestsTotal.WithLabelValues("/").Inc()
        fmt.Fprintf(w, "Hello, World!")
    })

    // Prometheus मेट्रिक्स एंडपॉइंट के लिए हैंडलर
    http.Handle("/metrics", promhttp.Handler())

    fmt.Println("सर्वर :8080 पर शुरू हुआ")
    http.ListenAndServe(":8080", nil)
}

इस कोड को चलाएँ (go run main.go), ब्राउज़र में http://localhost:8080/metrics खोलें। आपको कई मेट्रिक्स दिखेंगे, जिनमें हमारा http_requests_total भी शामिल है। जब भी आप http://localhost:8080/ पर जाएँगे, काउंटर का मान बढ़ जाएगा।

4. मुख्य तरीके/फंक्शन/क्लास

4.1. prometheus.NewCounter / prometheus.NewCounterVec

अनुशंसाएँ