You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/iot-operations/connect-to-cloud/open-telemetry.md
+30-30Lines changed: 30 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ ai-usage: ai-assisted
18
18
19
19
OpenTelemetry (OTEL) data flow endpoints send metrics and logs to OpenTelemetry collectors, which can then forward the data to observability platforms like Grafana dashboards and Azure Monitor. You can configure the endpoint settings, authentication, Transport Layer Security (TLS), and batching options.
20
20
21
-
This guide describes how to create and configure an OpenTelemetry dataflow endpoint to export asset data from your MQTT broker to an OpenTelemetry collector. The article describes the *OTEL dataflow endpoint*, which routes asset data from the MQTT broker to external OTEL collectors. You can also send asset data to observability endpoints using the OpenTelemetry dataflow endpoint if you want to route telemetry to platforms like Grafana or Azure Monitor.
21
+
This article describes how to create and configure an OpenTelemetry dataflow endpoint to export asset data from your MQTT broker to an OpenTelemetry collector. The article describes the *OTEL dataflow endpoint*, which routes asset data from the MQTT broker to external OTEL collectors. You can also send asset data to observability endpoints using the OpenTelemetry dataflow endpoint if you want to route telemetry to platforms like Grafana or Azure Monitor.
22
22
23
23
This feature is for routing device and asset data, not for collecting Azure IoT Operations component health metrics or logs. For cluster observability (monitoring the health of the MQTT broker, dataflow components, and so on), see [Configure observability and monitoring](../configure-observability-monitoring/howto-configure-observability.md).
24
24
@@ -39,7 +39,7 @@ This feature is for routing device and asset data, not for collecting Azure IoT
39
39
40
40
## OpenTelemetry endpoint overview
41
41
42
-
OpenTelemetry endpoints enable you to export device and asset telemetry data from Azure IoT Operations dataflows to OpenTelemetry collectors by using the OpenTelemetry Protocol (OTLP). This allows you to integrate device and system telemetry into your existing observability infrastructure.
42
+
By using OpenTelemetry endpoints, you can export device and asset telemetry data from Azure IoT Operations dataflows to OpenTelemetry collectors by using the OpenTelemetry Protocol (OTLP). By using this feature, you can integrate device and system telemetry into your existing observability infrastructure.
43
43
44
44
In Azure IoT Operations, OpenTelemetry lets you:
45
45
@@ -61,7 +61,7 @@ The following are common scenarios for using OpenTelemetry endpoints in Azure Io
61
61
62
62
### Data format requirements
63
63
64
-
OpenTelemetry endpoints require data to conform to a specific JSON schema with either a `metrics` array, a `logs` array, or both. Messages that don't conform to this schema are dropped and acknowledged to prevent message loss.
64
+
OpenTelemetry endpoints require data to conform to a specific JSON schema with either a `metrics` array, a `logs` array, or both. The system drops and acknowledges messages that don't conform to this schema to prevent message loss.
65
65
66
66
The JSON payload must use this top-level structure:
67
67
@@ -72,9 +72,9 @@ The JSON payload must use this top-level structure:
72
72
}
73
73
```
74
74
75
-
At least one `metrics` or `logs` value must be present.
75
+
You must include at least one `metrics` or `logs` value.
76
76
77
-
All incoming messages are validated against the required schema. Messages that fail validation are dropped, acknowledged back to the broker, and logged for troubleshooting. Common validation failures include missing required fields, invalid data types, unsupported metric types or log levels, and malformed timestamps. If MQTT messages include expiration timestamps, expired messages are filtered out before processing.
77
+
The system validates all incoming messages against the required schema. It drops and acknowledges messages that fail validation back to the broker, and logs the errors for troubleshooting. Common validation failures include missing required fields, invalid data types, unsupported metric types or log levels, and malformed timestamps. If MQTT messages include expiration timestamps, the system filters out expired messages before processing.
78
78
79
79
#### Metrics format
80
80
@@ -177,7 +177,7 @@ The following log levels are supported:
177
177
178
178
## Create OpenTelemetry endpoint
179
179
180
-
You can create an OpenTelemetry dataflow endpoint using the IoT Operations experience, Bicep, or Kubernetes.
180
+
You can create an OpenTelemetry dataflow endpoint by using the IoT Operations experience, Bicep, or Kubernetes.
181
181
182
182
The dataflow endpoint appears in the list of available dataflow endpoints in the Azure IoT Operations experience. This addition ensures that you can easily identify and select the OpenTelemetry endpoint when configuring telemetry pipelines, promoting better integration and visibility across monitoring tools. By surfacing the OTEL endpoint along with other dataflow options, you can route telemetry data and maintain consistent observability standards across assets more efficiently.
183
183
@@ -190,23 +190,23 @@ The dataflow endpoint appears in the list of available dataflow endpoints in the
190
190
191
191
:::image type="content" source="media/open-telemetry/create-new-open-telemetry.png" alt-text="Screenshot of the operations experience interface showing the option to create a new OpenTelemetry endpoint":::
192
192
193
-
1. In the **Create new data flow endpoint: Open Telemetry** pane, select the **Basic** configuration tab and provide the following information:
193
+
1. In the **Create new data flow endpoint: Open Telemetry** pane, select the **Basic** configuration tab and enter the following information:
194
194
195
195
-**Name**: A unique name for the endpoint.
196
196
-**Host**: The OpenTelemetry collector endpoint in the format `<host>:<port>`. For example, `otel-collector.monitoring.svc.cluster.local:4317`.
197
197
-**Authentication method**: Choose one of the following authentication methods:
198
-
-**Kubernetes service account token**: Uses Kubernetes service account tokens to authenticate with the OpenTelemetry collector. Provide the audience value for your OpenTelemetry collector configuration. For more information, see [Service Account Token (SAT)](#service-account-token-sat).
198
+
-**Kubernetes service account token**: Uses Kubernetes service account tokens to authenticate with the OpenTelemetry collector. Enter the audience value for your OpenTelemetry collector configuration. For more information, see [Service Account Token (SAT)](#service-account-token-sat).
199
199
-**Anonymous**: Use when the OpenTelemetry collector doesn't require authentication.
200
-
-**X509 certificate**: Uses client certificates for mutual TLS authentication. Provide the name of a Kubernetes secret containing your client certificate. For more information, see [X.509 certificate](#x509-certificate).
200
+
-**X509 certificate**: Uses client certificates for mutual TLS authentication. Enter the name of a Kubernetes secret containing your client certificate. For more information, see [X.509 certificate](#x509-certificate).
201
201
202
202
:::image type="content" source="media/open-telemetry/create-new-open-telemetry-basic.png" alt-text="Screenshot of the operations experience interface showing the basic tab in create a new OpenTelemetry endpoint." lightbox="media/open-telemetry/create-new-open-telemetry-basic.png":::
203
203
204
-
1. Select the **Advanced** configuration tab and provide the following information:
204
+
1. Select the **Advanced** configuration tab and enter the following information:
205
205
206
-
-**Batching latency (in seconds)**: Maximum time to wait before sending a batch. Default is 5 seconds.
207
-
-**Message count**: Maximum number of messages in a batch. Default is 100000 messages.
206
+
-**Batching latency (in seconds)**: Maximum time to wait before sending a batch. The default value is 5 seconds.
207
+
-**Message count**: Maximum number of messages in a batch. The default value is 100,000 messages.
208
208
-**TLS mode**: Choose one of the following TLS modes:
209
-
-**Enabled**: Enable TLS for secure communication with the OpenTelemetry collector. Provide the name of a Kubernetes ConfigMap containing your trusted CA certificate.
209
+
-**Enabled**: Enable TLS for secure communication with the OpenTelemetry collector. Enter the name of a Kubernetes ConfigMap containing your trusted CA certificate.
210
210
-**Disabled**: Disables TLS.
211
211
-**Trusted CA certificate ConfigMap name**: The name of a Kubernetes ConfigMap containing your trusted CA certificate.
212
212
@@ -308,7 +308,7 @@ This section describes the configuration options for OpenTelemetry data flow end
308
308
309
309
### Host
310
310
311
-
The `host` property specifies the OpenTelemetry collector endpoint URL. Include the protocol (`http://` or `https://`) and port number.
311
+
Specify the OpenTelemetry collector endpoint URL in the `host` property. Include the protocol (`http://` or `https://`) and port number.
OpenTelemetry endpoints support several authentication methods to connect securely to collectors.
320
+
OpenTelemetry endpoints support several authentication methods to securely connect to collectors.
321
321
322
322
#### Service Account Token (SAT)
323
323
@@ -334,7 +334,7 @@ Replace `<OTEL_AUDIENCE>` with the audience value for your OpenTelemetry collect
334
334
335
335
> [!IMPORTANT]
336
336
> You can only choose the authentication method when creating a new OpenTelemetry data flow endpoint. You can't change the authentication method after the OpenTelemetry data flow endpoint is created.
337
-
> If you want to change the authentication method of an existing data flow, delete the original data flow and create a new one with the new authentication method.
337
+
> To change the authentication method for an existing data flow, delete the original data flow and create a new one with the new authentication method.
1. In the **Create new data flow endpoint: Open Telemetry** pane, under the **Basic** configuration tab, select **X509 certificate** as the authentication method.
368
-
1. Provide the following information from Azure Key Vault:
367
+
1. In **Create new data flow endpoint: Open Telemetry**, under the **Basic** configuration tab, select **X509 certificate** as the authentication method.
368
+
1. Enter the following information from Azure Key Vault:
369
369
370
370
- **Synced secret name**: The name of a Kubernetes secret containing your client certificate.
371
371
- **X509 client certificate**: The client certificate.
Anonymous authentication is used when the OpenTelemetry collector doesn't require authentication.
410
+
Use anonymous authentication when the OpenTelemetry collector doesn't require authentication.
411
411
412
412
# [Operations experience](#tab/portal)
413
413
@@ -440,8 +440,8 @@ Configure Transport Layer Security (TLS) settings for secure communication with
440
440
441
441
# [Operations experience](#tab/portal)
442
442
443
-
1. In the **Create new data flow endpoint: Open Telemetry** pane, under the **Advanced** configuration tab, select **Enabled** as the TLS mode.
444
-
1. In **Trusted CA certificate config map name**, provide the name of a Kubernetes ConfigMap containing your trusted CA certificate.
443
+
1. In **Create new data flow endpoint: Open Telemetry**, under the **Advanced** configuration tab, select **Enabled** as the TLS mode.
444
+
1. In **Trusted CA certificate config map name**, enter the name of a Kubernetes ConfigMap that contains your trusted CA certificate.
445
445
446
446
# [Bicep](#tab/bicep)
447
447
@@ -466,7 +466,7 @@ tls:
466
466
467
467
# [Operations experience](#tab/portal)
468
468
469
-
In the **Create new data flow endpoint: Open Telemetry** pane, under the **Advanced** configuration tab, select **Disabled** as the TLS mode.
469
+
In **Create new data flow endpoint: Open Telemetry**, under the **Advanced** configuration tab, select **Disabled** as the TLS mode.
470
470
471
471
# [Bicep](#tab/bicep)
472
472
@@ -491,10 +491,10 @@ Configure batching settings to optimize performance by grouping multiple message
491
491
492
492
# [Operations experience](#tab/portal)
493
493
494
-
In the **Create new data flow endpoint: Open Telemetry** pane, under the **Advanced** configuration tab, provide the following batching settings:
494
+
In the **Create new data flow endpoint: Open Telemetry** pane, under the **Advanced** configuration tab, enter the following batching settings:
495
495
496
-
- **Batching latency (in seconds)**: Maximum time to wait before sending a batch. Default is 5 seconds.
497
-
- **Message count**: Maximum number of messages in a batch. Default is 100000 messages.
496
+
- **Batching latency (in seconds)**: Maximum time to wait before sending a batch. The default value is 5 seconds.
497
+
- **Message count**: Maximum number of messages in a batch. The default value is 100,000 messages.
498
498
499
499
# [Bicep](#tab/bicep)
500
500
@@ -527,7 +527,7 @@ batching:
527
527
528
528
## Use OpenTelemetry endpoints in dataflow graphs
529
529
530
-
OTEL dataflow endpoints can be selected as destinations in modern dataflow graphs, which lets metrics and logs be routed directly to OTEL‑compatible backends. OTEL endpoints aren't available as destinations in classic dataflows. This restriction ensures compatibility with backends that don't support OTEL endpoints.
530
+
Select OTEL dataflow endpoints as destinations in modern dataflow graphs. By using this feature, you can route metrics and logs directly to OTEL‑compatible backends. OTEL endpoints aren't available as destinations in classic dataflows. This restriction ensures compatibility with backends that don't support OTEL endpoints.
@@ -539,7 +539,7 @@ This section provides a step-by-step walkthrough to create and configure an OTEL
539
539
540
540
### Step 1: Create a new OTEL dataflow endpoint
541
541
542
-
When you create a new dataflow endpoint, select **OpenTelemetry (OTEL)** as the endpoint type, and ensure the host is prefixed with `http://`.
542
+
When you create a new dataflow endpoint, select **OpenTelemetry (OTEL)** as the endpoint type. Make sure the host is prefixed with `http://`.
543
543
544
544
:::image type="content" source="media/open-telemetry/create-dataflow.png" alt-text="Screenshot showing configuration of new endpoint." lightbox="media/open-telemetry/create-dataflow.png":::
Select **OTEL** as the destination, and fill in the required details.
563
+
Select **OTEL** as the destination, and enter the required details.
564
564
565
565
:::image type="content" source="media/open-telemetry/destination.png" alt-text="Screenshot showing otel as the destination." lightbox="media/open-telemetry/destination.png":::
566
566
@@ -572,7 +572,7 @@ Select **OTEL** as the destination, and fill in the required details.
572
572
573
573
OpenTelemetry endpoints validate incoming messages against the required schema. The system drops invalid messages and acknowledges them to prevent message loss in the dataflow pipeline.
574
574
575
-
Common validation errors:
575
+
Common validation errors include:
576
576
- Missing required fields (`name`, `type`, and `value` for metrics; `value` and `level` for logs)
0 commit comments