TypeScript अनुप्रयोगों की निगरानी: मीट्रिक और अलर्ट

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

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

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

TypeScript अनुप्रयोगों की निगरानी: मीट्रिक से लेकर स्मार्ट अलर्ट तक

\n

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

\n\n

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

\n

अलर्ट सेट करने से पहले, यह निर्धारित करना आवश्यक है कि हम वास्तव में क्या माप रहे हैं। हम मीट्रिक को तीन समूहों में विभाजित करेंगे: बुनियादी ढांचा, व्यावसायिक और उपयोगकर्ता मीट्रिक।

\n

बुनियादी ढांचा मीट्रिक (RED-पद्धति):

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

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

\n
    \n
  • सफल लेन-देन की संख्या।
  • \n
  • महत्वपूर्ण संचालनों का निष्पादन समय (जैसे, रिपोर्ट जनरेशन)।
  • \n
  • सक्रिय उपयोगकर्ता (DAU/MAU)।
  • \n
\n

उपयोगकर्ता मीट्रिक (क्लाइंट अनुप्रयोगों के लिए):

\n
    \n
  • LCP (Largest Contentful Paint) — मुख्य सामग्री लोड करने की गति।
  • \n
  • FID (First Input Delay) — पहली इंटरैक्शन में देरी।
  • \n
  • CLS (Cumulative Layout Shift) — विज़ुअल लेआउट की स्थिरता।
  • \n
\n

TypeScript में इन मीट्रिक को एकत्र करने के लिए हम prom-client (Node.js के लिए) और @opentelemetry/instrumentation-http लाइब्रेरी का उपयोग करेंगे।

\n\n

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

\n

TypeScript पर Express एप्लिकेशन के लिए मीट्रिक सेटअप का एक उदाहरण देखें। आवश्यक पैकेज इंस्टॉल करें:

\n
npm install prom-client @opentelemetry/api @opentelemetry/sdk-node @opentelemetry/instrumentation-http @opentelemetry/instrumentation-express
\n

मीट्रिक रजिस्टर करने के लिए metrics.ts फ़ाइल बनाएं:

\n
import client from 'prom-client';\n\nconst collectDefaultMetrics = client.collectDefaultMetrics;\ncollectDefaultMetrics({ timeout: 5000 });\n\nexport const httpRequestDuration = new client.Histogram({\n    name: 'http_request_duration_seconds',\n    help: 'Duration of HTTP requests in seconds',\n    labelNames: ['method', 'route', 'status_code'],\n    buckets: [0.01, 0.05, 0.1, 0.5, 1, 2, 5],\n});\n\nexport const errorCounter = new client.Counter({\n    name: 'http_errors_total',\n    help: 'Total number of HTTP errors',\n    labelNames: ['method', 'route', 'status_code'],\n});
\n

अब मीट्रिक को middleware में एकीकृत करें:

\n
import { Request, Response, NextFunction } from 'express';\n\nexport function metricsMiddleware(req: Request, res: Response, next: NextFunction) {\n    const end = httpRequestDuration.startTimer();\n    res.on('finish', () => {\n        end({ method: req.method, route: req.route?.path || 'unknown', status_code: res.statusCode.toString() });\n        if (res.statusCode >= 500) {\n            errorCounter.inc({ method: req.method, route: req.route?.path || 'unknown', status_code: res.statusCode.toString() });\n        }\n    });\n    next();\n}
\n

Prometheus मीट्रिक संग्रह के लिए एंडपॉइंट जोड़ें:

\n
import { Router } from 'express';\nimport client from 'prom-client';\n\nconst router = Router();\nrouter.get('/metrics', async (req, res) => {\n    res.set('Content-Type', client.register.contentType);\n    res.end(await client.register.metrics());\n});\nexport default router;
\n

क्लाइंट अनुप्रयोगों (React) के लिए, Web Vitals को स्वचालित रूप से एकत्र करने के लिए @opentelemetry/instrumentation-document-load का उपयोग करें।

\n\n

3. उन्नत अलर्ट का सेटअप

\n

अलर्ट स्मार्ट होने चाहिए ताकि वे उत्पन्न न हों

ब्लॉग

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