Monitoring status examples
- Last UpdatedJun 30, 2026
- 2 minute read
The following examples can be used to manipulate flow monitoring information.
Note: The IDs, names, and timestamps are used as examples only. Update the information as needed to match the current environment.
Flow Starts/Stops notification
Topic: $aveva/flows/{flowDefinitionId}/state [RETAINED]
When a flow changes state (started, stopped) this topic will be triggered with the
information:
{
"flowId": "2220e7a7-9e98-4af3-afd4-a1b309128540",
"flowName": "MQTT Notifications",
"version": 9,
"running": true,
"status": "Ok",
"reason": "flow started",
"origin": "Cloud",
"timestamp": "2023-07-04T10:40:47.601+00:00",
"nodeId": "27929e60-a586-4f51-a512-0583391b0c86",
"nodeName": "Machine123",
"timestamp": "2023-09-28T13:22:51.743+00:00"
}
Flow status changes to OK/Warning/Error
Topic: $aveva/flows/{flowDefinitionId}/status [RETAINED]
When a flow change status to Ok, Warning or Error:
{
"flowId": "2220e7a7-9e98-4af3-afd4-a1b309128540",
"flowDefinitionId": "6faf4080-c7ce-e642-37a0-43e965904899",
"flowName": "Example MQTT Notifications",
"version": 9,
"status": "Warning",
"reason": "flow status changed to Warning",
"reasons": [
{
"moduleId": "9c3727c6-7d64-4cb3-95eb-a597596068b2",
"moduleName": "OPC UA Reader",
"moduleType": "Flows.EdgeNode.Modules.OPC.UA.Reader",
"version": "2.3.0",
"status": "Warning",
"reason": "Module OPC UA Reader, 2.3.0 changed to status Warning: This is a test",
"timestamp": "2023-09-28T13:22:51.743+00:00"
}
],
"nodeId": "27929e60-a586-4f51-a512-0583391b0c86",
"nodeName": "Machine123",
"timestamp": "2023-09-28T13:22:51.743+00:00"
}
Module status changes to OK/Warning/Error
Topic: $aveva/modules/{moduleId}/status [RETAINED]
When a module changes status (Ok, Warning, Error):
{
"moduleId": "9f5f82a2-1dc0-433d-805e-182be417fdef",
"moduleName": "Queue & Persistence",
"version": "2.3.0",
"status": "Warning",
"flowId": "2220e7a7-9e98-4af3-afd4-a1b309128540",
"flowName": "MQTT Notifications",
"reason": "Module Queue & Persistence, 2.3.0 changed to status Warning: Queue is full (100), message was dropped, fullMode=DropWrite, persistent=True",
"queue": {
"mode": "DropWrite",
"size": 100,
"retries": 3,
"retryDelay": 100,
"delay": 0,
"persistence": true
},
"nodeId": "27929e60-a586-4f51-a512-0583391b0c86",
"nodeName": "Machine123",
"timestamp": "2023-09-28T13:22:51.743+00:00"
}
Module status is full
Topic: $aveva/modules/{moduleId}/messages/dropped
When the module queue is full and the strategy is 'not wait.'
{
"moduleId": "9f5f82a2-1dc0-433d-805e-182be417fdef",
"moduleName": "Queue & Persistence",
"version": "2.3.0",
"status": "Warning",
"flowId": "2220e7a7-9e98-4af3-afd4-a1b309128540",
"flowName": "MQTT Notifications",
"reason": "Queue is full",
"queue": {
"mode": "DropWrite",
"size": 100,
"persistence": {
"enabled": true,
"retries": 3,
"retryDelay": 100
}
},
"nodeId": "27929e60-a586-4f51-a512-0583391b0c86",
"nodeName": "Machine123",
"timestamp": "2023-09-28T13:22:51.743+00:00"
}
Failed message sending
Topic: $aveva/modules/{moduleId}/messages/deadletters
When persistence is on and a message has failed the maximum number of times, it is moved to the dead letter queue. The following type of event message is then sent:
{
"moduleId": "9f5f82a2-1dc0-433d-805e-182be417fdef",
"moduleName": "Queue & Persistence",
"version": "2.3.0",
"status": "Ok",
"flowId": "2220e7a7-9e98-4af3-afd4-a1b309128540",
"flowName": "MQTT Notifications",
"reason": "Retries maxed out",
"queue": {
"mode": "DropWrite",
"size": 100,
"persistence": {
"enabled": true,
"retries": 3,
"retryDelay": 100
}
},
"link": "http://localhost:9191/api/flows/2220e7a7-9e98-4af3-afd4-a1b309128540/deadletters/043e9604-837d-41b7-8a63-ad85321bfe32",
"nodeId": "27929e60-a586-4f51-a512-0583391b0c86",
"nodeName": "Machine123",
"timestamp": "2023-09-28T13:22:51.743+00:00"
}
Subscribe message prompts
-
Subscribe to $aveva/# to receive all messages
-
Subscribe to $aveva/flows/# to receive all flow messages
-
Subscribe to $aveva/modules/# to receive all module messages
-
Subscribe to $aveva/flows/+/stopped to receive only stopped flow messages
-
Subscribe to $aveva/modules/+/status to receive module status messages for all modules
-
Receive the current status for all deployed flows. When a MQTT client creates a subscription for the topic $aveva/flows/# or $aveva/flows/+/status, the broker sends the current status for all deployed flows.
Create combinations by using + as a single level wildcard. Example: $aveva/modules/+/status/+/stopped collects both status and stopped messages in that order.