Azure Monitor metrics pricing: estimate custom metrics, retention, and API calls

Reviewed by CloudCostKit Editorial Team. Last updated: 2026-01-27. Editorial policy and methodology.

Start with a calculator if you need a first-pass estimate, then use this guide to validate the assumptions and catch the billing traps.


Metrics systems are "time series * frequency * retention". Costs spike when you accidentally create a huge number of distinct series (high cardinality) or when dashboards/alerts query wide time windows frequently. A good estimate makes cardinality explicit instead of hoping it stays small.

0) Define what a "time series" is in your model

A time series is a unique metric name plus a unique combination of dimension/label values. If you add dimensions like pod, container, path, or customerId, the number of unique combinations can explode.

1) Estimate time series count (cardinality)

Model cardinality explicitly. A simple approximation is: time_series ~= metrics * (dim1_values * dim2_values * ...).

  • Good dimensions: environment, region, service (bounded sets).
  • Dangerous dimensions: userId, requestId, URL path, pod name (unbounded or high churn).
  • If you need per-entity detail, consider sampling or aggregating before emitting metrics.

2) Sample rate (frequency)

Sample rate multiplies ingestion volume. Going from 60s to 10s is a 6x increase. For planning, model both a "normal" and a "high-frequency" scenario (and justify why you need high frequency).

3) Retention

Retention is a storage multiplier. Long retention can be expensive if you store high-resolution data for months. A common pattern is: keep high-res for days, downsample or keep aggregates for weeks/months.

4) Dashboards, alerts, and API calls

Repeated queries (dashboards refreshing every minute, alert rules scanning 24h windows) can create significant query/API load. Model refresh frequency explicitly.

  • A dashboard refreshing every minute is 1,440 refreshes/day.
  • An alert evaluating every minute with a 24h window repeatedly scans the same historical data.

Worked estimate template (copy/paste)

  • Time series = metrics * product(dim value counts)
  • Samples/month = time series * samples/minute * minutes/month
  • Retention = retention days (split high-res vs downsampled if applicable)
  • Query load = dashboards/day + alerts/day (include refresh cadence)

Tool: Time series cost calculator.

Common pitfalls

  • Unbounded or high-churn dimensions (customerId, requestId, pod name) causing cardinality explosion.
  • Using high-frequency sampling everywhere instead of only where it adds value.
  • Keeping long retention for high-resolution data by default.
  • Dashboards/alerts querying wide windows with very frequent refresh.
  • Emitting per-request metrics (too granular) instead of aggregating.

How to validate

  • List top dimensions and estimate their unique value counts (bounded vs unbounded).
  • Validate emit/scrape intervals across environments (dev often differs from prod).
  • Audit dashboards: refresh intervals, time windows, and number of panels (queries multiply).
  • Audit alerts: evaluation frequency and window sizes (avoid repeated wide scans).

Related tools

Sources


Related guides

Azure Application Insights pricing: ingestion volume, sampling, and retention
A practical Application Insights estimate: telemetry volume (GB), sampling, retention, and query scans. Includes validation steps to prevent ingest spikes during incidents.
AWS CloudWatch Metrics Pricing & Cost Guide
Model AWS CloudWatch metrics cost from custom metrics, API requests, dashboards, and retention, with guidance on bill boundaries, cardinality growth, and adjacent alarm spend.
Azure API Management pricing: model requests, transfer, and log volume
A practical API Management estimate: request volume, response transfer, and logs/observability. Includes a checklist to validate retries, payload size, and usage tiers.
Azure Event Hubs Pricing Guide: Throughput, Retention, Replay, and Egress
Estimate Azure Event Hubs cost from throughput, ingress volume, retention, replay multipliers, and egress, with a practical checklist for validating burst traffic and downstream replay risk.
Azure Log Analytics pricing: ingestion, retention, and query costs
A practical model for Log Analytics-style costs: GB ingested, retention storage, and query/scan behavior. Includes a method to estimate log GB from event rate and payload size, plus a validation checklist for high-volume sources.
API Gateway access logs cost: how to estimate ingestion and retention
A practical guide to estimate API Gateway access logs cost: estimate average bytes per request, convert to GB/day, model retention (GB-month), and reduce log spend safely.

Related calculators


FAQ

What usually drives metrics costs?
Custom metric volume and high-cardinality dimensions are the common drivers. Dashboards and alert queries can add repeated scans/API usage.
How do I estimate quickly?
Estimate number of time series, samples per minute, and retention days. Add a separate estimate for dashboard refreshes and alerts.
What is the most common mistake?
Accidentally creating unbounded cardinality (e.g., customerId, requestId, pod name) which explodes time series count and cost.
How do I validate?
Validate label/dimension cardinality, validate emit/scrape rates, and validate dashboard refresh intervals and alert windows that trigger repeated queries.

Last updated: 2026-01-27. Reviewed against CloudCostKit methodology and current provider documentation. See the Editorial Policy .