Go अनुप्रयोगों की निगरानी: मीट्रिक्स और अलर्ट — पूर्ण गाइड

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

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

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

Go अनुप्रयोगों की निगरानी: मीट्रिक्स और अलर्ट A से Z तक

\n\n

आधुनिक सॉफ्टवेयर विकास में, निगरानी एक विलासिता नहीं, बल्कि एक आवश्यकता है। Go (Golang) पर बने अनुप्रयोगों के लिए, जो अक्सर उच्च-लोड वाले माइक्रोसर्विसेज और बुनियादी ढांचा परियोजनाओं में उपयोग होते हैं, एक अच्छी तरह से कॉन्फ़िगर की गई निगरानी आपको समय पर समस्याओं का पता लगाने, प्रदर्शन को अनुकूलित करने और स्थिर संचालन सुनिश्चित करने में मदद करती है। इस लेख में, हम शुरू से Go अनुप्रयोगों की निगरानी सेट करने का तरीका समझेंगे: बुनियादी मीट्रिक्स संग्रह से लेकर अलर्ट सेटअप और Grafana में विज़ुअलाइज़ेशन तक।

\n\n

Go-अनुप्रयोगों के लिए निगरानी क्यों महत्वपूर्ण है?

\n\n

Go एक कंपाइल की जाने वाली भाषा है जिसमें अंतर्निहित समवर्तीता (concurrency) समर्थन है। Go पर बने अनुप्रयोग अक्सर महत्वपूर्ण प्रणालियों में काम करते हैं: API-गेटवे से लेकर डेटाबेस तक। निगरानी के बिना, आप जोखिम उठाते हैं:

\n
    \n
  • मेमोरी या गोरूटीन लीक को अनदेखा करना
  • \n
  • प्रदर्शन में गिरावट पर ध्यान न देना
  • \n
  • अनहैंडल त्रुटियों के कारण डेटा खोना
  • \n
  • संसाधनों की कमी के कारण डाउनटाइम का सामना करना
  • \n
\n\n

सही निगरानी आपको एप्लिकेशन के स्वास्थ्य की पूरी तस्वीर देती है: CPU और मेमोरी उपयोग से लेकर प्रतिक्रिया समय और त्रुटि दर तक।

\n\n

Go निगरानी के लिए मुख्य मीट्रिक्स

\n\n

टूल्स पर जाने से पहले, आइए परिभाषित करें कि Go-अनुप्रयोगों के लिए कौन से मीट्रिक्स महत्वपूर्ण हैं:

\n\n

सिस्टम मीट्रिक्स

\n
    \n
  • CPU usage — प्रोसेसर लोड
  • \n
  • Memory usage — मेमोरी खपत (heap और stack सहित)
  • \n
  • Goroutines count — सक्रिय गोरूटीन की संख्या
  • \n
  • GC stats — कचरा संग्राहक (garbage collector) आँकड़े (समय, चक्रों की संख्या)
  • \n
  • Open file descriptors — खुले फ़ाइल डिस्क्रिप्टर की संख्या
  • \n
\n\n

व्यावसायिक मीट्रिक्स

\n
    \n
  • Request latency — प्रतिक्रिया समय (p50, p95, p99)
  • \n
  • Request rate — प्रति सेकंड अनुरोधों की संख्या
  • \n
  • Error rate — त्रुटियों का प्रतिशत
  • \n
  • Database connection pool — कनेक्शन पूल की स्थिति
  • \n
\n\n

Go निगरानी के लिए उपकरण

\n\n

Go-अनुप्रयोगों की निगरानी के लिए मानक स्टैक में शामिल हैं:

\n
    \n
  • Prometheus — मीट्रिक्स संग्रह और भंडारण प्रणाली
  • \n
  • Grafana — विज़ुअलाइज़ेशन और डैशबोर्ड
  • \n
  • Alertmanager — अलर्ट प्रबंधन
  • \n
  • Go क्लाइंट लाइब्रेरीज़ — मीट्रिक्स निर्यात के लिए
  • \n
\n\n

Prometheus के साथ Go में मीट्रिक्स संग्रह सेट करना

\n\n

अभ्यास से शुरू करते हैं। Go एप्लिकेशन से मीट्रिक्स निर्यात करने के लिए हम आधिकारिक लाइब्रेरी prometheus/client_golang का उपयोग करेंगे।

\n\n

चरण 1: निर्भरताएँ स्थापित करना

\n
go get github.com/prometheus/client_golang/prometheus\ngo get github.com/prometheus/client_golang/prometheus/promhttp
\n\n

चरण 2: मीट्रिक्स के साथ बेसिक HTTP सर्वर

\n\n
package main\n\nimport (\n    "net/http"\n    "github.com/prometheus/client_golang/prometheus"\n    "github.com/prometheus/client_golang/prometheus/promhttp"\n)\n\nvar (\n    httpRequestsTotal = prometheus.NewCounterVec(\n        prometheus.CounterOpts{\n            Name: "http_requests_total",\n            Help: "Total number of HTTP requests",\n        },\n        []string{"method", "endpoint", "status"},\n    )\n\n    httpRequestDuration = prometheus.NewHistogramVec(\n        prometheus.HistogramOpts{\n            Name:    "http_request_duration_seconds",\n            Help:    "Histogram of HTTP request durations",\n            Buckets: prometheus.DefBuckets,\n        },\n        []string{"method", "endpoint"},\n    )\n)\n\nfunc init() {\n    prometheus.MustRegister(httpRequestsTotal)\n    prometheus.MustRegister(httpRequestDuration)\n}\n\nfunc main() {\n    http.Handle("/metrics", promhttp.Handler())\n    \n    http.HandleFunc("/api/users", func(w http.ResponseWrit                

ब्लॉग

पुस्तक अनुशंसाएँ