Monitoreo y observabilidad en MongoDB | Nicolás Garzón
Inicio Wiki MongoDB Monitoreo y observabilidad Volver a MongoDBMongoDB
Monitoreo y observabilidad Explica qué métricas, logs y señales observar en MongoDB para detectar saturación, errores, replicación atrasada, bloqueos y degradación de consultas.
Última actualización Actualizada 25 de jul de 2026
Observabilidad permite responder qué está ocurriendo, por qué cambió y qué impacto tiene. En MongoDB combina métricas, logs, profiler, query shapes, eventos de topología y señales de la aplicación.
Nota anteriorImportación y exportación Nota siguiente Profiler y slow queries Texto
Copiar síntoma del usuario
→ métrica de aplicación
→ pool y red
→ query plan
→ cache, disco y replication
→ cambio o incidente relacionadoUna métrica aislada no es diagnóstico. CPU alta puede ser causa o consecuencia; latencia baja en promedio puede ocultar un p99 crítico.
Mide p50, p95 y p99 por operación, colección y endpoint. Separa:
espera en pool;
server selection;
ejecución en MongoDB;
red;
deserialización y lógica de aplicación.
Observa reads, writes, commands y bytes. Un crecimiento sano de tráfico no debe confundirse con regresión, pero sirve para normalizar otras métricas.
Monitorea conexiones activas, disponibles, creadas y wait queue. Connection storms suelen aparecer en despliegues, serverless mal configurado o clientes creados por request.
Revisa WiredTiger cache, dirty bytes, eviction, pages read y working set. RAM usada por el sistema no significa por sí sola fuga; MongoDB y el OS utilizan memoria como cache.
IOPS, throughput, latency, queue depth, espacio libre y crecimiento. El disco lleno puede detener writes y comprometer recuperación.
lag por secondary;
oplog window;
estado de miembros;
elections;
rollbacks;
majority availability;
initial sync.
COLLSCAN;
IXSCAN;
keys/docs examined;
sorts;
slow operations;
plan cache changes;
índice usage;
query targeting en sharding.
Antes de alertar, conoce el comportamiento normal por hora, día y campaña. Conserva baseline de:
tráfico;
latencia;
cache;
disco;
lag;
tamaño de datos e índices;
pool;
jobs programados.
Una alerta estática puede generar ruido durante un cierre mensual normal o no detectar una desviación gradual.
p99 supera SLO;
errores de write/read;
timeouts;
election inesperada;
restore o backup fallido.
disco proyectado a agotarse;
oplog window menor que el tiempo de recuperación;
pool saturado;
cache eviction creciente;
shard desbalanceado;
secondary sin margen.
Cada alerta necesita owner, severidad, contexto y runbook. Una notificación sin acción esperada es ruido.
release de aplicación;
index build o drop;
migración;
cambio de tier;
upgrade;
failover;
cambio de pool;
backup;
balancer o resharding.
Texto
Copiar 17:05 deploy
17:08 aumenta keysExamined
17:10 sube p99
→ investigar nueva query shapeLos logs sirven para errores de red, slow operations, storage, replication y cambios administrativos. Centralízalos y aplica retención.
passwords;
URI completa;
documentos sensibles;
plaintext cifrado;
tokens;
queries con PII sin sanitizar.
Utiliza operation IDs para correlacionar aplicación y base.
Instrumenta el driver con command monitoring o OpenTelemetry según stack. Registra:
command name;
database/collection lógica;
duración;
resultado;
retry;
pool wait;
timeout;
query shape sanitizada.
No captures valores completos por defecto.
Texto
Copiar 99.9 % de lecturas de órdenes < 250 ms
99.5 % de escrituras < 500 ms
RPO 15 min
RTO 60 minLos SLOs conectan métricas técnicas con experiencia y riesgo. Una CPU de 80 % no es un objetivo de producto; la latencia y disponibilidad sí.
operaciones por shard;
bytes por shard;
scatter-gather;
migrations;
jumbo ranges;
config servers;
mongos;
zonas;
balancer.
Un cluster equilibrado en bytes puede estar desbalanceado en tráfico.
¿Está disponible?
¿Los usuarios ven latencia?
¿Qué recurso está saturado?
¿Replication está sana?
¿Qué query cambió?
¿Cuánto margen queda?
Evita paneles con cientos de gráficas sin jerarquía.
crecimiento de datos e índices;
IOPS;
working set;
conexiones;
oplog;
backups;
restore time;
tenant outliers.
Usa tendencias y eventos futuros. Escalar después de llenar el disco es demasiado tarde.
confirma impacto;
detén cambios no esenciales;
revisa topología y errores;
identifica cuándo empezó;
correlaciona deploys;
protege evidencia;
mitiga de forma reversible;
valida recuperación;
comunica;
realiza postmortem.
No limpies plan cache, reinicies nodos o elimines índices sin hipótesis y rollback.
promedio sano con p99 alto;
un tenant domina la carga;
dashboard pierde métricas durante incidente;
clocks no sincronizados;
profiler captura PII;
alerta de lag sin considerar oplog window;
autoscaling oculta regresión de query;
secondaries saturados por analytics.
alertar cada métrica;
no medir pool wait;
observar solo primary;
ignorar tendencias de disco;
no correlacionar deploys;
logs con secretos;
dashboard sin SLO;
reaccionar a CPU sin verificar queries;
no ensayar runbooks.
Genera carga representativa.
Fuerza una slow query.
Satura el pool.
Introduce replication lag.
Simula election.
Llena disco en staging.
Comprueba alertas y routing.
Correlaciona traces y logs.
Ejecuta un restore test.
Revisa dashboards con el equipo de guardia.
Observabilidad conecta síntomas de usuario con query plans, pools, memoria, disco y topología. Mide percentiles, establece baselines y alertas accionables, protege datos sensibles y conserva contexto de cambios. El objetivo no es coleccionar métricas, sino diagnosticar y operar con margen.
Comprueba lo aprendido
¿Por qué el promedio no basta?
¿Qué señales describen pool saturation?
¿Qué diferencia existe entre alerta de síntoma y capacidad?
¿Qué debes correlacionar con deploys?
¿Qué observas adicionalmente en sharding?
¿Cómo debería responder un runbook?