Supported metrics for Microsoft.Devices/IotHubs

The following table lists the metrics available for the Microsoft.Devices/IotHubs resource type.

Table headings

  • Metric - The metric display name as it appears in the Azure portal.
  • Name in Rest API - Metric name as referred to in the REST API.
  • Advanced platform metrics - A premium, paid tier of platform metrics in Azure Monitor that provide more granular observability for Azure resources.
  • Unit - Unit of measure.
  • Aggregation - The default aggregation type. Valid values: Average, Minimum, Maximum, Total, Count.
  • Dimensions - Dimensions available for the metric.
  • Time Grains - Intervals at which the metric is sampled. For example, PT1M indicates that the metric is sampled every minute, PT30M every 30 minutes, PT1H every hour, and so on.
  • DS Export -S Whether the metric is exportable to Azure Monitor Logs via Diagnostic Settings.

For information on exporting metrics, see - Create diagnostic settings in Azure Monitor.

For information on metric retention, see Azure Monitor Metrics overview.

For a list of supported logs, see Supported log categories - Microsoft.Devices/IotHubs

Metric Name in REST API Advanced platform metrics Unit Aggregation Dimensions Time Grains DS Export
C2D messages abandoned

Number of cloud-to-device messages abandoned by the device
c2d.commands.egress.abandon.success No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
C2D message deliveries completed

Number of cloud-to-device message deliveries completed successfully by the device
c2d.commands.egress.complete.success No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
C2D messages rejected

Number of cloud-to-device messages rejected by the device
c2d.commands.egress.reject.success No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Failed direct method invocations

The count of all failed direct method calls.
c2d.methods.failure No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Request size of direct method invocations

The average, min, and max of all successful direct method requests.
c2d.methods.requestSize No Bytes Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Response size of direct method invocations

The average, min, and max of all successful direct method responses.
c2d.methods.responseSize No Bytes Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Successful direct method invocations

The count of all successful direct method calls.
c2d.methods.success No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Failed twin reads from back end

The count of all failed back-end-initiated twin reads.
c2d.twin.read.failure No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Response size of twin reads from back end

The average, min, and max of all successful back-end-initiated twin reads.
c2d.twin.read.size No Bytes Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Successful twin reads from back end

The count of all successful back-end-initiated twin reads.
c2d.twin.read.success No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Failed twin updates from back end

The count of all failed back-end-initiated twin updates.
c2d.twin.update.failure No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Size of twin updates from back end

The average, min, and max size of all successful back-end-initiated twin updates.
c2d.twin.update.size No Bytes Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Successful twin updates from back end

The count of all successful back-end-initiated twin updates.
c2d.twin.update.success No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
C2D Messages Expired

Number of expired cloud-to-device messages
C2DMessagesExpired No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Configuration Metrics

Metrics for Configuration Operations
configurations No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Successful connects

Successful connections to your IoTHub
connect.success No Count Total (Sum) ApiType, Protocol, TLSVersion, TLSCipher PT1M Yes
Connected devices

Number of devices connected to your IoT hub
connectedDeviceCount No Count Average, Maximum, Minimum <none> PT1M No
Routing: messages delivered to messages/events

The number of times IoT Hub routing successfully delivered messages to the built-in endpoint (messages/events).
d2c.endpoints.egress.builtIn.events No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Routing: messages delivered to Event Hub

The number of times IoT Hub routing successfully delivered messages to Event Hub endpoints.
d2c.endpoints.egress.eventHubs No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Routing: messages delivered to Service Bus Queue

The number of times IoT Hub routing successfully delivered messages to Service Bus queue endpoints.
d2c.endpoints.egress.serviceBusQueues No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Routing: messages delivered to Service Bus Topic

The number of times IoT Hub routing successfully delivered messages to Service Bus topic endpoints.
d2c.endpoints.egress.serviceBusTopics No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Routing: messages delivered to storage

The number of times IoT Hub routing successfully delivered messages to storage endpoints.
d2c.endpoints.egress.storage No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Routing: blobs delivered to storage

