CostLensOver-Provisioned Cosmos DB (Azure)
Over-Provisioned Cosmos DB (Azure)
CostLens flags Cosmos DB accounts consuming a small fraction of their manually-provisioned RU/s, so you can switch to autoscale or lower the throughput.
Updated July 20261 min read
CostLens flags over-provisioned Cosmos DB accounts — accounts consuming a small fraction of their manually-provisioned RU/s. Manual throughput bills the full RU/s continuously, so an account running well under capacity is overpaying.
How it works
Accounts are enumerated
CostLens lists Cosmos DB accounts via the Azure Resource Manager API.
Consumption is measured
The NormalizedRUConsumption metric is read over 14 days. Accounts averaging under 30% are candidates.
Savings are estimated
CostLens sums the manually-provisioned RU/s across the account's databases and prices the idle fraction (× a conservative realizable factor for autoscale floors and bursts).
What to do
- Switch the database/container to autoscale — Cosmos automatically scales RU/s between a floor and your max based on load.
- Or lower the manual RU/s to match the observed steady-state, keeping headroom for peaks.
Severity levels
| Severity | Estimated monthly savings |
|---|---|
| critical | >$500 |
| high | $100–$500 |
| medium | $20–$100 |
| low | <$20 |
Required permissions
- Detect:
Reader(account metadata + throughput settings + Monitor metrics) — see Azure Accounts.
Limitations
- Only accounts with manual provisioned throughput are flagged (autoscale already optimizes).
- The estimate is a ranking signal — the exact RU rate depends on region, multi-region writes, and reserved capacity.