Azure

Overview

Datadog’s Azure integration enables the collection of metrics and logs from your Azure environment. The configuration options are different depending on which Datadog site your organization is using:

All Sites: All Datadog sites can use the App Registration credential process for implementing metric collection. You can automate the log-forwarding setup with an Azure Resource Manager (ARM) template, or manually set up an Azure Event Hub to forward your logs. To the extent that the Azure Integration is used to monitor Azure China, all use of Datadog Services in (or in connection with environments within) mainland China is subject to the disclaimer published in the Restricted Service Locations section on our website.

US3: If your organization is on the Datadog US3 site, use the Azure Native integration to streamline management and data collection for your Azure environment. Datadog recommends using this method when possible. Setup entails creating a Datadog resource in Azure to link your Azure subscriptions to your Datadog organization. This replaces the App Registration credential process for metric collection and Event Hub setup for log forwarding.

Connect to Microsoft Azure to:

  • Get metrics from Azure VMs with or without installing the Datadog Agent.
  • Collect standard Azure Monitor metrics for all Azure services: Application Gateway, App Service (Web & Mobile), Batch Service, Event Hub, IoT Hub, Logic App, Redis Cache, Server Farm (App Service Plan), SQL Database, SQL Elastic Pool, Virtual Machine Scale Set, and many more.
  • Tag your Azure metrics with Azure-specific information about the associated resource, such as region, resource group, and tags defined in your Azure environment.
  • Get Datadog generated metrics to provide unique insights into your Azure environment.
  • Correlate data from your Azure applications across logs, metrics, APM tracing, user activity, and more within your Datadog organization.
Datadog's Azure integration is built to collect all metrics from Azure Monitor. Datadog strives to continually update the docs to show every sub-integration, but cloud services rapidly release new metrics and services so the list of integrations can sometimes lag.
The azure.*.count metric is generated by Datadog from Azure Resource Health. For more information, see Azure Count Metric.
IntegrationDescription
Analysis ServicesA service that provides data models in the cloud.
API ManagementA service to publish, secure, transform, maintain, and monitor APIs.
App ServiceA service for deploying and scaling web, mobile, API and business logic application.
App Service EnvironmentA service that provides an environment for securely running App Service apps at high scale.
App Service PlanA set of compute resources for a web app to run.
Application GatewayA web traffic load balancer that enables you to manage traffic to your web applications.
AutomationA service that provides automation and configuration management across your environments.
Batch ServiceManaged task scheduler and processor.
Cognitive ServicesAPIs, SDKs, and services available to help build applications without AI or data science knowledge.
Container InstancesA service to deploy containers without the need to provision or manage the underlying infrastructure.
Container ServiceA production-ready Kubernetes, DC/OS, or Docker Swarm cluster.
Cosmos DBA database service that supports document, key-value, wide-column, and graph databases.
Customer InsightsEnables organizations to bring together data sets to build a 360° view of their customers.
Data ExplorerFast and highly scalable data exploration service.
Data FactoryA service to compose data storage, movement, and processing services into automated data pipelines.
Data Lake AnalyticsAn analytics job service that simplifies big data.
Data Lake StoreA no limits data lake that powers big data analytics.
Database for MariaDBA service that provides fully managed, enterprise-ready community MariaDB database.
Event GridAn event routing service that allows for uniform event consumption using a publish-subscribe model.
Event HubLarge scale data stream managed service.
ExpressRouteA service to extend your on-premises networks into the cloud.
FirewallCloud-native network security to protect your Azure Virtual Network resources.
FunctionsA service for running serverless code in response to event triggers.
HDInsightsA cloud service that processes massive amounts of data.
IOT HubConnect, monitor, and manage billions of IOT assets.
Key VaultA service to safeguard and manage cryptographic keys and secrets used by cloud applications and services.
Load BalancerScale your applications and create high availability for your services.
Logic AppBuild powerful integration solutions.
Machine LearningEnterprise-grade machine learning service to build and deploy models faster.
Network InterfacesEnables VM communication with internet, Azure, and on-premises resources.
Notification HubsA push engine that allows you to send notifications to any platform from any backend.
Public IP AddressA resource that enables inbound communication and outbound connectivity from the Internet.
Recovery Service VaultAn entity that stores the backups and recovery points created over time.
Redis CacheManaged data cache.
RelaySecurely expose services that run in your corporate network to the public cloud.
StorageStorage for blobs, files, queues, and tables.
Stream AnalyticsAn event-processing engine to examine high volumes of data streaming from devices.
SQL DatabaseHighly scalable relational database in the cloud.
SQL Database Elastic PoolManage the performance of multiple database.
Synapse AnalyticsAn analytics service that brings together data integration, enterprise data warehousing and big data analytics.
Usage and QuotasFollow your Azure usage.
Virtual MachineVirtual machine management service.
Virtual Machine Scale SetDeploy, manage, and autoscale a set of identical VMs.
Virtual NetworkAllow Azure resources to securely communicate with each other, the internet, and on-premises networks.

