Überwachung von TypeScript-Anwendungen: Bibliotheken, Tools und Konfiguration

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Überwachung von TypeScript-Anwendungen: Vollständiger Leitfaden zu Tools und Bibliotheken



Überwachung ist ein wesentlicher Bestandteil der Entwicklung moderner Webanwendungen mit TypeScript. Ohne sie arbeiten Sie im Blindflug: Fehler bleiben unbemerkt, die Leistung sinkt und Benutzer gehen verloren. In diesem Artikel behandeln wir die wichtigsten Bibliotheken und Tools zur Überwachung von TypeScript-Anwendungen, darunter Sentry, OpenTelemetry, Prometheus und integriertes Logging. Sie erfahren, wie Sie Fehlererfassung, Metriken und Echtzeit-Tracing einrichten.



1. Sentry: Fehlerverfolgung in Echtzeit



Sentry ist die beliebteste Plattform zur Fehlerüberwachung. Sie unterstützt TypeScript von Haus aus und ermöglicht das Abfangen von Ausnahmen, das Protokollieren des Ausführungskontexts sowie das Empfangen von Benachrichtigungen bei Abstürzen.



Installation und Basiskonfiguration



npm install @sentry/node @sentry/tracing


Beispiel für die Initialisierung von Sentry in einer TypeScript-Anwendung auf 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,});

// Erzwungenes Senden eines Fehlersapp.get("/debug-sentry", function mainHandler(req, res) { throw new Error("Testfehler Sentry!");});


Kontextprotokollierung



Sentry ermöglicht das Hinzufügen benutzerdefinierter Tags und Kontexte:



Sentry.setUser({ email: "user@example.com" });Sentry.setTag("environment", "production");Sentry.captureException(new Error("Fehler bei der Auftragsverarbeitung"));


2. OpenTelemetry: Standard für Tracing und Metriken



OpenTelemetry ist ein offener Standard zur Erfassung von Telemetriedaten: Traces, Metriken und Logs. Es unterstützt TypeScript und lässt sich einfach in beliebige Backends (Jaeger, Zipkin, Prometheus) integrieren.



Paketinstallation



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


Beispiel für die Tracing-Konfiguration



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

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

sdk.start();


Jetzt wird jede HTTP-Anfrage automatisch in einen Span mit Metadaten verpackt. Sie können benutzerdefinierte Spans hinzufügen:



import { trace } from "@opentelemetry/api";

const tracer = trace.getTracer("my-service");

app.get("/api/data", async (req, res) => { const span = tracer.startSpan("processData"); try { const data = await fetchData(); span.setAttribute("data.size", data.length); res.json(data); } finally { span.end(); }});


3. Prometheus + express-prom-bundle: Metriken für Node.js



Zur Erfassung von Leistungsmetriken (RPS, Antwortzeit, Fehleranzahl) verwenden Sie Prometheus in Kombination mit der Bibliothek express-prom-bundle. Diese sammelt automatisch Metriken von Express-Anwendungen.



Installation



npm install prom-client express-prom-bundle


Konfigurationsbeispiel



import express from "express";import promBundle from "express-prom-bundle";

const app = express();

const metricsMiddleware = promBundle({ includeMethod: true, includePath: true, includeStatusCode: true, customLabels: { project: "my-app" }, metricsPath: "/metrics",});

app.use(metricsMi

Empfehlungen