Azure Monitor service limits

This article lists limits in different areas of Azure Monitor.

Alerts

Resource Default limit Maximum limit
Metric alerts (classic) 100 active alert rules per subscription. Call support
Metric alerts 5,000 active alert rules per subscription in Azure public, Azure China 21Vianet and Azure Government clouds. If you are hitting this limit, explore if you can use same type multi-resource alerts.
5,000 metric time-series per alert rule.
Call support.
Activity log alerts 100 active alert rules per subscription (cannot be increased). Same as default
Log alerts 5000 active alert rules per subscription. Out of which 100 active alert rules with 1-minute frequency.
1000 active alert rules per resource.
6000 time series per alert rule.
Call support
Alert processing rules 1000 active rules per subscription. Call support
Alert rules and alert processing rules description length Log search alerts 4096 characters
All other 2048 characters
Same as default

Alerts API

Azure Monitor Alerts have several throttling limits to protect against users making an excessive number of calls. Such behavior can potentially overload the system backend resources and jeopardize service responsiveness. The following limits are designed to protect customers from interruptions and ensure consistent service level. The user throttling and limits are designed to impact only extreme usage scenario and should not be relevant for typical usage.

Resource Default limit Maximum limit
Alerts - Get Summary 50 calls per minute per subscription Same as default
Alerts - Get All (not "Get By Id") 100 calls per minute per subscription Same as default
All other alerts calls 1000 calls per minute per subscription Same as default

Action groups

You may have an unlimited number of action groups in a subscription.

Resource Default limit Maximum limit
Azure app push 10 Azure app actions per action group. Same as Default
Email 1,000 email actions in an action group.
No more than 100 emails in an hour.
Also see the rate limiting information.
Same as Default
Email ARM role 10 Email ARM role actions per action group. Same as Default
Event Hub 10 Event Hub actions per action group. Same as Default
ITSM 10 ITSM actions in an action group. Same as Default
Logic app 10 logic app actions in an action group. Same as Default
Runbook 10 runbook actions in an action group. Same as Default
Secure Webhook 10 secure webhook actions in an action group. Maximum number of webhook calls is 1500 per minute per subscription. Other limits are available at action-specific information. Same as Default
SMS 10 SMS actions in an action group.
No more than 1 SMS message every 5 minutes.
Also see the rate limiting information.
Same as Default
Voice 10 voice actions in an action group.
No more than 1 voice call every 5 minutes.
Also see the rate limiting information.
Same as Default
Webhook 10 webhook actions in an action group. Maximum number of webhook calls is 1500 per minute per subscription. Other limits are available at action-specific information. Same as Default

Autoscale

Resource Default limit Maximum limit
Autoscale settings 100 per region per subscription. Same as default
Autoscale profiles 20 profiles per autoscale setting. Same as default

Prometheus metrics

Ingestion

The following limits apply to the Azure Monitor workspace ingesting your Prometheus metrics.

Limit Value
Active time series with metrics that have been reported in the last ~12 hours. 1,000,000
You can request an increase. 
Events per minute ingested 1,000,000
You can request an increase. 

The following limits apply to the data collection rule (DCR) and data collection endpoint (DCE) sending Prometheus metrics data to your Azure Monitor workspace

Limit Value
Ingestion requests per minute to a data collection endpoint 15,000
This limit can't be increased. 
Data ingestion per minute to a data collection endpoint 50 GB
This limit can't be increased.

Queries

Prometheus queries are created using PromQL and can be authored in either Azure Managed Grafana or self-managed Grafana.

Limit Value
Data retention 18 months
This limit can't be increased. 
Query time range 32 days between the start time and end time of your PromQL query
This limit can't be increased.
Query data limits  240 GB data returned per Azure Monitor workspace over a 30-second window 
Query time series per metric  150K time series 
Query samples returned 50M samples per query 
Minimum query step size
with time range >= 48 hours 
60 seconds 

Query pre-parsing limits
Based on query time range and request type over a 30-second window.

Limit Value
Query hours per user (Azure AD, managed identity, Azure Managed Grafana Workspace) 30,000
Query hours per Azure Monitor workspace 60,000
Query hours per Azure tenant 600,000

Query post-parsing limits
Based on query time range and range vectors in query over a 30-second window.

Limit Value
Query hours per user (Azure AD, managed identity, Azure Managed Grafana Workspace) 2,000,000
Query hours per Azure Monitor workspace 2,000,000
Query hours per Azure tenant 20,000,000

Alert rules

Prometheus alert rules are defined in PromQL and are performed on the managed Ruler service as part of Azure Monitor managed service for Prometheus.

Limit  Value 
Rule groups per Azure Monitor workspace  100
You can request an increase.
Rule groups per Azure subscription  100
You can request an increase.
Rules per rule group  20
You can request an increase.
Rule group evaluation interval Between 1-15 minutes.
Default is 1 minute. 
Active alerts  No limit at this time.

