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.