← volver al blog

De Elastic a Datadog: migrando observabilidad en 20+ microservicios

Por qué migramos de Elastic Stack a Datadog y cómo lo hicimos sin perder visibilidad en producción.

Por qué migrar

Elastic Stack nos funcionó años, pero el costo operacional creció:

  • Cluster de Elasticsearch que había que mantener, escalar y parchear
  • Kibana dashboards que nadie mantenía
  • APM agent de Elastic con overhead notable en servicios de alto throughput

Datadog eliminaba el overhead operacional — SaaS, sin infra que mantener.

El plan

No podíamos migrar todo de golpe. Corrimos dual-write durante 4 semanas:

// logger wrapper durante la migración
import { datadogLogs } from '@datadog/browser-logs';
import { logger as elasticLogger } from './elastic';

export function log(level: string, message: string, meta: Record<string, unknown>) {
  // Escribir a ambos durante la transición
  elasticLogger[level](message, meta);
  datadogLogs.logger[level](message, { ...meta });
}

SLOs desde el día 1

Antes de apagar Elastic definimos SLOs en Datadog para cada servicio crítico:

  • Latencia P99 < 500ms para APIs de checkout
  • Error rate < 0.1% en servicios de pago
  • Disponibilidad > 99.9% en gateway
# datadog-monitors.yaml
- name: "Checkout API P99 Latency"
  type: metric alert
  query: "avg(last_5m):p99:trace.express.request{service:checkout-api} > 0.5"
  message: "@slack-oncall P99 por sobre 500ms"

Resultado

  • -40% en costos de observabilidad (sin mantener infra de Elastic)
  • Dashboards que la gente realmente usa
  • Alertas que llegan con contexto, no con ruido