Skip to main content

Investigating MQTT Client Behavior

Summary​

This guide explains how to use the Chariot Web UI to investigate MQTT client behavior that may impact server performance, including memory usage and CPU load.

Inspect Client Sessions​

Navigate to MQTT → Client Status → Clients and select a Client ID.

This view displays connection details including:

  • Network information
  • Session configuration
  • Last Will and Testament (LWT)
  • Active subscriptions

Look for:

  • Clients with persistent sessions (Clean Session = No)
  • Clients with QoS 1 or 2 subscriptions, especially broad topic filters

Clients configured this way may cause the server to retain large volumes of messages in memory when the client is offline.


Review Retained Messages​

Navigate to MQTT → Client Status → Retained Messages.

This view displays all retained messages stored by the server.

Look for:

  • A large number of retained messages
  • Large payload sizes

Excessive retained messages can significantly increase memory usage.


Analyze Message QoS via Logging​

To inspect message QoS levels for a specific client:

  1. Navigate to GENERAL → Logging → Levels
  2. Set com.cirruslink.chariot.core.PacketHandler to DEBUG
  3. Navigate to GENERAL → Logging → Live

Each incoming message will appear in the logs.

Look for:

  • Client ID
  • Source IP address
  • Topic
  • QoS level

High volumes of QoS 1 or 2 messages may contribute to increased resource usage.