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