Setup

Automatic

All sites:
See the Standard Azure Integration Programmatic Management Guide for instructions on automatically setting up the standard Datadog integration with Azure. You can set up the integration through Terraform or the Azure CLI, deploy the Datadog Agent natively in Azure through the Datadog Azure VM Extension, and automatically or manually configure log forwarding.

US3:
See the Azure Native Integration Programmatic Management Guide for instructions on using Terraform to set up Datadog’s Azure Native integration with the Datadog resource in Azure.

Manual

All sites:
See the Standard Azure Integration Manual Setup Guide for instructions on manually setting up the Datadog integration with Azure through the Azure portal or CLI, as well as deploying the Datadog Agent directly in Azure with the VM extension or AKS Cluster extension.

US3:
See the Azure Native Integration Manual Setup Guide for instructions on manually setting up the Azure Native integration with Datadog. This includes creation of the Datadog resource in Azure, deploying the Datadog Agent directly in Azure with the VM extension or AKS Cluster extension, and optional configuration of single sign-on (SSO).

Log collection

All sites:
See the Send Azure Logs to Datadog guide for instructions on sending your Azure logs to Datadog. You can automate the setup with an Azure Resource Manager (ARM) template, or set up a Datadog-Azure function and an Azure Event Hub. You can also use an Azure Blob Storage Function to collect logs from all of your Azure App Services.

US3:
See the Send Azure Logs with the Datadog Resource guide for instructions on sending your subscription level, Azure resource, and Azure Active Directory logs to Datadog.

Data Collected

Metrics

