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

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

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

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

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

\n\n

आधुनिक विकास की दुनिया में केवल काम करने वाला कोड लिखना पर्याप्त नहीं है। यह समझना महत्वपूर्ण है कि आपका एप्लिकेशन production-वातावरण में कैसा व्यवहार करता है। जावास्क्रिप्ट अनुप्रयोगों की निगरानी (विशेष रूप से Node.js पर) सिर्फ एक ट्रेंड नहीं, बल्कि एक आवश्यकता है। यह आपको बाधाओं की पहचान करने, विफलताओं को रोकने और सेवाओं की उच्च उपलब्धता सुनिश्चित करने में सक्षम बनाता है। इस लेख में, हम पूरे चक्र को कवर करेंगे: प्रमुख मेट्रिक्स के संग्रह से लेकर अलर्ट सेट करने तक, आधुनिक टूल स्टैक का उपयोग करते हुए।

\n\n

Node.js निगरानी क्यों महत्वपूर्ण है?

\n

Node.js एप्लिकेशन अक्सर एसिंक्रोनस मोड में काम करते हैं, प्रति सेकंड हजारों अनुरोधों को संसाधित करते हैं। निगरानी के बिना, आप जोखिम उठाते हैं:

\n
    \n
  • मेमोरी लीक (memory leak) को अनदेखा करना, जो सर्वर क्रैश का कारण बनेगा।
  • \n
  • प्रतिक्रिया समय (latency) में वृद्धि को नोटिस न करना, जो उपयोगकर्ता अनुभव को खराब करेगा।
  • अनहैंडल त्रुटियों के कारण डेटा खोना।
\n

निगरानी प्रणाली आपको visibility (अवलोकनीयता) प्रदान करती है और अनुमानों के बजाय डेटा के आधार पर निर्णय लेने में सक्षम बनाती है।

\n\n

जावास्क्रिप्ट अनुप्रयोगों के लिए प्रमुख मेट्रिक्स

\n

सभी मेट्रिक्स को तीन समूहों में विभाजित किया जा सकता है: इन्फ्रास्ट्रक्चर मेट्रिक्स, व्यावसायिक मेट्रिक्स और एप्लिकेशन मेट्रिक्स। आइए उन्हें विस्तार से देखें।

\n\n

1. इन्फ्रास्ट्रक्चर मेट्रिक्स (USE-विधि)

\n

ये सर्वर स्वास्थ्य के बुनियादी संकेतक हैं: CPU, मेमोरी, डिस्क, नेटवर्क। Node.js के लिए, मेमोरी (heap, non-heap) और खुले फ़ाइल डिस्क्रिप्टर की संख्या विशेष रूप से महत्वपूर्ण है।

\n\n

2. एप्लिकेशन मेट्रिक्स (RED-विधि)

\n

RED विधि (Rate, Errors, Duration) माइक्रोसर्विसेज के लिए स्वर्ण मानक है:

\n
    \n
  • Rate (दर): प्रति सेकंड अनुरोधों की संख्या (RPS)।
  • \n
  • Errors (त्रुटियाँ): त्रुटि (4xx, 5xx) में समाप्त होने वाले अनुरोधों का प्रतिशत।
  • \n
  • Duration (अवधि): अनुरोध निष्पादन समय (p50, p95, p99 प्रतिशतक)।
  • \n
\n\n

3. व्यावसायिक मेट्रिक्स

\n

आपके उत्पाद के लिए विशिष्ट: पंजीकृत उपयोगकर्ताओं की संख्या, पूर्ण किए गए ऑर्डर, सक्रिय सत्र आदि।

\n\n

Prometheus और Node.js के साथ मेट्रिक्स संग्रह

\n

Prometheus मेट्रिक्स संग्रह के लिए डी-फैक्टो मानक है। Node.js के लिए, हम prom-client लाइब्रेरी का उपयोग करते हैं। आइए सेटअप का एक उदाहरण देखें।

\n\n

स्थापना और बुनियादी सेटअप

\n
npm install prom-client express
\n\n

चलिए /metrics एंडपॉइंट के साथ एक सर्वर बनाते हैं:

\n
const express = require('express');\nconst client = require('prom-client');\n\nconst app = express();\nconst port = 3000;\n\n// मेट्रिक्स रजिस्टर बनाएं\nconst register = new client.Registry();\n\n// डिफ़ॉल्ट Node.js मेट्रिक्स जोड़ें\nclient.collectDefaultMetrics({ register });\n\n// प्रतिक्रिया समय के लिए कस्टम हिस्टोग्राम बनाएं\nconst httpRequestDuration = new client.Histogram({\n    name: 'http_request_duration_seconds',\n    help: 'Duration of HTTP requests in seconds',\n    labelNames: ['method', 'route', 'status'],\n    buckets: [0.01, 0.05, 0.1, 0.5, 1, 2, 5]\n});\nregister.registerMetric(httpRequestDuration);\n\n// समय मापने के लिए Middleware\napp.use((req, res, next) => {\n    const end = httpRequestDuration.startTimer();\n    res.on('finish', () => {\n        end({ method: req.method, route: req.route?.path || 'unknown', status: res.statusCode });\n    });\n    next();\n});\n\n// मेट्रिक्स के लिए एंडपॉइंट\napp.get('/metrics', async (req, res) => {\n    res.set('Content-Type', register.contentType);\n    res.end(await register.metrics());\n});\n\napp.get('/', (req, res) => {\n    res.send('Hello, monitoring!');\n});\n\napp.listen(port, () => {\n    console.log(`App listening at http://localhost:${port}`);\n});
\n\n

कस्टम काउंटर

\n

चलिए एक त्रुटि काउंटर जोड़ते हैं:

\n
const errorCounter = new client.Counter({\n    name: 'app_errors_total',                

ब्लॉग

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