MQTT Statistics monitoring

MQTT is a simple, lightweight, publish/subscribe messaging protocol designed for constrained devices and low-bandwidth, high-latency or unreliable networks. MQTT is ideal for machine-to-machine (M2M) and Internet of Things (IoT) communications, as well as for mobile applications where bandwidth and battery power are at a premium. MQTT focuses on minimizing network bandwidth and device resource requirements, while attempting to ensure reliability and some degree of assurance of delivery.

MQTT Statistics monitors

The following are monitors are available for MQTT Statistics:

Monitor Description

MQTT Message Rate

Monitors the number of messages published (Publish rate) and received (Receive rate) per second at any given time during the load test scenario run.

MQTT Throughput

Monitors the amount of data (in bytes) that the Vusers received from (Receipt throughput) or published to (Publish throughput) the MQTT broker at any given time during the load test scenario run.

MQTT Active Connection

Monitors the number of active MQTT broker connections (Active connections) at any given time during the load test scenario run.

MQTT In-flight Messages

Monitors the number of in-flight messages (In-flight messages) on the MQTT broker at any given time during the load test scenario run. In-flight messages are QoS 1 or 2 messages that can be in the process of being transmitted, including messages currently going through handshakes and messages that are being retried.

MQTT $SYS Topics

Monitors the MQTT broker machine's system resource usage during the load test scenario run. This can help isolate server performance bottlenecks.

In addition to the usual $SYS measurements monitored, see Custom system measurements for the MQTT broker.

Back to top

MQTT Statistics measurements

The following are the default counters that can be monitored on the MQTT Statistics monitors:

Measurement Description
Publish rate The messages published per second over the duration of the scenario run.
Receipt rate The messages received per second over the duration of the scenario run.
Active connections The active connections to the MQTT broker over the duration of the scenario run.
Publish throughput

The average data traffic (in bytes per second) from published messages over the duration of the scenario run.

Receipt throughput The average data traffic (in bytes per second) from received messages over the duration of the scenario run.
In-flight messages The number of current in-flight messages over the duration of the scenario run.
Average publish duration

The average amount of time (in seconds) to publish a message over the duration of the scenario run.

Average connect duration

The average duration (in seconds) that the broker was connected over the duration of the scenario run.

Connect statistics

Successful vs failed broker connections.

Custom system measurements for the MQTT broker

The following custom measurements are available for the MQTT broker machine ($SYS/broker/:

Measurement Description

clients/active

The number of currently connected clients. (deprecated)
clients/expired The number of disconnected persistent clients that have expired and have been removed through the persistent_client_expiration option.
clients/inactive The total number of persistent clients (with clean session disabled) that are registered at the broker but are currently disconnected. (deprecated)
load/bytes/...

The moving average of the number of bytes received / sent by the broker over different time intervals (1/5/15 min).

The value returned represents the number of bytes received / sent in 1 min, averaged over 1/5/15 min.

load/connections/...

The moving average of the number of CONNECT packets received by the broker over different time intervals (1/5/15 min).

The value returned represents the number of connections received in 1 min, averaged over 1/5/15 min.

load/messages/...

The moving average of the number of all types of MQTT messages received / sent by the broker over different time intervals (1/5/15 min).

The value returned represents the number of messages received / sent in 1 min, averaged over 1/5/15 min.

load/publish/sent/...

The moving average of the number of publish messages sent by the broker over different time intervals (1/5/15 min).

The value returned represents the number of publish messages sent in 1 min, averaged over 1/5/15 min.

load/sockets/...

The moving average of the number of socket connections opened to the broker over different time intervals (1/5/15 min).

The value returned represents the number of socket connections in 1 min, averaged over 1/5/15 min.

messages/stored The number of messages currently held in the message store. This includes retained messages and messages queued for durable clients.
publish/bytes/... The total number of bytes received / sent in PUBLISH messages since the broker started.

Back to top

See also: