Node.js अनुप्रयोगों की निगरानी: उपकरण और पुस्तकालय

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

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

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

JavaScript (Node.js) अनुप्रयोगों की निगरानी: उपकरण और पुस्तकालय



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



Node.js निगरानी की आवश्यकता क्यों है?

Node.js एक एसिंक्रोनस वातावरण है जो I/O संचालन को बखूबी संभालता है, लेकिन इसमें कुछ विशेषताएँ हैं जिन पर ध्यान देने की आवश्यकता है:

  • सिंगल-थ्रेडेड मॉडल: ब्लॉकिंग कोड पूरी प्रक्रिया को रोक सकता है।
  • मेमोरी लीक: क्लोजर और संदर्भों के अनुचित प्रबंधन के कारण।
  • Event Loop: इसकी देरी (lag) सीधे प्रतिक्रिया गति को प्रभावित करती है।
  • एसिंक्रोनस कोड त्रुटियाँ: अनहैंडल किए गए प्रॉमिस अनदेखे रह सकते हैं।


उपकरणों की मुख्य श्रेणियाँ

Node.js अनुप्रयोग की व्यापक निगरानी के लिए, आपको तीन श्रेणियों के उपकरणों की आवश्यकता होगी:

  • मीट्रिक्स संग्रह (Metrics): CPU, मेमोरी, प्रति सेकंड अनुरोध, प्रतिक्रिया समय।
  • प्रोफाइलिंग (Profiling): अड़चनों और event loop का विश्लेषण।
  • त्रुटि ट्रैकिंग (Error Tracking): अपवादों का स्वचालित संग्रह और एकत्रीकरण।


1. Prometheus + prom-client (मीट्रिक्स संग्रह)

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



स्थापना:

npm install prom-client express


मीट्रिक्स निर्यात का उदाहरण (server.js):

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

// प्रतिक्रिया समय के लिए हिस्टोग्राम बनाएँconst httpRequestDurationMicroseconds = new client.Histogram({ name: 'http_request_duration_ms', help: 'Duration of HTTP requests in ms', labelNames: ['method', 'route', 'status'], buckets: [50, 100, 200, 500, 1000, 2000]});

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

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

app.get('/', (req, res) => res.send('Hello World!'));app.listen(3000, () => console.log('Server running on port 3000'));


अब आप Prometheus को /metrics से मीट्रिक्स एकत्र करने और उन्हें Grafana में विज़ुअलाइज़ करने के लिए कॉन्फ़िगर कर सकते हैं।



2. PM2 (प्रक्रिया प्रबंधक और बुनियादी निगरानी)

PM2 न केवल Node.js के लिए एक प्रक्रिया प्रबंधक है, बल्कि इसमें एक अंतर्निहित निगरानी प्रणाली भी है। यह प्रक्रियाओं की स्थिति पर नज़र रखने, क्रैश होने पर उन्हें पुनरारंभ करने और बुनियादी मीट्रिक्स एकत्र करने की अनुमति देता है।



स्थापना:

npm install pm2 -g


निगरानी के साथ अनुप्रयोग चलाना:

pm2 start server.js --name "my-app"pm2 monit  # निगरानी पैनल खोलें


Prometheus में मीट्रिक्स निर्यात (pm2-metrics के माध्यम से):

npm install pm2-metricspm2 start server.js --name "my-app"pm2-metrics --port 9200  # /metrics एंडपॉइंट खोलता है


3. Clinic.js (प्रोफाइलिंग और निदान)

Clinic.js उपकरणों का एक सेट है

अनुशंसाएँ