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

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

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

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

TypeScript अनुप्रयोगों की निगरानी: निदान से observability तक



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



TypeScript को विशेष दृष्टिकोण की आवश्यकता क्यों है

TypeScript JavaScript में संकलित होता है, इसलिए JS के लिए मानक उपकरण TS के साथ भी काम करते हैं। हालांकि, कुछ बारीकियाँ हैं:

  • एरर स्टैक संकलित कोड की ओर इशारा कर सकता है, मूल TS कोड की ओर नहीं।
  • एरर ट्रेसिंग के सही होने के लिए Source maps अनिवार्य हैं।
  • टाइपिंग मीट्रिक और स्पैन को अधिक सटीक रूप से एनोटेट करने की अनुमति देती है।


1. Sentry — फ्रंटएंड और बैकएंड के लिए एरर का राजा

Sentry एरर और प्रदर्शन को ट्रैक करने का सबसे लोकप्रिय प्लेटफॉर्म है। TypeScript के लिए आधिकारिक SDK उपलब्ध है।



स्थापना:

npm install @sentry/node @sentry/tracing# या React के लिए:npm install @sentry/react @sentry/tracing


Node.js के लिए उदाहरण:

import * as Sentry from "@sentry/node";import { ProfilingIntegration } from "@sentry/profiling-node";

Sentry.init({ dsn: "https://examplePublicKey@o0.ingest.sentry.io/0", integrations: [new ProfilingIntegration()], tracesSampleRate: 1.0, profilesSampleRate: 1.0, // प्रोफाइलिंग});

// स्वचालित एरर कैप्चरapp.get("/api/data", async (req, res) => { try { const data = await fetchData(); res.json(data); } catch (err) { Sentry.captureException(err); res.status(500).send("Error"); }});


TypeScript के लिए विशेषताएँ:

  • Source maps के लिए समर्थन: इन्हें sentry-cli या webpack प्लगइन के माध्यम से अपलोड करें।
  • टाइपिंग: SDK सभी विधियों के लिए प्रकार निर्यात करता है।
  • प्रोफाइलिंग: देखें कि कौन से फंक्शन धीमे हैं।


2. OpenTelemetry — observability का सार्वभौमिक मानक

OpenTelemetry (OTel) ट्रेस, मीट्रिक और लॉग एकत्र करने के लिए API और SDK का एक सेट है। यह TypeScript पर माइक्रोसर्विसेज के लिए उपयुक्त है।



स्थापना:

npm install @opentelemetry/api @opentelemetry/sdk-node @opentelemetry/instrumentation-http @opentelemetry/instrumentation-express


ट्रेसिंग सेटअप का उदाहरण:

import { NodeSDK } from "@opentelemetry/sdk-node";import { ConsoleSpanExporter } from "@opentelemetry/sdk-trace-node";import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node";

const sdk = new NodeSDK({ traceExporter: new ConsoleSpanExporter(), instrumentations: [getNodeAutoInstrumentations()],});

sdk.start();

// एप्लिकेशनimport express from "express";const app = express();app.get("/", (req, res) => { res.send("Hello OTel!");});app.listen(3000);


लाभ:

  • विक्रेता-तटस्थता: डेटा Jaeger, Zipkin, Datadog, Grafana में भेजा जा सकता है।
  • लोकप्रिय पुस्तकालयों (Express, gRPC, MongoDB) का स्वचालित इंस्ट्रूमेंटेशन।
  • TypeScript-first: सभी SDK पूर्ण टाइपिंग के साथ TS में लिखे गए हैं।


3. Prometheus + मीट्रिक के लिए क्लाइंट

मीट्रिक (RPS, latency, memory) एकत्र करने के लिए Prometheus का उपयोग prom-client क्लाइंट के साथ करें।



स्थापना:

npm install prom-client


Express और TypeScript के साथ उदाहरण:

import ex                    

अनुशंसाएँ