The number of times IoT Hub routing delivered blobs to storage endpoints.
d2c.endpoints.egress.storage.blobs No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Routing: data delivered to storage

The amount of data (bytes) IoT Hub routing delivered to storage endpoints.
d2c.endpoints.egress.storage.bytes No Bytes Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Routing: message latency for messages/events

The average latency (milliseconds) between message ingress to IoT Hub and telemetry message ingress into the built-in endpoint (messages/events).
d2c.endpoints.latency.builtIn.events No MilliSeconds Average, Minimum, Maximum <none> PT1M Yes
Routing: message latency for Event Hub

The average latency (milliseconds) between message ingress to IoT Hub and message ingress into an Event Hub endpoint.
d2c.endpoints.latency.eventHubs No MilliSeconds Average, Minimum, Maximum <none> PT1M Yes
Routing: message latency for Service Bus Queue

The average latency (milliseconds) between message ingress to IoT Hub and telemetry message ingress into a Service Bus queue endpoint.
d2c.endpoints.latency.serviceBusQueues No MilliSeconds Average, Minimum, Maximum <none> PT1M Yes
Routing: message latency for Service Bus Topic

The average latency (milliseconds) between message ingress to IoT Hub and telemetry message ingress into a Service Bus topic endpoint.
d2c.endpoints.latency.serviceBusTopics No MilliSeconds Average, Minimum, Maximum <none> PT1M Yes
Routing: message latency for storage

The average latency (milliseconds) between message ingress to IoT Hub and telemetry message ingress into a storage endpoint.
d2c.endpoints.latency.storage No MilliSeconds Average, Minimum, Maximum <none> PT1M Yes
Routing: telemetry messages dropped

The number of times messages were dropped by IoT Hub routing due to dead endpoints. This value does not count messages delivered to fallback route as dropped messages are not delivered there.
d2c.telemetry.egress.dropped No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Routing: messages delivered to fallback

The number of times IoT Hub routing delivered messages to the endpoint associated with the fallback route.
d2c.telemetry.egress.fallback No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Routing: telemetry messages incompatible

The number of times IoT Hub routing failed to deliver messages due to an incompatibility with the endpoint. This value does not include retries.
d2c.telemetry.egress.invalid No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Routing: telemetry messages orphaned

The number of times messages were orphaned by IoT Hub routing because they didn't match any routing rules (including the fallback rule).
d2c.telemetry.egress.orphaned No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Routing: telemetry messages delivered

The number of times messages were successfully delivered to all endpoints using IoT Hub routing. If a message is routed to multiple endpoints, this value increases by one for each successful delivery. If a message is delivered to the same endpoint multiple times, this value increases by one for each successful delivery.
d2c.telemetry.egress.success No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Telemetry message send attempts

Number of device-to-cloud telemetry messages attempted to be sent to your IoT hub
d2c.telemetry.ingress.allProtocol No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Number of throttling errors

Number of throttling errors due to device throughput throttles
d2c.telemetry.ingress.sendThrottle No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Telemetry messages sent

Number of device-to-cloud telemetry messages sent successfully to your IoT hub
d2c.telemetry.ingress.success No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Failed twin reads from devices

The count of all failed device-initiated twin reads.
d2c.twin.read.failure No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Response size of twin reads from devices

The average, min, and max of all successful device-initiated twin reads.
d2c.twin.read.size No Bytes Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Successful twin reads from devices

The count of all successful device-initiated twin reads.
d2c.twin.read.success No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Failed twin updates from devices

The count of all failed device-initiated twin updates.
d2c.twin.update.failure No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Size of twin updates from devices

The average, min, and max size of all successful device-initiated twin updates.
d2c.twin.update.size No Bytes Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Successful twin updates from devices

The count of all successful device-initiated twin updates.
d2c.twin.update.success No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Total number of messages used

Number of total messages used today
dailyMessageQuotaUsed No Count Average, Minimum, Maximum <none> PT1M Yes
Total device data usage

Bytes transferred to and from any devices connected to IotHub
deviceDataUsage No Bytes Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Total device data usage (preview)

Bytes transferred to and from any devices connected to IotHub
deviceDataUsageV2 No Bytes Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Connected devices (deprecated)

