Throttling Root Cause Analyzer
Quando bate 429, DBA precisa saber QUAL query QUAL partition QUAL hora causou. Hoje é detetive manual cruzando Azure Monitor + Log Analytics. O RCA pega cada burst de 429s e correlaciona com queries executadas ±N minutos da janela (vindo do Query Cost Inspector), ranqueia suspects por RU cumulativo e gera confidence score + rationale textual.
Where it lives in the app: Tools → Cosmos DB → Throttling Root Cause Analyzer
What it does
- Pulla 429 events do MetricsBridge (Azure Monitor ou CloudWatch).
- Pra cada burst, busca queries no Query Cost Inspector dentro de ±N minutos (configurável).
- Agrupa por shape, ranqueia por RU cumulativo.
- Confidence score = share do RU da top shape sobre total do RU da janela.
- Rationale automático: high-frequency vs single-expensive vs many-shapes coincide.
Step-by-step
- 1
Abra o pane
Tools → Cosmos DB → Throttling Root Cause Analyzer.
- 2
Ajuste a janela
Default 5 min. Aumente pra 10-15 se workload tem padrões longos; diminua pra 2 se quiser correlation cirúrgica.
- 3
Refresh / espere o polling
Cada 60s puxa 429s. Logo aparece a tabela com top 20 windows com 429s.
- 4
Investigue suspects
Coluna "Why" tem rationale curto. Coluna "Confidence" diz quão certo está. >70% red = quase certeza.
- 5
Aja
Top suspect shape → leve pro WHAT-IF Lab → teste índice → aplique.
Real use cases
Bug detection 4am
Alert do PagerDuty às 4am: 429 spike. DBA abre o RCA, vê janela 04:02-04:07 com 187 throttles + shape `find({orgId, status: "pending"})` 87% confidence. Bug no batch job. Fix em 20 min.