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/howto-dataflow-graph-wasm.md
+50-1Lines changed: 50 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,12 @@ Azure IoT Operations data flow graphs support WebAssembly (WASM) modules for cus
26
26
## Prerequisites
27
27
28
28
- Deploy an Azure IoT Operations instance on an Arc-enabled Kubernetes cluster. For more information, see [Deploy Azure IoT Operations](../deploy-iot-ops/howto-deploy-iot-operations.md).
29
-
- Configure your container registry and add the sample graph definitions and WASM modules by following guidance in [Deploy WebAssembly (WASM) modules and graph definitions](../develop-edge-apps/howto-deploy-wasm-graph-definitions.md).
29
+
- Configure a registry endpoint to access WASM modules and graph definitions. You have two options:
30
+
-**Quick start with public registry**: Create a registry endpoint pointing to `ghcr.io/azure-samples/explore-iot-operations` with anonymous authentication. See [Use prebuilt modules from a public registry](../develop-edge-apps/howto-deploy-wasm-graph-definitions.md#use-prebuilt-modules-from-a-public-registry) for instructions.
31
+
-**Private registry**: Set up your own container registry and push the sample modules by following guidance in [Deploy WebAssembly (WASM) modules and graph definitions](../develop-edge-apps/howto-deploy-wasm-graph-definitions.md).
32
+
33
+
> [!NOTE]
34
+
> **Data flows vs. data flow graphs**: A *data flow* is a pipeline that moves and transforms data between endpoints using built-in transformations. A *data flow graph* extends data flows with custom processing logic implemented as WebAssembly modules. Data flow graphs use YAML graph definitions that specify how WASM operators connect, while the data flow graph resource wraps this definition and maps its abstract source/sink operations to concrete endpoints (MQTT topics, Kafka topics, etc.). Use data flows for built-in transformations and data flow graphs when you need custom processing logic.
30
35
31
36
## Overview
32
37
@@ -1056,6 +1061,50 @@ Registry endpoints provide access to container registries for pulling WASM modul
1056
1061
For detailed configuration information, see [Configure registry endpoints](../develop-edge-apps/howto-configure-registry-endpoint.md).
1057
1062
1058
1063
1064
+
## Troubleshoot data flow graphs
1065
+
1066
+
### RegistryEndpoint not found
1067
+
1068
+
If the data flow graph fails to start and reports that it can't find the registry endpoint, verify the following:
1069
+
1070
+
1. **Registry endpoint name matches**: The `registryEndpointRef` value in your data flow graph must exactly match the `name` of your `RegistryEndpoint` resource. Check for typos and case sensitivity.
1071
+
1072
+
```bash
1073
+
# List all registry endpoints in the namespace
1074
+
kubectl get registryendpoints -n azure-iot-operations
1075
+
```
1076
+
1077
+
1. **Registry endpoint is in the correct namespace**: The registry endpoint must be in the `azure-iot-operations` namespace (or the same namespace as your data flow graph).
1078
+
1079
+
1. **Registry endpoint is ready**: Check the status of your registry endpoint:
1. **Authentication is configured correctly**: If using managed identity, ensure the Azure IoT Operations Arc extension has `AcrPull` permissions on the registry. If using anonymous authentication with a public registry, verify the host URL is correct.
1086
+
1087
+
1. **Artifacts exist in the registry**: Verify that the graph definition and WASM modules referenced in your graph are available at the expected tags in the registry:
### Data flow graph is running but not processing data
1095
+
1096
+
If the data flow graph is deployed but messages aren't being processed:
1097
+
1098
+
1. **Check data flow graph status**: Look for errors in the data flow graph resource status:
1099
+
1100
+
```bash
1101
+
kubectl get dataflowgraph <GRAPH_NAME> -n azure-iot-operations -o yaml
1102
+
```
1103
+
1104
+
1. **Verify MQTT topics**: Ensure the source topics in your data flow graph match the topics where you're publishing data.
1105
+
1106
+
1. **Check timestamps**: Data flow graphs use Hybrid Logical Clock (HLC) timestamps for message processing. Include the `__ts` user property when publishing MQTT messages to ensure timely processing.
1107
+
1059
1108
## Related content
1060
1109
1061
1110
- [Configure MQTT data flow endpoints](howto-configure-mqtt-endpoint.md)
0 commit comments