specification: API Commons Plans specificationVersion: '0.1' schema: https://raw.githubusercontent.com/api-evangelist/interface-research/main/schema/api-commons.yml#/$defs/Plans provider: Azure Monitor providerId: microsoft-azure-monitor created: '2026-05-04' # Provenance stamped 2026-08-11: this artifact was written by the API Evangelist # bulk sweep dated 2026-05-04, not harvested from the provider. See roadmap#35. method: generated modified: '2026-05-05' reconciled: true tags: - Observability - Monitoring - Logging - Metrics - Microsoft Azure description: Azure Monitor is metered consumption-based across logs (Analytics and Basic), metrics (custom and platform), alerts, and Application Insights. Log Analytics offers Pay-As-You-Go and Commitment Tiers (starting at 100 GB/day) for discounts. Platform metrics are free; custom metrics charge per million samples. Application Insights data is stored in a Log Analytics workspace and uses the same pricing model. sources: - https://azure.microsoft.com/en-us/pricing/details/monitor/ - https://learn.microsoft.com/en-us/azure/azure-monitor/logs/cost-logs plans: - id: microsoft-azure-monitor-analytics-logs-payg name: Analytics Logs - Pay-As-You-Go type: usage-based description: Default ingestion plan for queryable Analytics Logs. First 5 GB/month per workspace free; 31-day retention included; thereafter per-GB ingestion plus per-GB-month retention. entries: - label: Free ingestion (first 5 GB / month) name: analytics_logs_free type: quota metric: gb limit: 5 timeFrame: month geo: per-region unit: 1 price: '0.00' userMultiplied: false - label: Analytics Logs ingestion name: analytics_logs_ingest type: metered metric: gb limit: -1 timeFrame: month geo: per-region unit: 1 price: '~$2.30 per GB ingested (region-varying)' userMultiplied: false - label: Retention beyond 31 days name: analytics_retention type: metered metric: gb limit: -1 timeFrame: month geo: per-region unit: 1 price: 'see Azure pricing page (per GB-month retained)' userMultiplied: false elements: - name: Full KQL query support - name: 31-day free retention (90 days for Sentinel-enabled / App Insights) - name: Pay only for what you use - id: microsoft-azure-monitor-analytics-logs-commitment name: Analytics Logs - Commitment Tiers type: subscription description: Daily commitment in GB/day (100, 200, 300, 400, 500, 1000, 2000, 5000) for predictable flat fee with discount vs Pay-As-You-Go. entries: - label: Commitment - 100 GB / day name: commit_100 type: subscription metric: gb_per_day limit: 100 timeFrame: day geo: per-region unit: 100 price: 'see Azure pricing page (~15% discount vs PAYG)' userMultiplied: false - label: Commitment - 200/300/400/500/1000/2000/5000 GB / day name: commit_higher type: subscription metric: gb_per_day limit: 5000 timeFrame: day geo: per-region unit: 1 price: 'see Azure pricing page (deeper discount with higher commit)' userMultiplied: false elements: - name: Predictable fixed daily fee - name: Discount up to ~30% vs PAYG at higher tiers - name: Overage at PAYG rate - id: microsoft-azure-monitor-basic-logs name: Basic Logs type: usage-based description: Lower-cost log table type for verbose, low-query data. Limited KQL operators; 30-day retention included; per-search query cost. entries: - label: Basic Logs ingestion name: basic_logs_ingest type: metered metric: gb limit: -1 timeFrame: month geo: per-region unit: 1 price: '~$0.50 per GB ingested' userMultiplied: false - label: Basic Logs search query name: basic_logs_search type: metered metric: gb limit: -1 timeFrame: usage geo: per-region unit: 1 price: 'see Azure pricing page (per-GB scanned)' userMultiplied: false elements: - name: Cheaper ingestion - name: 30-day retention (then archive) - name: Limited KQL (no joins on Basic table) - id: microsoft-azure-monitor-archive-logs name: Log Archive type: usage-based description: Archive tier for Analytics or Basic Logs up to 12 years. Lower per-GB-month than hot retention; restore charged separately. entries: - label: Archive storage name: archive_storage type: metered metric: gb limit: -1 timeFrame: month geo: per-region unit: 1 price: 'see Azure pricing page (per GB-month archived)' userMultiplied: false - label: Archive restore name: archive_restore type: metered metric: gb limit: -1 timeFrame: usage geo: per-region unit: 1 price: 'see Azure pricing page' userMultiplied: false elements: - name: Up to 12 years archive - name: Restore on demand - name: Lower per-GB-month than hot retention - id: microsoft-azure-monitor-custom-metrics name: Custom Metrics type: usage-based description: Per-million-samples ingestion for application/custom metrics. Platform metrics are free. entries: - label: Custom metric samples name: custom_metrics type: metered metric: sample limit: -1 timeFrame: usage geo: per-region unit: 10000000 price: '0.16 per 10 million samples' userMultiplied: false elements: - name: 90-day retention - name: Custom dimensions - name: Platform metrics are free - id: microsoft-azure-monitor-alerts name: Alerts type: usage-based description: Per-time-series and per-rule pricing for metric alerts, log alerts, and dynamic thresholds. Action group notifications charged separately (email, SMS, push, voice). entries: - label: Metric alert rules name: metric_alert_rule type: metered metric: time_series limit: -1 timeFrame: month geo: per-region unit: 1 price: 'see Azure pricing page (per time-series monitored)' userMultiplied: false - label: Log alert rules name: log_alert_rule type: metered metric: rule limit: -1 timeFrame: month geo: per-region unit: 1 price: 'see Azure pricing page (per rule, varies by frequency)' userMultiplied: false - label: Notification (SMS/voice/push/email) name: notification type: metered metric: notification limit: -1 timeFrame: usage geo: per-region unit: 1 price: 'see Azure pricing page' userMultiplied: false elements: - name: Metric, log, and dynamic-threshold alerts - name: Action groups for notifications and automation - id: microsoft-azure-monitor-application-insights name: Application Insights type: usage-based description: Workspace-based App Insights data is stored and billed via the Log Analytics workspace where the resource lives. 90-day retention free for App Insights data. entries: - label: Telemetry ingestion (per workspace pricing) name: appinsights_ingest type: metered metric: gb limit: -1 timeFrame: month geo: per-region unit: 1 price: 'priced via Log Analytics workspace tier' userMultiplied: false elements: - name: Live metrics, distributed tracing, snapshot debugger - name: 90-day retention free - name: Same Commitment Tier discounts as workspace maintainers: - FN: Kin Lane email: kin@apievangelist.com x-canonical: generated: '2026-10-08' vocabulary: all/0-working/economics/plans-canonical.yml models: - metered - subscription units: - data - message plans: - name: Analytics Logs - Pay-As-You-Go access: other model: metered model_how: stated units: - data periods: - month - name: Analytics Logs - Commitment Tiers access: other model: subscription model_how: stated units: - data periods: - day - name: Basic Logs access: other model: metered model_how: stated units: - data periods: - month - per-use - name: Log Archive access: other model: metered model_how: stated units: - data periods: - month - per-use - name: Custom Metrics access: other model: metered model_how: stated units: - other periods: - per-use - name: Alerts access: other model: metered model_how: stated units: - message - other periods: - month - per-use - name: Application Insights access: other model: metered model_how: stated units: - data periods: - month