Remote write

Calculations were determined using a remote batch size of 500 which is the default.

Limit Value
CPU usage 0.25 x (number of metrics) + 1.25 x (avg number of series per metric)
CPU request 0.75 x (CPU usage)
CPU limit 2 x (CPU request)
Memory request 150 Mb
Memory limit 200 Mb
Maximum throughput Remote write container can process up to 150,000 unique time series. The container may throw errors serving requests over 150,000 due to the high number of concurrent connections. This issue can be mitigated by increasing the remote batch size from 500 to 1,000. This reduces the number of open connections.

Logs ingestion API

Limit Value
Maximum size of API call 1MB for both compressed and uncompressed data
Maximum data/minute per DCE 2 GB for both compressed and uncompressed data. Retry after the duration listed in the Retry-After header in the response.
Maximum requests/minute per DCE 12,000. Retry after the duration listed in the Retry-After header in the response.

Data collection rules

Limit Value
Maximum number of data sources 10
Maximum number of counter specifiers in performance counter 100
Maximum number of facility names in Syslog 20
Maximum number of XPath queries in Event Log 100
Maximum number of data flows 10
Maximum number of data streams 10
Maximum number of extensions 10
Maximum size of extension settings 32 Kb
Maximum number of Log Analytics workspaces 10
Maximum number of characters in a transformation 15,360

Diagnostic Settings

Limit Value
Maximum number of diagnostic settings per resource 5

Log queries and language

General query limits

Limit Description
Query language Azure Monitor uses the same Kusto query language as Azure Data Explorer. See Azure Monitor log query language differences for KQL language elements not supported in Azure Monitor.
Azure regions Log queries can experience excessive overhead when data spans Log Analytics workspaces in multiple Azure regions. See Query limits for details.
Cross resource queries Maximum number of Application Insights resources and Log Analytics workspaces in a single query limited to 100.
Cross-resource query is not supported in View Designer.
Cross-resource query in log alerts is supported in the new scheduledQueryRules API.
See Cross-resource query limits for details.
Log Analytics dashboard queries Maximum number of records returned in a single Log Analytics dashboard query is 2000.

User query throttling

Azure Monitor has several throttling limits to protect against users sending an excessive number of queries. Such behavior can potentially overload the system backend resources and jeopardize service responsiveness. The following limits are designed to protect customers from interruptions and ensure consistent service level. The user throttling and limits are designed to impact only extreme usage scenario and should not be relevant for typical usage.

Measure Limit per user Description
Concurrent queries 5 A user can run up to 5 concurrent queries, any additional query will be added to a queue. When one of the running queries finishes, the first query in the queue is pulled from the queue and starts running. Note: Alerts queries are not part of this limit.
Time in concurrency queue 3 minutes If a query sits in the queue for more than 3 minutes without being started, it will be terminated with an HTTP error response with code 429.
Total queries in concurrency queue 200 Once the number of queries in the queue reach 200, the next query will be rejected with an HTTP error code 429. This number is in addition to the five queries that can be running simultaneously.
Query rate 200 queries per 30 seconds Overall rate of queries that can be submitted by a single user to all workspaces. This limit applies to programmatic queries or queries initiated by visualization parts such as Azure dashboards and the Log Analytics workspace summary page.
  • Optimize your queries as described in Optimize log queries in Azure Monitor.
  • Dashboards and workbooks can contain multiple queries in a single view that generate a burst of queries every time they load or refresh. Consider breaking them up into multiple views that load on demand.
  • In Power BI, consider extracting only aggregated results rather than raw logs.

Log Analytics workspaces

Data collection volume and retention

Pricing tier Limit per day Data retention Comment
Pay-as-you-go
(introduced April 2018)
No limit up to 730 days interactive retention /
up to 7 years data archive
Data retention beyond 31 days is available for additional charges. Learn more about Azure Monitor pricing.
Commitment tiers
(introduced November 2019)
No limit up to 730 days interactive retention /
up to 7 years data archive
Data retention beyond 31 days is available for additional charges. Learn more about Azure Monitor pricing.
Legacy Per Node (OMS)
(introduced April 2016)
No limit 30 to 730 days Data retention beyond 31 days is available for additional charges. Learn more about Azure Monitor pricing. Access to use tier is limited to subscriptions that contained a Log Analytics workspace or Application Insights resource on April 2, 2018, or are linked to an Enterprise Agreement that started before February 1, 2019 and is still active.
Legacy Standalone tier
(introduced April 2016)
No limit 30 to 730 days Data retention beyond 31 days is available for additional charges. Learn more about Azure Monitor pricing. Access to use tier is limited to subscriptions that contained a Log Analytics workspace or Application Insights resource on April 2, 2018, or are linked to an Enterprise Agreement that started before February 1, 2019 and is still active.
Legacy Free tier
(introduced April 2016)
500 MB 7 days When your workspace reaches the 500 MB per day limit, data ingestion stops and resumes at the start of the next day. A day is based on UTC. Data collected by Microsoft Defender for Cloud isn't included in this 500 MB per day limit and will continue to be collected above this limit. Creating new workspaces in, or moving existing workspaces into, the legacy Free Trial pricing tier is possible only until July 1, 2022.
Legacy Standard tier No limit 30 days Retention can't be adjusted. This tier has not been available to any new workspaces since October 1, 2016.
Legacy Premium tier No limit 365 days Retention can't be adjusted. This tier hasn't been available to any new workspaces since October 1, 2016.

