Symptoms
- Log-based alerts stop firing; dashboards show a flat line from a certain time.
- Queries return data up to a point in the day, then nothing.
- Sentinel analytics rules report no data.
1. Confirm the cap was hit
_LogOperation
| where TimeGenerated > ago(2d)
| where Category =~ "Ingestion"
| where Detail has "OverQuota" or Operation has "Data collection"
| project TimeGenerated, Operation, Detail
az monitor log-analytics workspace show -g rg-mon -n law-prod \
--query "{capGb:workspaceCapping.dailyQuotaGb, status:workspaceCapping.dataIngestionStatus, reset:workspaceCapping.quotaNextResetTime}" -o json
dataIngestionStatus of OverQuota confirms it. Collection resumes at the reset time if you do nothing.
2. Raise the cap to restore visibility
az monitor log-analytics workspace update -g rg-mon -n law-prod --quota 200
# or remove the cap for now
az monitor log-analytics workspace update -g rg-mon -n law-prod --quota -1
Warning
Data that arrived while the workspace was over quota is dropped, not queued. Raising the cap restores collection from now on only.
3. Find what spiked
Usage
| where TimeGenerated > ago(3d)
| where IsBillable == true
| summarize GB = sum(Quantity) / 1000 by DataType, bin(TimeGenerated, 1d)
| order by GB desc
Then find the resource inside the table:
ContainerLogV2
| where TimeGenerated > ago(1d)
| summarize GB = sum(_BilledSize) / 1e9 by _ResourceId, PodNamespace
| top 10 by GB desc
Swap ContainerLogV2 for AzureDiagnostics, Syslog, Perf or whichever table jumped.
4. Stop the noisy source
| Source | Fix |
|---|---|
| A pod logging at debug | Fix log level; use a ContainerLogV2 namespace filter in the Container insights config map |
| Diagnostic setting sending all categories | Send only the categories you use |
| Syslog at debug from all VMs | Edit the data collection rule to a higher minimum level |
| Firewall or flow logs | Move to the Basic/Auxiliary logs table plan if you only need occasional queries |
5. Put the cap back with headroom
Set the cap above normal peaks and add an alert so it never surprises you again:
_LogOperation
| where Category =~ "Ingestion" and Detail has "OverQuota"
Create a log alert on this query and on a daily Usage threshold at about 80% of the cap.
Prevent it next time
- Use the cap as a cost safety net with alerts, not as a hard budget for security-critical workspaces.
- Review top tables monthly and set ingestion-time transformations to drop noise.