Number of devices connected to your IoT hub
devices.connectedDevices.allProtocol No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Total devices (deprecated)

Number of devices registered to your IoT hub
devices.totalDevices No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Event Grid deliveries

The number of IoT Hub events published to Event Grid. Use the Result dimension for the number of successful and failed requests. EventType dimension shows the type of event (https://aka.ms/ioteventgrid).
EventGridDeliveries No Count Average, Minimum, Maximum, Total (Sum) Result, EventType PT1M Yes
Event Grid latency

The average latency (milliseconds) from when the Iot Hub event was generated to when the event was published to Event Grid. This number is an average between all event types. Use the EventType dimension to see latency of a specific type of event.
EventGridLatency No MilliSeconds Average, Minimum, Maximum EventType PT1M Yes
Failed job cancellations

The count of all failed calls to cancel a job.
jobs.cancelJob.failure No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Successful job cancellations

The count of all successful calls to cancel a job.
jobs.cancelJob.success No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Completed jobs

The count of all completed jobs.
jobs.completed No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Failed creations of method invocation jobs

The count of all failed creation of direct method invocation jobs.
jobs.createDirectMethodJob.failure No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Successful creations of method invocation jobs

The count of all successful creation of direct method invocation jobs.
jobs.createDirectMethodJob.success No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Failed creations of twin update jobs

The count of all failed creation of twin update jobs.
jobs.createTwinUpdateJob.failure No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Successful creations of twin update jobs

The count of all successful creation of twin update jobs.
jobs.createTwinUpdateJob.success No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Failed jobs

The count of all failed jobs.
jobs.failed No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Failed calls to list jobs

The count of all failed calls to list jobs.
jobs.listJobs.failure No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Successful calls to list jobs

The count of all successful calls to list jobs.
jobs.listJobs.success No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Failed job queries

The count of all failed calls to query jobs.
jobs.queryJobs.failure No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Successful job queries

The count of all successful calls to query jobs.
jobs.queryJobs.success No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Routing Delivery Message Size in Bytes (preview)

The total size in bytes of messages delivered by IoT hub to an endpoint. You can use the EndpointName and EndpointType dimensions to view the size of the messages in bytes delivered to your different endpoints. The metric value increases for every message delivered, including if the message is delivered to multiple endpoints or if the message is delivered to the same endpoint multiple times.
RoutingDataSizeInBytesDelivered No Bytes Average, Minimum, Maximum, Total (Sum) EndpointType, EndpointName, RoutingSource PT1M Yes
Routing Deliveries (preview)

The number of times IoT Hub attempted to deliver messages to all endpoints using routing. To see the number of successful or failed attempts, use the Result dimension. To see the reason of failure, like invalid, dropped, or orphaned, use the FailureReasonCategory dimension. You can also use the EndpointName and EndpointType dimensions to understand how many messages were delivered to your different endpoints. The metric value increases by one for each delivery attempt, including if the message is delivered to multiple endpoints or if the message is delivered to the same endpoint multiple times.
RoutingDeliveries No Count Average, Minimum, Maximum, Total (Sum) EndpointType, EndpointName, FailureReasonCategory, Result, RoutingSource PT1M Yes
Routing Delivery Latency (preview)

The average latency (milliseconds) between message ingress to IoT Hub and telemetry message ingress into an endpoint. You can use the EndpointName and EndpointType dimensions to understand the latency to your different endpoints.
RoutingDeliveryLatency No MilliSeconds Average, Minimum, Maximum EndpointType, EndpointName, RoutingSource PT1M Yes
Total devices

Number of devices registered to your IoT hub
totalDeviceCount No Count Average, Maximum, Minimum <none> PT1M No
Failed twin queries

The count of all failed twin queries.
twinQueries.failure No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Twin queries result size

The average, min, and max of the result size of all successful twin queries.
twinQueries.resultSize No Bytes Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes
Successful twin queries

The count of all successful twin queries.
twinQueries.success No Count Average, Minimum, Maximum, Total (Sum) <none> PT1M Yes

Next steps