Internal Plugins

Built-in analysis plugins for advanced Azure resource insights

Overview

Azure Quick Review (azqr) includes internal plugins - specialized built-in scanners that provide advanced analytics beyond standard best practice recommendations. Unlike YAML plugins (which add custom Resource Graph queries), internal plugins perform complex data analysis, API integrations, and multi-source data correlation.

Internal plugins are disabled by default and must be explicitly enabled using command-line flags.

Available Internal Plugins

1. OpenAI Throttling

Plugin Name: openai-throttling
Flag: --openai-throttling
Version: 1.0.0

Monitors Azure OpenAI and Cognitive Services accounts for throttling (429 errors) to identify capacity constraints.

Key Features:

  • Tracks 429 throttling errors by hour, model, and deployment
  • Analyzes spillover configuration effectiveness
  • Reports request counts by status code
  • Identifies peak throttling periods

Use Cases:

  • Capacity planning for OpenAI deployments
  • Troubleshooting throttling issues
  • Optimizing deployment spillover configuration
  • Monitoring API usage patterns

Output Columns:

  • Subscription, Resource Group, Account Name
  • Kind (OpenAI, Cognitive Services)
  • SKU and deployment details
  • Model name and spillover settings
  • Hourly throttling statistics (status code, request count)

Data Source: Azure Monitor Metrics API (last 24-48 hours)


2. Carbon Emissions

Plugin Name: carbon-emissions
Flag: --carbon-emissions
Version: 1.0.0

Analyzes carbon emissions by Azure resource type to support sustainability reporting and optimization.

Key Features:

  • Tracks emissions by resource type across subscriptions
  • Calculates month-over-month change ratios
  • Aggregates emissions from multiple subscriptions
  • Supports sustainability compliance reporting

Use Cases:

  • Sustainability reporting and compliance
  • Identifying high-emission resource types
  • Tracking carbon reduction progress
  • Environmental impact analysis

Output Columns:

  • Period From/To (reporting period)
  • Resource Type
  • Latest Month Emissions
  • Previous Month Emissions
  • Month-over-Month Change Ratio
  • Monthly Change Value
  • Unit (metric tons CO2 equivalent)

Data Source: Azure Carbon Optimization API


3. Zone Mapping

Plugin Name: zone-mapping
Flag: --zone-mapping
Version: 1.0.0

Retrieves logical-to-physical availability zone mappings for all Azure regions in each subscription.

Key Features:

  • Maps logical zones (1, 2, 3) to physical zone identifiers
  • Reveals subscription-specific zone mappings
  • Helps ensure proper zone alignment across subscriptions
  • Supports multi-subscription architecture planning

Use Cases:

  • Multi-subscription architecture design
  • DR planning with zone awareness
  • Zone alignment for latency optimization
  • Compliance and audit documentation

Output Columns:

  • Subscription, Location, Display Name
  • Logical Zone (1, 2, or 3)
  • Physical Zone (e.g., eastus-az1, westeurope-az2)

Data Source: Azure Resource Manager Subscriptions API

📖 Full Documentation


Usage

Enabling Internal Plugins

Internal plugins are opt-in and must be enabled individually using command-line flags:

# Enable OpenAI throttling plugin
azqr scan --openai-throttling

# Enable carbon emissions plugin
azqr scan --carbon-emissions

# Enable zone mapping plugin
azqr scan --zone-mapping

# Enable multiple plugins
azqr scan --openai-throttling --carbon-emissions --zone-mapping

# Combine with other scan options
azqr scan --subscription-id <sub-id> --output-name analysis

Listing Available Plugins

View all registered plugins (internal and YAML):

azqr plugins list

Sample Output:

NAME                  VERSION    TYPE       DESCRIPTION
openai-throttling     1.0.0      internal   Checks OpenAI/Cognitive Services accounts for...
carbon-emissions      1.0.0      internal   Analyzes carbon emissions by Azure resource type
zone-mapping          1.0.0      internal   Retrieves logical-to-physical availability zone mappings...

Plugin Details

Get detailed information about a specific plugin:

azqr plugins info zone-mapping

Output Formats

Internal plugin results are included in all output formats:

Excel (Default)

Each internal plugin creates a dedicated worksheet in the Excel workbook:

  • Zone Mapping sheet
  • OpenAI Throttling sheet
  • Carbon Emissions sheet
azqr scan --openai-throttling --carbon-emissions --zone-mapping
# Generates: azqr_action_plan_YYYY_MM_DD_THHMMSS.xlsx

JSON

Plugin results are included in the pluginResults array:

azqr scan --zone-mapping --json

JSON Structure:

{
  "recommendations": [...],
  "resources": [...],
  "pluginResults": [
    {
      "pluginName": "zone-mapping",
      "sheetName": "Zone Mapping",
      "description": "Retrieves logical-to-physical availability zone mappings for all Azure regions in each subscription",
      "table": [
        ["Subscription", "Location", "Display Name", "Logical Zone", "Physical Zone"],
        ["Production", "East US", "East US", "1", "eastus-az1"]
      ]
    }
  ]
}

CSV

Plugin results are exported to separate CSV files:

azqr scan --zone-mapping --csv
# Generates: 
#   <filename>.zone-mapping.csv
#   <filename>.recommendations.csv
#   <filename>.inventory.csv
#   ...

Interactive Dashboard

View plugin results interactively using the show command:

# Generate report with plugins
azqr scan --openai-throttling --carbon-emissions --zone-mapping --output-name analysis

# Launch interactive viewer
azqr show -f analysis.xlsx --open

The dashboard provides:

  • Filterable columns (dropdowns, search)
  • Sortable data tables
  • Export capabilities
  • Real-time filtering

Permissions

Internal plugins may require additional permissions beyond standard Reader access:

PluginRequired PermissionsAPI Dependencies
zone-mappingReaderSubscriptions API (locations endpoint)
openai-throttlingReader + Monitoring ReaderCognitive Services, Monitor Metrics
carbon-emissionsReaderCarbon Optimization API

Recommended: Assign Reader and Monitoring Reader roles at subscription or management group scope.

Performance Considerations

Internal plugins add processing time to scans:

  • openai-throttling: 1-3 minutes (depends on number of OpenAI accounts)
  • carbon-emissions: 1-2 minutes (depends on subscription count)
  • zone-mapping: <10 seconds (very fast, one API call per subscription)

Optimization Tips:

  • Enable only needed plugins
  • Use subscription/resource group filters to reduce scope

Last modified December 8, 2025: feat: add zone mapping plugin (cee1b04)