Skip to content

Commit df37733

Browse files
Merge pull request #312491 from sethmanheim/iotfrsh3-2
IoT Edge and Ops freshness
2 parents d493840 + b32fa0e commit df37733

10 files changed

Lines changed: 296 additions & 304 deletions

articles/iot-edge/configure-device.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ The **hostname**, **parent_hostname**, **trust_bundle_cert**, **allow_elevated_d
2626

2727
### Hostname
2828

29-
To enable gateway discovery, every IoT Edge gateway (parent) device needs to specify a hostname parameter that its child devices use to find it on the local network. The *edgeHub* module also uses the hostname parameter to match with its server certificate. For more information, see [Why does EdgeGateway need to be told about its own hostname?](iot-edge-certs.md#why-does-edgegateway-need-to-be-told-about-its-own-hostname)
29+
To enable gateway discovery, every IoT Edge gateway (parent) device needs to specify a hostname parameter that its child devices use to find it on the local network. The *edgeHub* module also uses the hostname parameter to match with its server certificate. For more information, see [Why does EdgeGateway need to be told about its own hostname?](iot-edge-certs.md#why-does-edgegateway-need-to-know-its-own-hostname)
3030

3131
> [!NOTE]
3232
> When the hostname value isn't set, IoT Edge attempts to find it automatically. However, clients in the network might not be able to discover the device if it isn't set.

articles/iot-edge/how-to-access-built-in-metrics.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Access built-in metrics from IoT Edge runtime components to monitor
44
#customer intent: As a system administrator, I want to access built-in metrics in Azure IoT Edge so that I can monitor and understand the health of my IoT Edge devices.
55
author: sethmanheim
66
ms.author: sethm
7-
ms.date: 02/20/2026
7+
ms.date: 03/02/2026
88
ms.topic: concept-article
99
ms.service: azure-iot-edge
1010
services: iot-edge
@@ -18,9 +18,9 @@ The IoT Edge runtime components, IoT Edge hub, and IoT Edge agent, produce built
1818

1919
Use your own solution to access these metrics, or use the [metrics-collector module](https://mcr.microsoft.com/artifact/mar/azureiotedge-metrics-collector/tags), which collects the built-in metrics and sends them to Azure Monitor or Azure IoT Hub. For more information, see [Collect and transport metrics](how-to-collect-and-transport-metrics.md).
2020

21-
Metrics are exposed by default on **port 9600** of the **edgeHub** and **edgeAgent** modules (`http://edgeHub:9600/metrics` and `http://edgeAgent:9600/metrics`). They aren't mapped to the host by default.
21+
By default, the **edgeHub** and **edgeAgent** modules expose metrics on **port 9600** (`http://edgeHub:9600/metrics` and `http://edgeAgent:9600/metrics`). The metrics aren't mapped to the host by default.
2222

23-
Access metrics from the host by exposing and mapping the metrics port in the module's `createOptions`. The following example maps the default metrics port to port 9601 on the host:
23+
To access metrics from the host, expose and map the metrics port in the module's `createOptions`. The following example maps the default metrics port to port 9601 on the host:
2424

2525
```json
2626
{
@@ -42,9 +42,9 @@ Access metrics from the host by exposing and mapping the metrics port in the mod
4242
Choose different and unique host port numbers when mapping both the edgeHub and edgeAgent metrics endpoints.
4343

4444
> [!NOTE]
45-
> The environment variable `httpSettings__enabled` must not be set to `false` for built-in metrics to be available for collection.
45+
> You must set the environment variable `httpSettings__enabled` to `true` for collection of built-in metrics.
4646
>
47-
> Environment variables that can be used to disable metrics are listed in the [azure/iotedge repo doc](https://github.com/Azure/iotedge/blob/main/doc/EnvironmentVariables.md).
47+
> For more information about environment variables that can disable metrics, see the [azure/iotedge repo doc](https://github.com/Azure/iotedge/blob/main/doc/EnvironmentVariables.md).
4848
4949
## Available metrics
5050

@@ -54,7 +54,7 @@ Metrics include tags that identify the nature of the metric being collected. All
5454
|-|-|
5555
| iothub | The hub the device communicates with |
5656
| edge_device | The ID of the current device |
57-
| instance_number | A GUID representing the current runtime. On restart, all metrics are reset. This GUID makes it easier to reconcile restarts. |
57+
| instance_number | A GUID representing the current runtime. On restart, all metrics reset. This GUID makes it easier to reconcile restarts. |
5858

5959
The Prometheus exposition format includes four core metric types: counter, gauge, histogram, and summary. For more information about the different metric types, see the [Prometheus metric types documentation](https://prometheus.io/docs/concepts/metric_types/).
6060

@@ -64,10 +64,10 @@ The **edgeHub** module generates the following metrics:
6464

6565
| Name | Dimensions | Description |
6666
|-|-|-|
67-
| `edgehub_gettwin_total` | `source` (operation source)<br> `id` (module ID) | Type: counter<br> Total number of GetTwin calls |
68-
| `edgehub_messages_received_total` | `route_output` (output that sent message)<br> `id` | Type: counter<br> Total number of messages received from clients |
69-
| `edgehub_messages_sent_total` | `from` (message source)<br> `to` (message destination)<br>`from_route_output`<br> `to_route_input` (message destination input)<br> `priority` (message priority to destination) | Type: counter<br> Total number of messages sent to clients or upstream<br> `to_route_input` is empty when `to` is $upstream |
70-
| `edgehub_reported_properties_total` | `target`(update target)<br> `id` | Type: counter<br> Total reported property updates calls |
67+
| `edgehub_gettwin_total` | `source` (operation source)<br> `id` (module ID) | Type: counter<br> Total number of GetTwin calls. |
68+
| `edgehub_messages_received_total` | `route_output` (output that sent message)<br> `id` | Type: counter<br> Total number of messages received from clients. |
69+
| `edgehub_messages_sent_total` | `from` (message source)<br> `to` (message destination)<br>`from_route_output`<br> `to_route_input` (message destination input)<br> `priority` (message priority to destination) | Type: counter<br> Total number of messages sent to clients or upstream<br> `to_route_input` is empty when `to` is $upstream. |
70+
| `edgehub_reported_properties_total` | `target`(update target)<br> `id` | Type: counter<br> Total reported property updates calls. |
7171
| `edgehub_message_size_bytes` | `id`<br> | Type: summary<br> Message size from clients<br> Values might be reported as `NaN` if no new measurements are reported for 10 minutes. For the `summary` type, corresponding `_count` and `_sum` counters are emitted. |
7272
| `edgehub_gettwin_duration_seconds` | `source` <br> `id` | Type: summary<br> Time taken for get twin operations |
7373
| `edgehub_message_send_duration_seconds` | `from`<br> `to`<br> `from_route_output`<br> `to_route_input` | Type: summary<br> Time taken to send a message |
@@ -106,13 +106,13 @@ The **edgeAgent** module generates the following metrics:
106106
| `edgeAgent_total_disk_space_bytes` | `disk_name`, `disk_filesystem`, `disk_filetype`| Type: gauge<br> Size of the disk |
107107
| `edgeAgent_used_memory_bytes` | `module_name` | Type: gauge<br> Amount of RAM used by all processes |
108108
| `edgeAgent_total_memory_bytes` | `module_name` | Type: gauge<br> RAM available |
109-
| `edgeAgent_used_cpu_percent` | `module_name` | Type: histogram<br> Percent of cpu used by all processes |
110-
| `edgeAgent_created_pids_total` | `module_name` | Type: gauge<br> The number of processes or threads the container has created |
109+
| `edgeAgent_used_cpu_percent` | `module_name` | Type: histogram<br> Percent of CPU used by all processes |
110+
| `edgeAgent_created_pids_total` | `module_name` | Type: gauge<br> The number of processes or threads the container creates |
111111
| `edgeAgent_total_network_in_bytes` | `module_name` | Type: gauge<br> The number of bytes received from the network |
112112
| `edgeAgent_total_network_out_bytes` | `module_name` | Type: gauge<br> The number of bytes sent to network |
113113
| `edgeAgent_total_disk_read_bytes` | `module_name` | Type: gauge<br> The number of bytes read from the disk |
114114
| `edgeAgent_total_disk_write_bytes` | `module_name` | Type: gauge<br> The number of bytes written to disk |
115-
| `edgeAgent_metadata` | `edge_agent_version`, `experimental_features`, `host_information` | Type: gauge<br> General metadata about the device. The value is always 0, and information is encoded in the tags. Note that `experimental_features` and `host_information` are JSON objects. `host_information` looks like ```{"OperatingSystemType": "linux", "Architecture": "x86_64", "Version": "1.2.7", "Provisioning": {"Type": "dps.tpm", "DynamicReprovisioning": false, "AlwaysReprovisionOnStartup": false}, "ServerVersion": "20.10.11+azure-3", "KernelVersion": "5.11.0-1027-azure", "OperatingSystem": "Ubuntu 20.04.4 LTS", "NumCpus": 2, "Virtualized": "yes"}```. Note `ServerVersion` is the Docker version and `Version` is the IoT Edge security daemon version. |
115+
| `edgeAgent_metadata` | `edge_agent_version`, `experimental_features`, `host_information` | Type: gauge<br> General metadata about the device. The value is always 0, and the tags encode the information. Note that `experimental_features` and `host_information` are JSON objects. `host_information` looks like ```{"OperatingSystemType": "linux", "Architecture": "x86_64", "Version": "1.2.7", "Provisioning": {"Type": "dps.tpm", "DynamicReprovisioning": false, "AlwaysReprovisionOnStartup": false}, "ServerVersion": "20.10.11+azure-3", "KernelVersion": "5.11.0-1027-azure", "OperatingSystem": "Ubuntu 20.04.4 LTS", "NumCpus": 2, "Virtualized": "yes"}```. Note `ServerVersion` is the Docker version and `Version` is the IoT Edge security daemon version. |
116116

117117
## Next steps
118118

articles/iot-edge/how-to-explore-curated-visualizations.md

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Explore curated visualizations in Azure IoT Edge
33
description: Use Azure workbooks to visualize and explore IoT Edge built-in metrics
44
author: sethmanheim
55
ms.author: sethm
6-
ms.date: 05/08/2025
6+
ms.date: 03/03/2026
77
ms.topic: concept-article
88
ms.service: azure-iot-edge
99
services: iot-edge
@@ -13,35 +13,33 @@ services: iot-edge
1313

1414
[!INCLUDE [iot-edge-version-all-supported](includes/iot-edge-version-all-supported.md)]
1515

16-
Visually explore metrics collected from IoT Edge devices using Azure Monitor workbooks. Curated monitoring workbooks for IoT Edge devices are available as public templates:
16+
You can visually explore metrics collected from IoT Edge devices by using Azure Monitor workbooks. Curated monitoring workbooks for IoT Edge devices are available as public templates:
1717

18-
* For devices connected to IoT Hub, from the **IoT Hub** page in the Azure portal, navigate to the **Workbooks** page in the **Monitoring** section.
19-
* For devices connected to IoT Central, from the **IoT Central** page in the Azure portal, navigate to the **Workbooks** page in the **Monitoring** section.
18+
* For devices connected to IoT Hub, from the **IoT Hub** page in the Azure portal, go to the **Workbooks** page in the **Monitoring** section.
19+
* For devices connected to IoT Central, from the **IoT Central** page in the Azure portal, go to the **Workbooks** page in the **Monitoring** section.
2020

21-
Curated workbooks use [built-in metrics](how-to-access-built-in-metrics.md) from IoT Edge runtime. Metrics must first be [ingested](how-to-collect-and-transport-metrics.md) into a Log Analytics workspace. These views don't require metrics instrumentation from workload modules.
21+
Curated workbooks use [built-in metrics](how-to-access-built-in-metrics.md) from the IoT Edge runtime. You must first [ingest](how-to-collect-and-transport-metrics.md) metrics into a Log Analytics workspace. These views don't require metrics instrumentation from workload modules.
2222

2323
## Access curated workbooks
2424

25-
Azure Monitor workbooks for IoT are templates that let you visualize device metrics. You can customize them to fit your solution.
25+
Azure Monitor workbooks for IoT are templates that you use to visualize device metrics. You can customize them to fit your solution.
2626

2727
Follow these steps to access the curated workbooks:
2828

2929
1. Sign in to the [Azure portal](https://portal.azure.com), and go to your IoT Hub or IoT Central application.
30-
3130
1. Select **Workbooks** from the **Monitoring** section of the menu.
32-
3331
1. Choose a workbook to explore from the list of public templates:
3432

35-
* **Fleet View**: Monitor your fleet of devices across multiple IoT Hubs or Central Apps, and drill into specific devices for a health snapshot.
33+
* **Fleet View**: Monitor your fleet of devices across multiple IoT Hubs or Central Apps, and drill into specific devices for a health snapshot.
3634

37-
* **Device Details**: Visualize device details around messaging, modules, and host components on an IoT Edge device.
35+
* **Device Details**: Visualize device details around messaging, modules, and host components on an IoT Edge device.
3836

39-
* **Alerts**: View triggered [alerts](how-to-create-alerts.md) for devices across multiple IoT resources.
37+
* **Alerts**: View triggered [alerts](how-to-create-alerts.md) for devices across multiple IoT resources.
4038

41-
See the following sections for a preview of the data and visualizations each workbook offers.
39+
For a preview of the data and visualizations each workbook offers, see the following sections.
4240

43-
>[!NOTE]
44-
> The screen captures that follow may not reflect the latest workbook design.
41+
> [!NOTE]
42+
> The screen captures that follow might not reflect the latest workbook design.
4543
4644
## Fleet view workbook
4745

@@ -63,7 +61,7 @@ The device details workbook has three views:
6361

6462
Switch between views by selecting the tabs at the top of the workbook.
6563

66-
The device details workbook also integrates with the IoT Edge portal-based troubleshooting experience. You can pull **Live logs** from your device using this feature. Access this experience by selecting the **Troubleshoot \<device name> live** button above the workbook.
64+
The device details workbook also integrates with the IoT Edge portal-based troubleshooting experience. You can pull **Live logs** from your device by using this feature. Access this experience by selecting the **Troubleshoot \<device name\> live** button above the workbook.
6765

6866
# [Messaging](#tab/messaging)
6967

@@ -92,11 +90,11 @@ The **Modules** view shows metrics collected from the edgeAgent module, which re
9290

9391
:::image type="content" source="./media/how-to-explore-curated-visualizations/how-to-explore-host-details.gif" alt-text="The host section of the device details workbook." lightbox="./media/how-to-explore-curated-visualizations/how-to-explore-host-details.gif":::
9492

95-
The **Host** view shows metrics from the edgeAgent module. It includes information like:
93+
The **Host** view shows metrics from the **edgeAgent** module. It includes information like:
9694

9795
* Host component version information
9896
* Uptime
99-
* CPU, memory, and disk space use at the host-level
97+
* CPU, memory, and disk space use at the host level
10098

10199
# [Live logs](#tab/livelogs)
102100

@@ -116,13 +114,12 @@ Select a severity row to view alert details. The **Alert rule** link opens the a
116114

117115
## Customize workbooks
118116

119-
[Azure Monitor workbooks](/azure/azure-monitor/visualize/workbooks-overview) are customizable. You can edit the public templates to suit your requirements. All the visualizations are driven by resource-centric [Kusto Query Language](/azure/data-explorer/kusto/query/) queries on the [InsightsMetrics](/azure/azure-monitor/reference/tables/insightsmetrics) table.
117+
You can customize [Azure Monitor workbooks](/azure/azure-monitor/visualize/workbooks-overview). Edit the public templates to suit your requirements. All the visualizations come from resource-centric [Kusto Query Language](/azure/data-explorer/kusto/query/) queries on the [InsightsMetrics](/azure/azure-monitor/reference/tables/insightsmetrics) table.
120118

121119
To customize a workbook, enter editing mode. Select the **Edit** button in the workbook's menu bar. Curated workbooks use workbook groups extensively. You might need to select **Edit** on several nested groups to view a visualization query.
122120

123121
Save your changes as a new workbook. You can [share](/azure/azure-monitor/visualize/workbooks-overview#access-control) the saved workbook with your team or [deploy them programmatically](/azure/azure-monitor/visualize/workbooks-automate) as part of your organization's resource deployments.
124122

125-
126123
## Next steps
127124

128125
Customize your monitoring solution with [alert rules](how-to-create-alerts.md) and [metrics from custom modules](how-to-add-custom-metrics.md).

0 commit comments

Comments
 (0)