OpenTelemetry pour Node.js — le wiring qui marche réellement en production
28 mai 2026 · 1 min de lecture · par Sudhanshu K.
OpenTelemetry a effectivement gagné la bataille du distributed tracing. Datadog, Honeycomb, Grafana Tempo, AWS X-Ray, Azure Monitor — tous ingèrent OTLP directement, ce qui signifie qu'instrumenter votre service avec OpenTelemetry une fois vous donne une portabilité entre vendeurs et outils.
Le wiring standard pour un service Node.js est bien documenté mais plein de petits pièges. Voici le setup qui marche en production, y compris l'auto-instrumentation que nous activons et les bruyantes que nous désactivons explicitement.
Wiring au démarrage du process
// otel.js — importé en premier via `node --import ./otel.js app.js`
import { NodeSDK } from '@opentelemetry/sdk-node';
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
new NodeSDK({
serviceName: process.env.OTEL_SERVICE_NAME,
traceExporter: new OTLPTraceExporter({
url: process.env.OTEL_EXPORTER_OTLP_ENDPOINT,
}),
instrumentations: [
getNodeAutoInstrumentations({
'@opentelemetry/instrumentation-fs': { enabled: false }, // trop bruyant
'@opentelemetry/instrumentation-net': { enabled: false }, // trop bruyant
}),
],
}).start();Le flag --import est critique — OpenTelemetry doit se charger avant le code de votre app pour qu'il puisse monkey-patcher les bons modules.
L'article complet couvre :
- Pourquoi l'auto-instrumentation est le bon point de départ (ne pas instrumenter chaque span à la main)
- Sampling : head sampling, tail sampling, et le compromis latence-vs-budget
- Propagation de contexte via
async_hookset les rares endroits où elle fuit - Attributs de ressource qui rendent les traces recherchables (pod k8s, version de deploy, région)
- Le pattern collector (un sidecar par hôte, export batché)
- Exporters par vendeur — Datadog OTLP, Honeycomb, Grafana Tempo
Nous livrons ce wiring dans le cadre de chaque engagement Node.js managé.
Article complet disponible
Lire l'article complet