JavaScript अनुप्रयोगों की निगरानी: Node.js में मीट्रिक और अलर्ट

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

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

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

परिचय: Node.js अनुप्रयोगों के लिए निगरानी क्यों महत्वपूर्ण है



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



इस लेख में, हम चर्चा करेंगे कि किन मीट्रिक को ट्रैक करना आवश्यक है, लोकप्रिय टूल (Prometheus, Grafana) का उपयोग करके डेटा संग्रह कैसे सेट करें, और Node.js के लिए अलर्ट सिस्टम कैसे व्यवस्थित करें। सभी कोड उदाहरण JavaScript में लिखे गए हैं और उपयोग के लिए तैयार हैं।



Node.js अनुप्रयोगों के लिए प्रमुख मीट्रिक



Node.js अनुप्रयोगों की निगरानी को तीन स्तरों में विभाजित किया जा सकता है: बुनियादी ढांचा, अनुप्रयोग और व्यावसायिक मीट्रिक। आइए प्रत्येक पर विचार करें।



बुनियादी ढांचा मीट्रिक

ये मीट्रिक सर्वर और रनटाइम वातावरण की स्थिति दिखाते हैं:

  • CPU और Memory (RSS, Heap Total, Heap Used) — मेमोरी लीक और उच्च CPU लोड।
  • Event Loop Lag — इवेंट लूप में देरी (यदि >50ms है, तो एप्लिकेशन धीमा होने लगता है)।
  • Garbage Collection (GC) — कचरा संग्रह की आवृत्ति और अवधि।
  • File Descriptors — खुली फ़ाइलों और सॉकेट की संख्या।


अनुप्रयोग मीट्रिक

दिखाते हैं कि एप्लिकेशन अनुरोधों को कैसे संसाधित करता है:

  • RPS (Requests Per Second) — प्रति सेकंड अनुरोधों की संख्या।
  • Latency (p50, p95, p99) — प्रतिक्रिया में देरी।
  • Error Rate — त्रुटियों का प्रतिशत (4xx, 5xx)।
  • Active Connections — सक्रिय WebSocket/HTTP कनेक्शनों की संख्या।


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

आपके एप्लिकेशन के लिए विशिष्ट:

  • पंजीकृत उपयोगकर्ताओं की संख्या।
  • भुगतान प्रसंस्करण की गति।
  • बाहरी API का प्रतिक्रिया समय।


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



Prometheus आधुनिक बुनियादी ढांचे में मीट्रिक संग्रह के लिए डी-फैक्टो मानक है। Node.js के लिए prom-client लाइब्रेरी मौजूद है, जो मीट्रिक को आसानी से निर्यात करने की अनुमति देती है।



prom-client की स्थापना और सेटअप

npm install prom-client express


मीट्रिक के साथ एक बुनियादी सर्वर बनाएं:

const express = require('express');const client = require('prom-client');const app = express();

// मीट्रिक के लिए रजिस्टर बनाएंconst register = new client.Registry();client.collectDefaultMetrics({ register });

// देरी के लिए कस्टम हिस्टोग्राम बनाएंconst httpRequestDuration = new client.Histogram({ name: 'http_request_duration_seconds', help: 'HTTP अनुरोधों की अवधि सेकंड में', labelNames: ['method', 'route', 'status_code'], buckets: [0.1, 0.5, 1, 2, 5]});register.registerMetric(httpRequestDuration);

// देरी मापने के लिए Middlewareapp.use((req, res, next) => { const end = httpRequestDuration.startTimer(); res.on('finish', () => { end({ method: req.method, route: req.route?.path || 'unknown', status_code: res.statusCode }); }); next();});

// मीट्रिक के लिए एंडपॉइंटapp.get('/metrics', async (req, res) => { res.set('Content-Type', register.contentType); res.end(await register.metrics());});

app.get('/', (req, res) => { res.send('Hello World');});

app.listen(3000, () => console.log('सर्वर पोर्ट 3000 पर चल रहा है'));


Event Loop मीट्रिक संग्रह

इवेंट लूप की निगरानी के लिए process.hrtime() या event-loop-lag लाइब्रेरी का उपयोग करें:

const eventLoopLag = new client.Gauge({    name: 'nodejs_event_loop_lag_seconds',    help: 'इवेंट लूप में देरी सेकंड में'});register.re                

ब्लॉग

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