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.
Classic alerts are retired for public cloud users.
Classic alerts for Azure Government cloud and Microsoft Azure operated by 21Vianet will retire on 29 February 2024.
Call support.
Metric alerts 5,000 active alert rules per subscription in Azure public, Microsoft Azure operated by 21Vianet, and Azure Government clouds. If you're hitting this limit, explore if you can use the same type multi-resource alerts.
5,000 metric time-series per alert rule.
Call support.
Activity log alerts 100 active alert rules per subscription (can't be increased).
As this limit can't be increased, consider sending your Activity Logs to a Log Analytics workspace and creating log search alerts instead, if you need a larger number of rules per subscription.
Same as default.
Log alerts 5,000 active alert rules per subscription. Out of which, 100 active alert rules with a 1-minute frequency.
1,000 active alert rules per resource.
Each stateless alert rule can trigger up to 6,000 alerts per evaluation.
Each stateful alert rule can trigger up to 300 alerts per evaluation.
Up to 5,000 fired stateful alerts at a time per alert rule.
The combined size of all data in the log alert rule properties can't exceed 64 KB.
The Kusto query results can't exceed more than 20 MB.
Call support.
Alert processing rules 1,000 active rules per subscription. Call support.
Alert rules and alert processing rules description length Log search alerts 4,096 characters.
All others are 2,048 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 back-end resources and jeopardize service responsiveness. The following limits are designed to protect customers from interruptions and ensure a consistent service level. The user throttling and limits are designed to affect only extreme usage scenarios. They shouldn't be relevant for typical usage.

Note

There is a limit of API calls per instance. The exact limit number depands on the number of instances.

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 1,000 calls per minute per subscription Same as default

Action groups

You can 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 every hour for each email address per region
The character limit in an e-mail address is 64.
The character limit in an e-mail is 55296.
Also see the rate limiting information.
Same as Default
Email Azure Resource Manager role 10 Email ARM role actions per action group.
In production: No more than 100 emails in an hour per region.
In a test action group: No more than two emails in every one (1) minute.
Same as Default
Event Hubs 10 Event Hubs 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. Same as Default
SMS 10 SMS actions in an action group.
In production: No more than one SMS message every five minutes.
In a test action group: No more than one SMS every one minute.
Same as Default
Voice 10 voice actions in an action group.
In production: No more than one voice call every five minutes.
In a test action group: No more than one voice call every one minute.
Same as Default
Webhook 10 webhook actions in an action group. Maximum number of webhook calls is 1500 per minute per subscription. 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

Azure managed Prometheus is a case insensitive system. It treats strings, such as metric names, label names, or label values, as the same time series if they differ from another time series only by the case of the string. For more information, see Prometheus metrics overview.

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 by 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 time series per metric  500,000 time series. 
Query samples returned 50,000,000 samples per query. 
Minimum query step size
with time range >= 48 hours 
60 seconds. 

Query data limits
For client traffic:

Limit Value
Throttling window lookup length  30 seconds
Data returned per Azure Monitor workspace 0.5 GB

For recording rules traffic:

Limit Value
Throttling window lookup length  3 minutes
Data returned per Azure Monitor workspace 1 GB

Query pre-parsing limits
Based on query time range and request type, over a 30-second window (for client traffic):

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

Based on query time range and request type, over a 3-minute window (for recording rules traffic):

Limit Value
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 (for client traffic):

Limit Value
Query hours per user (Microsoft Entra ID, 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

Based on query time range and range vectors in query over a 3-minute window (for recording rules traffic):

Limit Value
Query hours per Azure Monitor workspace 2,000,000
Query hours per Azure tenant 20,000,000

Query cost throttling limits

Limit Value
Maximum query cost per query 15000
Maximum query cost for recording rules query 3000

Query cost calculation is done as follows:

Query Cost = (Number of time series requested * (queried time duration in seconds / Inferred time resolution of queried data)) / 5000

Inferred time resolution of queried data = Number of data points stored in any one randomly selected time series keys of queried metric / queried time duration in seconds

Alert and recording rules

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

Limit  Value 
Rule groups per Azure Monitor workspace, in an Azure subscription  500
You can request an increase.
Rules per rule group  20
This limit can't be increased.
Rule group evaluation interval Between 1 minute - 24 hours.
Default is 1 minute. 
Active alerts  No limit at this time.

Remote write

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

Limit Value
CPU usage 0.25 x (number of metrics) + 1.25 x (average 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 might throw errors serving requests over 150,000 because of the high number of concurrent connections. This issue can be mitigated by increasing the remote batch size from 500 to 1,000. This change reduces the number of open connections.

Logs Ingestion API

Limit Value Comments
Maximum size of API call 1 MB Both compressed and uncompressed data.
Maximum size for field values 64 KB Fields longer than 64 KB are truncated.
Maximum data/minute per DCR 2 GB Both compressed and uncompressed data. Retry after the duration listed in the Retry-After header in the response.
Maximum requests/minute per DCR 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

Resource Default Limit Maximum Limit
Maximum number of diagnostic settings per resource 5 Same as default.

Log queries and language

General query limits

Limit Description
Query language Azure Monitor uses the same Kusto Query Language (KQL) 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 isn't 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 2,000.

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 back-end 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 affect only extreme usage scenarios and shouldn't be relevant for typical usage.

Measure Limit per user Description
Concurrent queries 5 A user can run up to five concurrent queries. Any other query is 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. Alert queries aren't 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's terminated with an HTTP error response with code 429.
Total queries in concurrency queue 200 When the number of queries in the queue reaches 200, the next query is 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 (deprecated) page.
  • The activity logs API has a separate rate limit of 50 queries per 30 seconds.
  • 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 12 years data archive
Data retention beyond 31 days is available for extra charges. Learn more about Azure Monitor pricing.
Commitment tiers
(introduced November 2019)
No limit Up to 730 days interactive retention/
up to 12 years data archive
Data retention beyond 31 days is available for extra 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 extra 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 extra 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 continues 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 hasn't 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 by 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 Microsoft Entra user or client IP address See Log queries and language.

Azure Monitor Logs connector

Category Limit Comments
Maximum size of data ~16.7 MB (~16 MiB) The connector infrastructure dictates that limit is set lower than query API limit.
Maximum number of records 500,000
Maximum connector timeout 110 second
Maximum 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.

Summary rules

Category Limit
Maximum number of active rules in a workspace 30
Maximum number of results per bin 500,000
Maximum results set volume 100 MB
Query time-out for bin processing 10 minutes

General workspace limits

Category Limit Comments
Maximum columns in a table 500 AzureDiagnostics -- columns above the limit are added to dynamic 'AdditionalFields' column
Custom log created by Data collector API -- columns above the limit are added to dynamic 'AdditionalFields' column
Custom log -- contact support for more
Maximum number of custom log tables 500 Contact support for more
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 daily and at a growing pace. A soft volume rate limit intends to isolate Azure Monitor customers from sudden ingestion spikes in a multitenancy environment. The default ingestion volume rate threshold in workspaces is 500 MB (compressed), which is translated to approximately 6 GB/min uncompressed.

The volume rate limit applies to data ingested from Azure resources via Diagnostic settings and Data Collector API. When the volume rate limit is reached, a retry mechanism attempts to ingest the data four times in a period of 12 hours and drop it if operation fails. The limit doesn't apply to data ingested from agents, or via DCR.

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 the ingested volume rate is higher than the threshold, some data is dropped, 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 this limit by opening a support request.

It's also recommended to create an alert rule to proactively notify when you reach any ingestion limits. See Monitor health of Log Analytics workspace in Azure Monitor.

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 set a cap to reduce data. 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 Application Insights resource 100 100
Availability tests count per resource group 800 800 See Azure Resource Manager
Availability tests maximum redirects per test 10 10
Availability tests minimum test frequency 300 seconds Custom test frequencies or frequencies less than 5 minutes require custom TrackAvailability implementations.
.NET Profiler and Snapshot Debugger data retention Two weeks Contact support. Maximum retention limit is six months.
.NET Profiler data sent per day No limit No limit.
Snapshot Debugger 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.

AMPLS objects have the following limits:

  • A virtual network can connect to only one AMPLS object. That means the AMPLS object must provide access to all the Azure Monitor resources to which the virtual network should have access.
  • An AMPLS object can connect to up to 300 Log Analytics workspaces and up to 1,000 Application Insights components.
  • An Azure Monitor resource can connect to up to five AMPLS.
  • An AMPLS object can connect to up to 10 private endpoints.

Next steps