Node.js मॉनिटरिंग: ऑब्ज़र्वेबिलिटी के लिए उपकरण और लाइब्रेरी

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

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

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

JavaScript (Node.js) एप्लिकेशन मॉनिटरिंग: लाइब्रेरी और उपकरण

\n\n

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

\n\n

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

\n

Node.js नॉन-ब्लॉकिंग इनपुट-आउटपुट वाला एक सिंगल-थ्रेडेड वातावरण है। इसका मतलब है कि एक त्रुटि या मेमोरी लीक पूरे एप्लिकेशन को पंगु बना सकती है। मॉनिटरिंग इसमें मदद करती है:

\n
    \n
  • मेट्रिक्स ट्रैक करना (CPU, मेमोरी, अनुरोधों की संख्या, प्रतिक्रिया समय)।
  • \n
  • विसंगतियों का पता लगाना (त्रुटियों में अचानक वृद्धि, प्रदर्शन में गिरावट)।
  • \n
  • प्रोफाइलिंग करना (कोड में अड़चनें, मेमोरी लीक)।
  • \n
  • अलर्ट सेट करना (Slack, Telegram, ईमेल में सूचनाएं)।
  • \n
\n\n

Node.js मॉनिटरिंग के लिए मुख्य लाइब्रेरीज़

\n\n

1. Prometheus Client (prom-client)

\n

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

\n
const client = require('prom-client');\nconst express = require('express');\nconst app = express();\n\n// अनुरोध काउंटर बनाएं\nconst httpRequestsTotal = new client.Counter({\n  name: 'http_requests_total',\n  help: 'HTTP अनुरोधों की कुल संख्या',\n  labelNames: ['method', 'route', 'status']\n});\n\n// मेट्रिक्स संग्रह के लिए Middleware\napp.use((req, res, next) => {\n  const start = Date.now();\n  res.on('finish', () => {\n    httpRequestsTotal.inc({\n      method: req.method,\n      route: req.route?.path || 'unknown',\n      status: res.statusCode\n    });\n  });\n  next();\n});\n\n// Prometheus के लिए एंडपॉइंट\napp.get('/metrics', async (req, res) => {\n  res.set('Content-Type', client.register.contentType);\n  res.end(await client.register.metrics());\n});\n\napp.listen(3000);
\n\n

2. Node.js के लिए OpenTelemetry

\n

OpenTelemetry टेलीमेट्री (ट्रेसिंग, मेट्रिक्स, लॉग) संग्रह के लिए एक आधुनिक मानक है। Node.js के लिए पैकेज @opentelemetry/sdk-node उपलब्ध है। यह लोकप्रिय लाइब्रेरीज़ (Express, HTTP, gRPC) को स्वचालित रूप से इंस्ट्रूमेंट करता है और वितरित ट्रेस एकत्र करता है।

\n
const { NodeSDK } = require('@opentelemetry/sdk-node');\nconst { ConsoleSpanExporter } = require('@opentelemetry/sdk-trace-node');\nconst { getNodeAutoInstrumentations } = require('@opentelemetry/auto-instrumentations-node');\n\nconst sdk = new NodeSDK({\n  traceExporter: new ConsoleSpanExporter(),\n  instrumentations: [getNodeAutoInstrumentations()]\n});\n\nsdk.start();\n\n// Express की स्वचालित ट्रेसिंग का उदाहरण\nconst express = require('express');\nconst app = express();\napp.get('/', (req, res) => res.send('Hello'));\napp.listen(3000);
\n\n

3. PM2 — मॉनिटरिंग के साथ प्रक्रिया प्रबंधक

\n

PM2 न केवल Node.js प्रक्रियाओं के लॉन्च का प्रबंधन करता है, बल्कि अंतर्निहित मॉनिटरिंग भी प्रदान करता है। कमांड pm2 monit वास्तविक समय में CPU, मेमोरी और रीस्टार्ट की संख्या दिखाता है। उन्नत मॉनिटरिंग के लिए pm2-plus या pm2-metrics का उपयोग करें।

\n
// ecosystem.config.js\nmodule.exports = {\n  apps: [{\n    name: 'my-app',\n    script: 'app.js',\n    instances: 2,\n    exec_mode: 'cluster',\n    env: {\n      NODE_ENV: 'production'\n    }\n  }]\n};
\n\n

4. Clinic.js — प्रोफाइलिंग और डायग्नोस्टिक्स

\n

Clinic.js Node.js प्रदर्शन के गहन विश्लेषण के लिए उपकरणों का एक सेट है। इसमें Doctor (त्वरित डायग्नोस्टिक्स), Bubbleprof (एसिंक्रोनस देरी) और Flame (CPU के लिए फ्लेमग्राफ) शामिल हैं।

\n
// स्थापना: npm install -g clinic\n// प्रोफाइलिंग के साथ लॉन्च करें                    

अनुशंसाएँ