Saber que sua aplicação está com problema é fácil — entender por que e onde é a parte difícil. Observabilidade resolve isso com três pilares: traces, métricas e logs correlacionados.

Por que OpenTelemetry?

O OpenTelemetry (OTel) é um padrão aberto, vendor-neutral, suportado por todos os grandes provedores (Datadog, Grafana, Jaeger, Honeycomb). Você instrumenta uma vez e escolhe o backend depois.

Vídeo explicativo

Para entender o conceito de distributed tracing visualmente, recomendo este vídeo:

Instrumentação básica em Node.js

npm install @opentelemetry/sdk-node @opentelemetry/auto-instrumentations-node
// tracing.ts — importe ANTES de qualquer outro módulo
import { NodeSDK } from '@opentelemetry/sdk-node';
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';

const sdk = new NodeSDK({
  traceExporter: new OTLPTraceExporter({
    url: 'http://localhost:4318/v1/traces',
  }),
  instrumentations: [getNodeAutoInstrumentations()],
});

sdk.start();

Com isso, chamadas HTTP, banco de dados e filas já são instrumentadas automaticamente.

O que observar?

  • Latência p99 — o percentil 99 revela gargalos que a média esconde
  • Error rate — % de requisições com erro, por rota e serviço
  • Throughput — volume de requests por segundo
  • Span waterfall — quais operações consomem mais tempo em uma trace

Conclusão

Investir em observabilidade é investir na sua capacidade de resolver incidentes rápido. OpenTelemetry é a aposta certa por ser open-source e universal.