Throttling Root Cause Analyzer
Quando bate 429, o 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.
Onde ele fica no app: Tools → Cosmos DB → Throttling Root Cause Analyzer
O que ele faz
- Puxa eventos 429 do MetricsBridge (Azure Monitor ou CloudWatch).
- Para cada burst, busca queries no Query Cost Inspector dentro de ±N minutos (configurável).
- Agrupa por shape e ranqueia por RU cumulativo.
- Confidence score = participação do RU do top shape sobre o RU total da janela.
- Rationale automático: high-frequency vs single-expensive vs many-shapes coincidem.
Passo a passo
- 1
Abra o pane
Tools → Cosmos DB → Throttling Root Cause Analyzer.
- 2
Ajuste a janela
Default 5 min. Aumente para 10-15 se workload tem padrões longos; diminua para 2 se quiser correlation cirúrgica.
- 3
Refresh / aguarde o polling
A cada 60s puxa os 429s. Logo aparece a tabela com as top 20 janelas com 429s.
- 4
Investigue os suspeitos
A coluna "Why" traz um rationale curto. A coluna "Confidence" diz quão certo está. >70% em vermelho = quase certeza.
- 5
Aja
Top suspect shape → leve para o WHAT-IF Lab → teste índice → aplique.
Casos de uso reais
Detecção de bug às 4h
Alert do PagerDuty às 4am: spike de 429. 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.