Azure Monitor · Rate Limits

Microsoft Azure Monitor Rate Limits

Azure Monitor surfaces multiple APIs each with separate rate limits - Log Ingestion API (Data Collection Rules), Logs Query API, Metrics API, Application Insights track API. Daily ingestion cap can be set per workspace. Query throttling is enforced per workspace and per user.

8 Limits Throttle: 429
Rate LimitingObservabilityMicrosoft Azure

Limits

Log Ingestion API per DCR throughput data_collection_rule
bandwidth
see Azure Monitor service limits (default a few MB/sec per DCR)
Logs Query API queries per user per workspace user/workspace
queries_per_30_seconds · second
200
Logs Query API concurrent queries per user user
concurrent_queries
5
Logs Query API maximum data scanned per query query
data_scanned
64 GB per query (Analytics tier default)
Logs Query API query timeout query
timeout_seconds · second
600
Application Insights track API per ingestion app_insights_resource
events_per_second
see App Insights ingestion sampling and rate caps
Daily ingestion cap (configurable) workspace
gb_per_day
workspace-configurable; set to bound daily spend
Metrics API requests per subscription subscription
requests_per_minute
see Azure Monitor REST API limits

Policies

Honor Retry-After
When ingestion or query APIs return 429 / 503, wait the duration in Retry-After and retry with exponential backoff.
Use sampling
For Application Insights at high event rates, enable adaptive sampling to control cost and rate without code changes.
Daily cap to bound spend
Set workspace daily cap to prevent runaway ingestion; cap triggers an alert when hit and stops ingestion until reset.
Use the Logs Ingestion API (DCR-based) for high volume
New collectors should use the DCR-based Logs Ingestion API rather than the legacy Data Collector API for better throughput and schema control.
Batch and pre-aggregate metrics
Pre-aggregate high-cardinality custom metrics client-side and emit per minute rather than per request to control sample-count costs.

Sources