azure.devices_elasticpools_iothubtenants.c2d.commands.egress.abandon.success
(count)
Number of cloud-to-device commands abandoned by the device
azure.devices_elasticpools_iothubtenants.c2d.commands.egress.complete.success
(count)
Number of cloud-to-device commands completed successfully by the device
azure.devices_elasticpools_iothubtenants.c2d.commands.egress.reject.success
(count)
Number of cloud-to-device commands rejected by the device
azure.devices_elasticpools_iothubtenants.c2d.methods.failure
(count)
The count of all failed direct method calls.
azure.devices_elasticpools_iothubtenants.c2d.methods.request_size
(gauge)
The average min and max of all successful direct method requests.
Shown as byte
azure.devices_elasticpools_iothubtenants.c2d.methods.response_size
(gauge)
The average min and max of all successful direct method responses.
Shown as byte
azure.devices_elasticpools_iothubtenants.c2d.methods.success
(count)
The count of all successful direct method calls.
azure.devices_elasticpools_iothubtenants.c2d.twin.read.failure
(count)
The count of all failed back-end-initiated twin reads.
azure.devices_elasticpools_iothubtenants.c2d.twin.read.size
(gauge)
The average min and max of all successful back-end-initiated twin reads.
Shown as byte
azure.devices_elasticpools_iothubtenants.c2d.twin.read.success
(count)
The count of all successful back-end-initiated twin reads.
azure.devices_elasticpools_iothubtenants.c2d.twin.update.failure
(count)
The count of all failed back-end-initiated twin updates.
azure.devices_elasticpools_iothubtenants.c2d.twin.update.size
(gauge)
The average min and max size of all successful back-end-initiated twin updates.
Shown as byte
azure.devices_elasticpools_iothubtenants.c2d.twin.update.success
(count)
The count of all successful back-end-initiated twin updates.
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.built_in.events
(count)
Number of times messages were successfully written to the built-in endpoint (messages/events)
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.event_hubs
(count)
Number of times messages were successfully written to Event Hub endpoints
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.service_bus_queues
(count)
Number of times messages were successfully written to Service Bus Queue endpoints
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.service_bus_topics
(count)
Number of times messages were successfully written to Service Bus Topic endpoints
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.storage
(count)
Number of times messages were successfully written to storage endpoints
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.storage.blobs
(count)
Number of blobs written to storage endpoints
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.storage.bytes
(gauge)
Amount of data in bytes written to storage endpoints
Shown as byte
azure.devices_elasticpools_iothubtenants.d2c.endpoints.latency.built_in.events
(gauge)
The average latency between message ingress to the IoT hub and message ingress into the built-in endpoint (messages/events) in milliseconds
Shown as millisecond
azure.devices_elasticpools_iothubtenants.d2c.endpoints.latency.event_hubs
(gauge)
The average latency between message ingress to the IoT hub and message ingress into an Event Hub endpoint in milliseconds
Shown as millisecond
azure.devices_elasticpools_iothubtenants.d2c.endpoints.latency.service_bus_queues
(gauge)
The average latency between message ingress to the IoT hub and message ingress into a Service Bus Queue endpoint in milliseconds
Shown as millisecond
azure.devices_elasticpools_iothubtenants.d2c.endpoints.latency.service_bus_topics
(gauge)
The average latency between message ingress to the IoT hub and message ingress into a Service Bus Topic endpoint in milliseconds
Shown as millisecond
azure.devices_elasticpools_iothubtenants.d2c.endpoints.latency.storage
(gauge)
The average latency between message ingress to the IoT hub and message ingress into a storage endpoint in milliseconds
Shown as millisecond
azure.devices_elasticpools_iothubtenants.d2c.telemetry.egress.dropped
(count)
Number of messages dropped because the delivery endpoint was dead
azure.devices_elasticpools_iothubtenants.d2c.telemetry.egress.fallback
(count)
Number of messages written to the fallback endpoint
azure.devices_elasticpools_iothubtenants.d2c.telemetry.egress.invalid
(count)
The count of messages not delivered due to incompatibility with the endpoint
azure.devices_elasticpools_iothubtenants.d2c.telemetry.egress.orphaned
(count)
The count of messages not matching any routes including the fallback route
azure.devices_elasticpools_iothubtenants.d2c.telemetry.egress.success
(count)
Number of times messages were successfully written to endpoints (total)
azure.devices_elasticpools_iothubtenants.d2c.telemetry.ingress.all_protocol
(count)
Number of device-to-cloud telemetry messages attempted to be sent to your IoT hub
azure.devices_elasticpools_iothubtenants.d2c.telemetry.ingress.send_throttle
(count)
Number of throttling errors due to device throughput throttles
azure.devices_elasticpools_iothubtenants.d2c.telemetry.ingress.success
(count)
Number of device-to-cloud telemetry messages sent successfully to your IoT hub
azure.devices_elasticpools_iothubtenants.d2c.twin.read.failure
(count)
The count of all failed device-initiated twin reads.
azure.devices_elasticpools_iothubtenants.d2c.twin.read.size
(gauge)
The average min and max of all successful device-initiated twin reads.
Shown as byte
azure.devices_elasticpools_iothubtenants.d2c.twin.read.success
(count)
The count of all successful device-initiated twin reads.
azure.devices_elasticpools_iothubtenants.d2c.twin.update.failure
(count)
The count of all failed device-initiated twin updates.
azure.devices_elasticpools_iothubtenants.d2c.twin.update.size
(gauge)
The average min and max size of all successful device-initiated twin updates.
Shown as byte
azure.devices_elasticpools_iothubtenants.d2c.twin.update.success
(count)
The count of all successful device-initiated twin updates.
azure.devices_elasticpools_iothubtenants.daily_message_quota_used
(count)
Number of total messages used today. This is a cumulative value that is reset to zero at 00:00 UTC every day.
azure.devices_elasticpools_iothubtenants.device_data_usage
(count)
Bytes transferred to and from any devices connected to IotHub
azure.devices_elasticpools_iothubtenants.devices.connected_devices.all_protocol
(count)
Number of devices connected to your IoT hub
azure.devices_elasticpools_iothubtenants.devices.total_devices
(count)
Number of devices registered to your IoT hub
azure.devices_elasticpools_iothubtenants.jobs.cancel_job.failure
(count)
The count of all failed calls to cancel a job.
azure.devices_elasticpools_iothubtenants.jobs.cancel_job.success
(count)
The count of all successful calls to cancel a job.
azure.devices_elasticpools_iothubtenants.jobs.completed
(count)
The count of all completed jobs.
azure.devices_elasticpools_iothubtenants.jobs.create_direct_method_job.failure
(count)
The count of all failed creation of direct method invocation jobs.
azure.devices_elasticpools_iothubtenants.jobs.create_direct_method_job.success
(count)
The count of all successful creation of direct method invocation jobs.
azure.devices_elasticpools_iothubtenants.jobs.create_twin_update_job.failure
(count)
The count of all failed creation of twin update jobs.
azure.devices_elasticpools_iothubtenants.jobs.create_twin_update_job.success
(count)
The count of all successful creation of twin update jobs.
azure.devices_elasticpools_iothubtenants.jobs.failed
(count)
The count of all failed jobs.
azure.devices_elasticpools_iothubtenants.jobs.list_jobs.failure
(count)
The count of all failed calls to list jobs.
azure.devices_elasticpools_iothubtenants.jobs.list_jobs.success
(count)
The count of all successful calls to list jobs.
azure.devices_elasticpools_iothubtenants.jobs.query_jobs.failure
(count)
The count of all failed calls to query jobs.
azure.devices_elasticpools_iothubtenants.jobs.query_jobs.success
(count)
The count of all successful calls to query jobs.
azure.devices_elasticpools_iothubtenants.tenant_hub.requested_usage_rate
(gauge)
requested usage rate
Shown as percent
azure.devices_elasticpools_iothubtenants.twin_queries.failure
(count)
The count of all failed twin queries.
azure.devices_elasticpools_iothubtenants.twin_queries.result_size
(gauge)
The average min and max of the result size of all successful twin queries.
Shown as byte
azure.devices_elasticpools_iothubtenants.twin_queries.success
(count)
The count of all successful twin queries.
azure.devices_elasticpools.elastic_pool.requested_usage_rate
(gauge)
requested usage rate
Shown as percent
azure.insights_autoscalesettings.metric_threshold
(count)
The configured autoscale threshold when autoscale ran.
azure.insights_autoscalesettings.observed_capacity
(count)
The capacity reported to autoscale when it executed.
azure.insights_autoscalesettings.observed_metric_value
(count)
The value computed by autoscale when executed
azure.insights_autoscalesettings.scale_actions_initiated
(count)
The direction of the scale operation.
azure.locationbasedservices_accounts.latency
(gauge)
Duration of API calls
Shown as millisecond
azure.network_connections.bits_in_per_second
(rate)
Bits ingressing Azure per second
Shown as bit
azure.network_connections.bits_out_per_second
(rate)
Bits egressing Azure per second
Shown as bit
azure.network_dnszones.query_volume
(count)
Number of queries served for a DNS zone
azure.network_dnszones.record_set_capacity_utilization
(gauge)
Percent of Record Set capacity utilized by a DNS zone
Shown as percent
azure.network_dnszones.record_set_count
(count)
Number of Record Sets in a DNS zone
azure.network_networkwatchers_connectionmonitors.average_roundtrip_ms
(gauge)
Average network round-trip time (ms) for connectivity monitoring probes sent between source and destination
Shown as millisecond
azure.network_networkwatchers_connectionmonitors.probes_failed_percent
(gauge)
% of connectivity monitoring probes failed
Shown as percent
azure.network_privatelinkservices.pls_bytes_in
(count)
Total number of bytes in
Shown as byte
azure.network_privatelinkservices.pls_bytes_out
(count)
Total number of bytes out
Shown as byte
azure.network_privatelinkservices.pls_nat_ports_usage
(gauge)
Nat ports usage
azure.network_trafficmanagerprofiles.qps_by_endpoint
(count)
Number of times a Traffic Manager endpoint was returned in the given time frame
azure.network_virtualnetworkgateways.tunnel_average_bandwidth
(rate)
Average bandwidth of a tunnel in bytes per second
Shown as byte
azure.network_virtualnetworkgateways.tunnel_egress_bytes
(gauge)
Outgoing bytes of a tunnel
Shown as byte
azure.network_virtualnetworkgateways.tunnel_egress_packet_drop_tsmismatch
(count)
Outgoing packet drop count from traffic selector mismatch of a tunnel
azure.network_virtualnetworkgateways.tunnel_egress_packets
(count)
Outgoing packet count of a tunnel
azure.network_virtualnetworkgateways.tunnel_ingress_bytes
(gauge)
Incoming bytes of a tunnel
Shown as byte
azure.network_virtualnetworkgateways.tunnel_ingress_packet_drop_tsmismatch
(count)
Incoming packet drop count from traffic selector mismatch of a tunnel
azure.network_virtualnetworkgateways.tunnel_ingress_packets
(count)
Incoming packet count of a tunnel
azure.powerbidedicated_capacities.query_duration
(gauge)
DAX Query duration in last interval
Shown as millisecond
azure.powerbidedicated_capacities.query_pool_job_queue_length
(count)
Number of jobs in the queue of the query thread pool.
azure.storage.availability
(gauge)
The percentage of availability for the storage service or the specified API operation.
Shown as percent
azure.storage.egress
(gauge)
The amount of egress data, in bytes.
Shown as byte
azure.storage.ingress
(gauge)
The amount of ingress data, in bytes.
Shown as byte
azure.storage.success_e2_e_latency
(gauge)
The average end-to-end latency of successful requests made to a storage service or the specified API operation, in milliseconds.
Shown as millisecond
azure.storage.success_server_latency
(gauge)
The average latency used by Azure Storage to process a successful request, in milliseconds.
Shown as millisecond
azure.storage.transactions
(count)
The number of requests made to a storage service or the specified API operation.
azure.storage.used_capacity
(gauge)
Account used capacity
Shown as byte
azure.usage.remaining_api_calls
(gauge)
The number of remaining api calls until a rate limit is hit

