Skip to content

Commit 183f53c

Browse files
committed
DocuMentor
1 parent 4c6ac6f commit 183f53c

1 file changed

Lines changed: 30 additions & 30 deletions

File tree

articles/iot-operations/connect-to-cloud/open-telemetry.md

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ ai-usage: ai-assisted
1818

1919
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.
2020

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.
2222

2323
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).
2424

@@ -39,7 +39,7 @@ This feature is for routing device and asset data, not for collecting Azure IoT
3939

4040
## OpenTelemetry endpoint overview
4141

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.
4343

4444
In Azure IoT Operations, OpenTelemetry lets you:
4545

@@ -61,7 +61,7 @@ The following are common scenarios for using OpenTelemetry endpoints in Azure Io
6161

6262
### Data format requirements
6363

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.
6565

6666
The JSON payload must use this top-level structure:
6767

@@ -72,9 +72,9 @@ The JSON payload must use this top-level structure:
7272
}
7373
```
7474

75-
At least one `metrics` or `logs` value must be present.
75+
You must include at least one `metrics` or `logs` value.
7676

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.
7878

7979
#### Metrics format
8080

@@ -177,7 +177,7 @@ The following log levels are supported:
177177

178178
## Create OpenTelemetry endpoint
179179

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.
181181

182182
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.
183183

@@ -190,23 +190,23 @@ The dataflow endpoint appears in the list of available dataflow endpoints in the
190190

191191
:::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":::
192192

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:
194194

195195
- **Name**: A unique name for the endpoint.
196196
- **Host**: The OpenTelemetry collector endpoint in the format `<host>:<port>`. For example, `otel-collector.monitoring.svc.cluster.local:4317`.
197197
- **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).
199199
- **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).
201201

202202
:::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":::
203203

204-
1. Select the **Advanced** configuration tab and provide the following information:
204+
1. Select the **Advanced** configuration tab and enter the following information:
205205

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.
208208
- **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.
210210
- **Disabled**: Disables TLS.
211211
- **Trusted CA certificate ConfigMap name**: The name of a Kubernetes ConfigMap containing your trusted CA certificate.
212212

@@ -308,7 +308,7 @@ This section describes the configuration options for OpenTelemetry data flow end
308308

309309
### Host
310310

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.
312312

313313
Examples:
314314
- `https://otel-collector.monitoring.svc.cluster.local:4317`
@@ -317,7 +317,7 @@ Examples:
317317

318318
### Authentication
319319

320-
OpenTelemetry endpoints support several authentication methods to connect securely to collectors.
320+
OpenTelemetry endpoints support several authentication methods to securely connect to collectors.
321321

322322
#### Service Account Token (SAT)
323323

@@ -334,7 +334,7 @@ Replace `<OTEL_AUDIENCE>` with the audience value for your OpenTelemetry collect
334334

335335
> [!IMPORTANT]
336336
> 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.
338338
339339
# [Bicep](#tab/bicep)
340340

@@ -364,8 +364,8 @@ X.509 certificate authentication uses client certificates for mutual TLS authent
364364
365365
# [Operations experience](#tab/portal)
366366
367-
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:
369369
370370
- **Synced secret name**: The name of a Kubernetes secret containing your client certificate.
371371
- **X509 client certificate**: The client certificate.
@@ -407,7 +407,7 @@ kubectl create secret tls <X509_SECRET_NAME> \
407407

408408
#### Anonymous authentication
409409

410-
Anonymous authentication is used when the OpenTelemetry collector doesn't require authentication.
410+
Use anonymous authentication when the OpenTelemetry collector doesn't require authentication.
411411

412412
# [Operations experience](#tab/portal)
413413

@@ -440,8 +440,8 @@ Configure Transport Layer Security (TLS) settings for secure communication with
440440
441441
# [Operations experience](#tab/portal)
442442
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.
445445
446446
# [Bicep](#tab/bicep)
447447
@@ -466,7 +466,7 @@ tls:
466466
467467
# [Operations experience](#tab/portal)
468468
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.
470470
471471
# [Bicep](#tab/bicep)
472472
@@ -491,10 +491,10 @@ Configure batching settings to optimize performance by grouping multiple message
491491
492492
# [Operations experience](#tab/portal)
493493
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:
495495
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.
498498
499499
# [Bicep](#tab/bicep)
500500
@@ -527,7 +527,7 @@ batching:
527527

528528
## Use OpenTelemetry endpoints in dataflow graphs
529529

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.
531531

532532
:::image type="content" source="media/open-telemetry/dataflow-graphs.png" alt-text="Screenshot showing dataflow graphs." lightbox="media/open-telemetry/dataflow-graphs.png":::
533533

@@ -539,7 +539,7 @@ This section provides a step-by-step walkthrough to create and configure an OTEL
539539

540540
### Step 1: Create a new OTEL dataflow endpoint
541541

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://`.
543543

544544
:::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":::
545545

@@ -556,11 +556,11 @@ Select **OTEL dataflow graph**:
556556

557557
### Step 3: Configure the OTEL endpoint as the destination
558558

559-
Select the source node and fill in the details. In this example, the temperature metric is selected as the datapoint to send to the OTEL endpoint.
559+
Select the source node and enter the details. In this example, you select the temperature metric as the datapoint to send to the OTEL endpoint.
560560

561561
:::image type="content" source="media/open-telemetry/endpoint-details.png" alt-text="Screenshot showing details screen." lightbox="media/open-telemetry/endpoint-details.png":::
562562

563-
Select **OTEL** as the destination, and fill in the required details.
563+
Select **OTEL** as the destination, and enter the required details.
564564

565565
:::image type="content" source="media/open-telemetry/destination.png" alt-text="Screenshot showing otel as the destination." lightbox="media/open-telemetry/destination.png":::
566566

@@ -572,7 +572,7 @@ Select **OTEL** as the destination, and fill in the required details.
572572

573573
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.
574574

575-
Common validation errors:
575+
Common validation errors include:
576576
- Missing required fields (`name`, `type`, and `value` for metrics; `value` and `level` for logs)
577577
- Invalid metric types or log levels
578578
- Non-numeric values in metric `value` fields

0 commit comments

Comments
 (0)