Node.js निगरानी: प्रदर्शन ट्रैकिंग के लिए उपकरण और लाइब्रेरीज़

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

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

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

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



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



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

Node.js सिंगल-थ्रेडेड Event Loop में काम करता है, इसलिए कोई भी ब्लॉकिंग ऑपरेशन (जैसे भारी लूप या सिंक्रोनस फ़ाइल रीडिंग) पूरे एप्लिकेशन को पंगु बना सकता है। निगरानी के बिना, आप जोखिम उठाते हैं:

  • मेमोरी लीक को अनदेखा करना — GC सामना नहीं कर पाता, एप्लिकेशन क्रैश हो जाता है।
  • प्रतिक्रिया समय में वृद्धि पर ध्यान न देना — उपयोगकर्ता चले जाते हैं।
  • त्रुटियों पर नियंत्रण खोना — अनहैंडल्ड rejections प्रक्रिया को मार देते हैं।


1. Node.js के अंतर्निहित साधन

शुरुआत उन चीज़ों से करते हैं जो पहले से कोर में मौजूद हैं। Node.js बुनियादी मीट्रिक्स संग्रह के लिए process और perf_hooks मॉड्यूल प्रदान करता है।

// उदाहरण: मेमोरी और प्रतिक्रिया समय मीट्रिक्स का संग्रहconst { performance, PerformanceObserver } = require('perf_hooks');

// Event Loop की निगरानीconst obs = new PerformanceObserver((items) => { const entry = items.getEntries()[0]; console.log(`Event Loop विलंब: ${entry.duration}ms`);});obs.observe({ entryTypes: ['function'] });

// फ़ंक्शन निष्पादन समय मापनाperformance.mark('start');// ... आपका कोड ...performance.mark('end');performance.measure('myFunction', 'start', 'end');

// मेमोरी की निगरानीsetInterval(() => { const memory = process.memoryUsage(); console.log(`RSS: ${memory.rss}, Heap: ${memory.heapUsed}`);}, 5000);


2. PM2 — निगरानी के साथ प्रक्रिया प्रबंधक

PM2 प्रोडक्शन Node.js के लिए डी-फैक्टो मानक है। यह न केवल प्रक्रियाओं का प्रबंधन करता है, बल्कि pm2 monit कमांड के माध्यम से अंतर्निहित निगरानी भी प्रदान करता है।

  • स्वचालित पुनरारंभ प्रक्रिया क्रैश होने पर।
  • मीट्रिक्स संग्रह: CPU, मेमोरी, अनुरोधों की संख्या।
  • लॉगिंग stdout/stderr।
  • क्लस्टर मोड कोर के अधिकतम उपयोग के लिए।
// स्थापना और चलानाnpm install pm2 -gpm2 start app.js --name "my-app" --instances max

// अंतर्निहित निगरानीpm2 monit

// JSON में मीट्रिक्स निर्यातpm2 jlist > metrics.json

उन्नत निगरानी के लिए pm2-metrics का उपयोग करें — एक प्लगइन जो Prometheus को डेटा भेजता है।



3. Clinic.js — प्रदर्शन निदान

Clinic.js NearForm द्वारा Node.js प्रोफाइलिंग के लिए उपकरणों का एक सेट है। इसमें तीन उपयोगिताएँ शामिल हैं:

  • Clinic Doctor — सामान्य निदान (Event Loop, GC, I/O)।
  • Clinic Bubbleprof — एसिंक्रोनस संचालन का विश्लेषण।
  • Clinic Flame — हॉट फ़ंक्शंस खोजने के लिए फ्लेम ग्राफ़।
// स्थापनाnpm install -g clinic

// लोड टेस्टिंग के साथ चलानाclinic doctor -- node app.js

// फिर दूसरे टर्मिनल में:autocannon localhost:3000

// रुकने के बाद विज़ुअलाइज़ेशन के साथ एक HTML रिपोर्ट खुलेगी

Clinic.js विशेष रूप से Event Loop समस्याओं (उच्च विलंबता, बार-बार GC पॉज़) की पहचान करने के लिए उपयोगी है।



4. Prometheus + Node.js — कस्टम मीट्रिक्स

Prometheus माइक्रोसर्विस आर्किटेक्चर में मीट्रिक्स संग्रह का मानक है। Node.js के लिए prom-client लाइब्रेरी का उपयोग करें।

const prometheus = require('prom-client');

// अनुरोध काउंटर बनानाconst httpRequestsTotal = new prometheus.Counter({ name: 'http_requests_total', help: 'HTTP अनुरोधों की कुल संख्या', labelNames: ['method', 'route', 'status']});

// प्रतिक्रिया समय हिस्टोग्रामconst httpRequestDuration = new prometheus.Histogram({ name: 'http

अनुशंसाएँ