Number of workspaces per subscription.

Pricing tier Workspace limit Comments
Legacy Free tier 10 This limit can't be increased. Creating new workspaces in, or moving existing workspaces into, the legacy Free Trial pricing tier is possible only until July 1, 2022.
All other tiers No limit You're limited by the number of resources within a resource group and the number of resource groups per subscription.

Azure portal

Category Limit Comments
Maximum records returned by a log query 30,000 Reduce results using query scope, time range, and filters in the query.

Data Collector API

Category Limit Comments
Maximum size for a single post 30 MB Split larger volumes into multiple posts.
Maximum size for field values 32 KB Fields longer than 32 KB are truncated.

Query API

Category Limit Comments
Maximum records returned in a single query 500,000
Maximum size of data returned ~104 MB (~100 MiB) The API returns up to 64 MB of compressed data, which translates to up to 100 MB of raw data.
Maximum query running time 10 minutes See Timeouts for details.
Maximum request rate 200 requests per 30 seconds per Azure AD user or client IP address See Log queries and language.

Azure Monitor Logs connector

Category Limit Comments
Max size of data ~16.7 MB (~16 MiB) The connector infrastructure dictates that limit is set lower than query API limit
Max number of records 500,000
Max connector timeout 110 second
Max query timeout 100 second
Charts The Logs page and the connector use different charting libraries for visualization. Some functionality isn't currently available in the connector.

General workspace limits

Category Limit Comments
Maximum columns in a table 500
Maximum characters for column name 45

Data ingestion volume rate

Azure Monitor is a high scale data service that serves thousands of customers sending terabytes of data each month at a growing pace. The volume rate limit intends to isolate Azure Monitor customers from sudden ingestion spikes in multitenancy environment. A default ingestion volume rate threshold of 500 MB (compressed) is defined in workspaces, this is translated to approximately 6 GB/min uncompressed -- the actual size can vary between data types depending on the log length and its compression ratio. The volume rate limit applies to data ingested from Azure resources via Diagnostic settings. When volume rate limit is reached, a retry mechanism attempts to ingest the data four times in a period of 30 minutes and drop it if operation fails. It doesn't apply to data ingested from agents or Data Collector API.

When data sent to your workspace is at a volume rate higher than 80% of the threshold configured in your workspace, an event is sent to the Operation table in your workspace every 6 hours while the threshold continues to be exceeded. When ingested volume rate is higher than threshold, some data is dropped, and an event is sent to the Operation table in your workspace every 6 hours while the threshold continues to be exceeded. If your ingestion volume rate continues to exceed the threshold or you're expecting to reach it sometime soon, you can request to increase it in by opening a support request.

See Monitor health of Log Analytics workspace in Azure Monitor to create alert rules to be proactively notified when you reach any ingestion limits.

Note

Depending on how long you've been using Log Analytics, you might have access to legacy pricing tiers. Learn more about Log Analytics legacy pricing tiers.

Application Insights

There are some limits on the number of metrics and events per application, that is, per instrumentation key. Limits depend on the pricing plan that you choose.

Resource Default limit Maximum limit Notes
Total data per day 100 GB Contact support. You can reduce data by setting a cap. If you need more data, you can increase the limit in the portal, up to 1,000 GB. For capacities greater than 1,000 GB, send email to AIDataCap@microsoft.com.
Throttling 32,000 events/second Contact support. The limit is measured over a minute.
Data retention logs 30 to 730 days 730 days This resource is for Logs.
Data retention metrics 90 days 90 days This resource is for Metrics Explorer.
Availability multistep test detailed results retention 90 days 90 days This resource provides detailed results of each step.
Maximum telemetry item size 64 KB 64 KB
Maximum telemetry items per batch 64,000 64,000
Property and metric name length 150 150 See type schemas.
Property value string length 8,192 8,192 See type schemas.
Trace and exception message length 32,768 32,768 See type schemas.
Availability tests count per app 100 100
Profiler and Snapshot data retention Two weeks Contact support. Maximum retention limit is six months.
Profiler data sent per day No limit No limit
Snapshot data sent per day 30 snapshots per day per monitored app No limit The number of snapshots collected per application can be modified through configuration.

For more information about pricing and quotas, see Application Insights billing.

Next Steps