Throttling Root Cause Analyzer
Cuando golpea 429, el DBA necesita saber QUÉ query QUÉ partition QUÉ hora causó. Hoy es detective manual cruzando Azure Monitor + Log Analytics. El RCA toma cada burst de 429s y correlaciona con queries ejecutadas ±N minutos de la ventana (viniendo del Query Cost Inspector), ranquea suspects por RU cumulativo y genera confidence score + rationale textual.
Dónde vive en la app: Tools → Cosmos DB → Throttling Root Cause Analyzer
Qué hace
- Tira 429 events del MetricsBridge (Azure Monitor o CloudWatch).
- Para cada burst, busca queries en el Query Cost Inspector dentro de ±N minutos (configurable).
- Agrupa por shape, ranquea por RU cumulativo.
- Confidence score = share del RU del top shape sobre total del RU de la ventana.
- Rationale automático: high-frequency vs single-expensive vs many-shapes coinciden.
Paso a paso
- 1
Abra el pane
Tools → Cosmos DB → Throttling Root Cause Analyzer.
- 2
Ajuste la ventana
Default 5 min. Aumente a 10-15 si workload tiene patrones largos; disminuya a 2 si quiere correlation quirúrgica.
- 3
Refresh / espere el polling
Cada 60s jala 429s. Luego aparece la tabla con top 20 windows con 429s.
- 4
Investiga los sospechosos
Columna "Why" tiene rationale corto. Columna "Confidence" dice qué tan seguro está. >70% red = casi certeza.
- 5
Actúe
Top suspect shape → lleve al WHAT-IF Lab → pruebe índice → aplique.
Casos de uso reales
Detección de bug a las 4am
Alert de PagerDuty a las 4am: spike de 429. DBA abre el RCA, ve ventana 04:02-04:07 con 187 throttles + shape `find({orgId, status: "pending"})` 87% confidence. Bug en el batch job. Fix en 20 min.