Surveillance des applications TypeScript : bibliothèques, outils et configuration

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Surveillance des applications TypeScript : guide complet des outils et bibliothèques



La surveillance est une partie essentielle du développement d'applications web modernes en TypeScript. Sans elle, vous travaillez à l'aveugle : les erreurs passent inaperçues, les performances chutent et les utilisateurs s'en vont. Dans cet article, nous allons examiner les bibliothèques et outils clés pour la surveillance des applications TypeScript, notamment Sentry, OpenTelemetry, Prometheus et la journalisation intégrée. Vous apprendrez à configurer la collecte d'erreurs, de métriques et le traçage en temps réel.



1. Sentry : suivi des erreurs en temps réel



Sentry est la plateforme de surveillance des erreurs la plus populaire. Elle prend en charge TypeScript nativement et permet de capturer les exceptions, de journaliser le contexte d'exécution et de recevoir des notifications en cas de plantage.



Installation et configuration de base



npm install @sentry/node @sentry/tracing


Exemple d'initialisation de Sentry dans une application TypeScript sur 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,});

// Envoi forcé d'une erreurapp.get("/debug-sentry", function mainHandler(req, res) { throw new Error("Erreur de test Sentry !");});


Journalisation du contexte



Sentry permet d'ajouter des balises personnalisées et du contexte :



Sentry.setUser({ email: "user@example.com" });Sentry.setTag("environment", "production");Sentry.captureException(new Error("Erreur lors du traitement de la commande"));


2. OpenTelemetry : standard pour le traçage et les métriques



OpenTelemetry est un standard ouvert pour la collecte de télémétrie : traces, métriques et journaux. Il prend en charge TypeScript et s'intègre facilement avec n'importe quel backend (Jaeger, Zipkin, Prometheus).



Installation des paquets



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


Exemple de configuration du traçage



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();


Désormais, chaque requête HTTP sera automatiquement encapsulée dans une span avec des métadonnées. Vous pouvez ajouter des spans personnalisées :



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 : métriques pour Node.js



Pour collecter des métriques de performance (RPS, temps de réponse, nombre d'erreurs), utilisez Prometheus avec la bibliothèque express-prom-bundle. Elle collecte automatiquement les métriques des applications Express.



Installation



npm install prom-client express-prom-bundle


Exemple de configuration



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

Recommendations