Applications Systems

Azure SQL DTU counters are not polled in Azure Cloud Monitoring in SAM

When monitoring Azure SQL Databases through SolarWinds Azure Cloud Monitoring, you may notice that DTU (Database Throughput Unit) counters are not exposed as dedicated metrics.

First published date

8/5/2026 5:20 PM

Last published date

8/5/2026 5:20 PM

Overview

 Cloud Monitoring shows CPU, storage, and memory metrics for Azure SQL DB, but it does not currently provide DTU Limit / DTU Used / DTU % counters as separate time series. To monitor DTU usage, you need to use a SAM application template instead of relying solely on Azure Cloud Monitoring views.

Product section

Server Application Monitor

Cause

In the current implementation:

  • The Azure Cloud Monitoring integration for Azure SQL DB exposes CPU, storage, memory, and related utilization metrics, but does not expose DTU usage as a distinct metric, nor does it separate DTU % from CPU %. This is a product limitation / feature gap, not a misconfiguration in the customer environment.
  • DTU metrics are available through the SAM “Microsoft Azure SQL Server Database” template, which includes:
    • Database throughput units (DTU) Limit
    • Database throughput units (DTU) used
    • Database throughput unit (DTU) percentage

Resolution

  1. Understand the current limitation

    • Azure Cloud Monitoring dashboards for Azure SQL Database do not show DTU-specific counters. They focus on CPU, IO, and storage metrics and cannot be adjusted to add “DTU Limit / DTU Used / DTU %” as native metrics at this time.
    • If you require DTU-based alerting or reporting, you must monitor Azure SQL DB using a SAM application template instead of relying only on Cloud Monitoring views.
  2. Use the built-in SAM template “Microsoft Azure SQL Server Database” for DTU metrics

    The supported way to monitor DTU usage is to deploy the Microsoft Azure SQL Server Database SAM template, which is designed for Azure SQL DB and includes DTU-related counters.

    2.1. Prepare Azure prerequisites

    Ensure the following are in place before assigning the template:

    • PowerShell modules installed on the polling host:
      • Az, Az.Accounts, Az.Resources
    • Azure service principal (App registration) with, at minimum, read-only access to the monitored Azure SQL Database:
      • Subscription ID
      • Tenant ID
      • Application (client) ID
      • Secret key (client secret)
    • Azure SQL Database name to be monitored.
    • PowerShell 5.1 or later on the polling host.
    • The Application ID used to connect must be registered in Azure Active Directory and assigned an appropriate read-only contributor role for the database you are monitoring.

    2.2. Configure credentials in SAM

    • In the SolarWinds Platform, create or select a credential that:
      • Has Windows Administrator rights on the polling host where the PowerShell script runs.
      • Can authenticate to Azure using the service principal values (SubscriptionID, TenantID, ApplicationID, Secret Key) passed as script arguments per the template documentation.

    2.3. Assign the Microsoft Azure SQL Server Database template

    • Open Settings → All Settings → SAM Settings → Manage Templates.
    • Locate Microsoft Azure SQL Server Database and either:
      • Assign it to an existing node representing an Azure SQL DB endpoint, or
      • Assign it to an appropriate Windows node that will act as the script execution host.
    • When prompted, provide the script arguments specified in the template:
      • <SubscriptionID>
      • <TenantID>
      • <ApplicationID>
      • <SecretKey>
      • <SQLServerDatabaseName>
      • Optional: polling time interval, retry count, wait time, if you need non-default values.

    2.4. Verify DTU counters and configure alerting

    After the template has polled successfully:

    • Confirm that the following components are collecting data (names from the template):
      • Database throughput units (DTU) Limit
      • Database throughput units (DTU) used
      • Database throughput unit (DTU) percentage
    • Create or adjust SAM alerts using these component metrics, for example:
      • Alert when DTU percentage exceeds your agreed threshold (for example, sustained > 80%) for a defined period.
      • Alert when DTU Limit is near capacity in combination with high CPU/IO utilization.

    This gives you dedicated DTU visibility and alerting, independent of Azure Cloud Monitoring’s current metric set.

  3. Optionally use the Azure SQL DTU Template from THWACK

    If you want a ready-made community solution that focuses specifically on DTU inputs, you can import the Azure SQL DTU Template from THWACK.

    • The Azure SQL DTU Template is a SAM application template designed to monitor all metrics used in calculating Azure SQL DTU, based on Microsoft’s sys.dm_db_resource_stats DMV and related guidance.
    • This is a community-contributed template and may include custom scripting; follow the import and configuration instructions on the THWACK article page and validate it in a non-production environment before broad deployment.

    Use this option only if the built-in Microsoft Azure SQL Server Database template does not meet your use case or you require the specific DTU calculation approach described in the THWACK article.


Additional Notes

  • Azure Cloud Monitoring does not currently provide DTU as a first-class metric for Azure SQL Database; DTU monitoring must currently be done via SAM templates. 
  • DTUs are a blended metric combining CPU, memory, and IO; Microsoft’s own guidance notes that CPU% alone is not a reliable proxy for DTU%, which is why a dedicated DTU data source (such as the SAM templates described above) is recommended for capacity planning.
  • Where possible, align your SolarWinds DTU thresholds with the same limits used in your Azure SQL Database tier (for example, tier-specific DTU caps and Microsoft recommendations).