Events

The Azure integration automatically collects Azure Service Health events. To view these in Datadog, navigate to the Event explorer and filter for the Azure Service Health namespace.

Service Checks

The Azure integration does not include any service checks.

Tags

Azure integration metrics, events, and service checks receive the following tags in addition to tags defined in your Azure environments:

IntegrationNamespaceDatadog Tag Keys
All Azure integrationsAllcloud_provider, region, kind, type, name, resource_group, tenant_name, subscription_name, subscription_id, status (if applicable)
Azure VM integrationsazure.vm.*host, size, operating_system, availability_zone
Azure App Service Plansazure.web_serverfarms.*per_site_scaling, plan_size, plan_tier, operating_system
Azure App Services Web Apps & Functionsazure.app_services.*, azure.functions.*operating_system, server_farm_id, reserved, usage_state, fx_version (linux web apps only), php_version, dot_net_framework_version, java_version, node_version, python_version
Azure SQL DBazure.sql_servers_databases.*license_type, max_size_mb, server_name, role, zone_redundant.
For replication Links only: state primary_server_name primary_server_region secondary_server_name secondary_server_region
Azure Load Balancerazure.network_loadbalancers.*sku_name
Azure Usage and Quotaazure.usage.*usage_category, usage_name

Troubleshooting

See the Azure Troubleshooting guide.

Still need help? Contact Datadog support.

Further Reading

Additional helpful documentation, links, and articles: