Contents
Cirrus Link Resources
Cirrus Link Website
Contact Us (Sales/Support)
Forum
Cirrus Link Modules Docs for Ignition 7.9.x
Inductive Resources
Ignition User Manual
Knowledge Base Articles
Inductive University
Forum
The MQTT modules (MQTT Transmission, MQTT Distributor and MQTT Engine) all provide status tags within Ignition that can be used to monitor the overall health of the MQTT pipeline.
The tags automatically created form MQTT Engine are documented here
Use the tags below to verify the expected number of Edge Nodes have come online and remain online:
NodesOffline | Integer | The number of Sparkplug Edge Nodes offline. This is determined by whether the last lifecycle message was an NBIRTH or NDEATH |
NodesOnline | Integer | The number of Sparkplug Edge Nodes online. This is determined by whether the last lifecycle message was an NBIRTH or NDEATH |
NodeUnitCount | Integer | The total number of Sparkplug Edge Nodes as determined by the received NBIRTH messages |
Use the tags below to identify the Sparkplug ID and last timestamp for the Offline and Online nodes
Offline Nodes | Dataset | A dataset containing the Sparkplug ID and timestamp for all offline Sparkplug edge nodes |
Online Nodes | Dataset | A dataset containing the Sparkplug ID and timestamp for all online Sparkplug edge nodes |
Use the script below to easily parse the Offline and Online datasets
onlineEdgeNodes = system.dataset.toPyDataSet(system.tag.readBlocking("[MQTT Engine]Engine Info/Edge Nodes/Online Nodes")[0].value) print "Online Sparkplug EdgeNodes: " + str(system.tag.readBlocking("[MQTT Engine]Engine Info/Edge Nodes/NodesOnline")[0].value) if system.tag.readBlocking("[MQTT Engine]Engine Info/Edge Nodes/NodesOnline")[0].value > 0: for row in onlineEdgeNodes: data = [] data.append(["Sparkplug EdgeNode Descriptor", row[0]]) data.append(["Last Connect Date", row["Date"]]) print data offlineEdgeNodes = system.dataset.toPyDataSet(system.tag.readBlocking("[MQTT Engine]Engine Info/Edge Nodes/Offline Nodes")[0].value) print "Offline Sparkplug EdgeNodes: " + str(system.tag.readBlocking("[MQTT Engine]Engine Info/Edge Nodes/NodesOffline")[0].value) if system.tag.readBlocking("[MQTT Engine]Engine Info/Edge Nodes/NodesOffline")[0].value > 0: for row in offlineEdgeNodes: data = [] data.append(["Sparkplug EdgeNode Descriptor", row[0]]) data.append(["Last Connect Date", row["Date"]]) print data
For each connected Edge Node, a Node Control and Node Info folder containing tags is created along with a Device Info folder for each connected device. The tags created in these folders are documented here
Data Latency (ms) | Long | The time in milliseconds between MQTT Engine receiving of the last message and the payload's reported time. Note: For this to be very accurate the edge node's clock and the system clock running MQTT Engine should be synced |
Birth Count | Long | The number of NBIRTH messages since the last time the info metrics were reset via the Node Info/Reset Info tag |
Death Count | Long | The number of NDEATH messages since the last time the info metrics were reset via the Node Info/Reset Info tag |
Offline DateTime | DateTime | The time at which the last NDEATH message was received by MQTT Engine |
Online | Boolean | Whether or not the Edge Node is online. This is determined by whether the last lifecycle message was an NBIRTH or NDEATH |
Online DateTime | DateTime | The time at which the first NBIRTH message for a connection was received by MQTT Engine |
Rebirth (Last) Cause | String | The reason for the last NBIRTH message received by MQTT Engine (available 4.0.22 onward) Options are:
|
Rebirth (Last DateTime) | DateTime | The time at which the last NBIRTH message received by MQTT Engine (available 4.0.22 onward) |
Rebirth Count | Integer | The count of NBIRTH messages received by MQTT Engine (available 4.0.22 onward) |
Expose Rebirth request count per edge node under MQTT Engine Info tags. A high rebirth count in a small time window is a clear indicator of issues at the Edge.