Monitoring
The ability to monitor server applications is very important for operating these applications. HiveMQ is no exception, in fact HiveMQ was designed to enable different kinds of monitoring easily. When using HiveMQ in critical infrastructure, it is strongly recommended to enable monitoring and use a decent application for displaying the relevant information you need for your operations.
Gathering metrics is enabled by default. The HiveMQ metrics subsystem is designed to be very performant and no performance penalties are expected for monitoring relevant metrics, even in low-latency and high-throughput environments.
Not all metrics are available in the HiveMQ Community Edition. |
JMX
HiveMQ has extensive support for Java Management Extensions (JMX) to monitor internals of HiveMQ and the JVM. JMX is a proven industry standard for Java Monitoring and many external tools support JMX natively or via extensions.
Configuration
If your HiveMQ runs behind some kind of NAT you have to set some additional options:
JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=<PUBLIC_IP>" JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.rmi.port=9010"
This allows you to connect via JConsole using PUBLIC_IP:9010.
MBeans
When JMX is activated, the following MBeans can be used for monitoring:
MBean Name | Description |
---|---|
|
The HiveMQ metrics and statistics. A list of all available metrics is available here. |
|
Statistics and metrics about used native memory. |
|
All information about the Java Virtual Machine can be monitored here. |
|
Actions that can be started via JMX. |
Maintenance
Maintenance actions are often resource intensive and should therefore not be started when HiveMQ instances have been added to the cluster or removed recently. Before starting a maintenance action, make sure that the actual cluster size is equal to the supposed cluster size.
Maintenance actions | Description |
---|---|
|
Clean up outdated subscriptions that were added during network splits. |
Available Metrics
Metric Types
There are five different types of Metrics available. The following table shows all available metric types:
Metric Type | Description |
---|---|
|
A gauge returns a simple value at the point of time the metric was requested. |
|
A counter is a simple incrementing and decrementing number. |
|
A histogram measures the distribution of values in a stream of data. They allow to measure min, mean, max, standard deviation of values and quantiles. |
|
A meter measures the rate at which a set of events occur. Meters measure mean, 1-, 5-, and 15-minute moving averages of events. |
|
A timer is basically a histogram of the duration of a type of event and a meter of the rate of its occurrence. It captures rate and duration information. |
The following table lists metrics that are available for monitoring HiveMQ regardless if the HiveMQ server instance runs in single mode or as part of a cluster:
Metric | Type | Description |
---|---|---|
com.hivemq.cache.payload-persistence.averageLoadPenalty |
|
Cache statistic capturing the average load penalty of the payload persistence cache |
com.hivemq.cache.payload-persistence.evictionCount |
|
Cache statistic capturing the eviction count of the payload persistence cache |
com.hivemq.cache.payload-persistence.hitCount |
|
Cache statistic capturing the hit count of the payload persistence cache |
com.hivemq.cache.payload-persistence.hitRate |
|
Cache statistic capturing the hit rate of the payload persistence cache |
com.hivemq.cache.payload-persistence.loadCount |
|
Cache statistic capturing the load count of the payload persistence cache |
com.hivemq.cache.payload-persistence.loadExceptionCount |
|
Cache statistic capturing the load exception count of the payload persistence cache |
com.hivemq.cache.payload-persistence.loadExceptionRate |
|
Cache statistic capturing the load exception rate of the payload persistence cache |
com.hivemq.cache.payload-persistence.loadSuccessCount |
|
Cache statistic capturing the load success count of the payload persistence cache |
com.hivemq.cache.payload-persistence.missCount |
|
Cache statistic capturing the miss count of the payload persistence cache |
com.hivemq.cache.payload-persistence.missRate |
|
Cache statistic capturing the miss rate of the payload persistence cache |
com.hivemq.cache.payload-persistence.requestCount |
|
Cache statistic capturing the request count of the payload persistence cache |
com.hivemq.cache.payload-persistence.totalLoadTime |
|
Cache statistic capturing the total load time of the payload persistence cache |
com.hivemq.cache.shared-subscription.averageLoadPenalty |
|
Cache statistic capturing the average load penalty of the shared subscription cache |
com.hivemq.cache.shared-subscription.evictionCount |
|
Cache statistic capturing the eviction count of the shared subscription cache |
com.hivemq.cache.shared-subscription.hitCount |
|
Cache statistic capturing the hit count of the shared subscription cache |
com.hivemq.cache.shared-subscription.hitRate |
|
Cache statistic capturing the hit rate of the shared subscription cache |
com.hivemq.cache.shared-subscription.loadCount |
|
Cache statistic capturing the load count of the shared subscription cache |
com.hivemq.cache.shared-subscription.loadExceptionCount |
|
Cache statistic capturing the load exception count of the shared subscription cache |
com.hivemq.cache.shared-subscription.loadExceptionRate |
|
Cache statistic capturing the load exception rate of the shared subscription cache |
com.hivemq.cache.shared-subscription.loadSuccessCount |
|
Cache statistic capturing the load success count of the shared subscription cache |
com.hivemq.cache.shared-subscription.missCount |
|
Cache statistic capturing the miss count of the shared subscription cache |
com.hivemq.cache.shared-subscription.missRate |
|
Cache statistic capturing the miss rate of the shared subscription cache |
com.hivemq.cache.shared-subscription.requestCount |
|
Cache statistic capturing the request count of the shared subscription cache |
com.hivemq.cache.shared-subscription.totalLoadTime |
|
Cache statistic capturing the total load time of the shared subscription cache |
com.hivemq.cluster.name-request.retry.count |
|
The number of retry attempts that are processed to resolve the name of a node |
com.hivemq.cluster.nodes.count |
|
Captures the current number of nodes in the cluster |
com.hivemq.cluster.topology-change.time |
|
Measures the time spent waiting for cluster topology changes |
com.hivemq.exceptions.total |
|
Measures the rate of inconsequential exceptions thrown during the socket life cycle |
com.hivemq.keep-alive.disconnect.count |
|
Counts every closed connection that was closed because the client missed sending PINGREQ message during the keep-alive interval |
com.hivemq.logging.all |
|
Measures the rate of logging statements of all levels |
com.hivemq.logging.debug |
|
Measures the rate of logging statements in DEBUG level |
com.hivemq.logging.error |
|
Measures the rate of logging statements in ERROR level |
com.hivemq.logging.info |
|
Measures the rate of logging statements in INFO level |
com.hivemq.logging.trace |
|
Measures the rate of logging statements in TRACE level |
com.hivemq.logging.warn |
|
Measures the rate of logging statements in WARN level |
com.hivemq.messages.dropped.count |
|
Counts every dropped message. |
com.hivemq.messages.dropped.rate |
|
Measures the current rate of dropped messages. |
com.hivemq.messages.dropped.queue-full.count |
|
Counts PUBLISH messages that have been dropped, because the message queue for a disconnected persistent session client was full. |
com.hivemq.messages.dropped.shared-queue-full.count |
|
Counts PUBLISH messages that are dropped because the message queue for a shared subscription is full. |
com.hivemq.messages.dropped.consumer-queue-full.count |
|
Counts PUBLISH messages that have been dropped, because the message queue for a consumer topic was full. |
com.hivemq.messages.dropped.publish-inbound-intercepted.count |
|
Counts PUBLISH messages that have been dropped, because a Publish Inbound Interceptor prevented onward delivery. |
com.hivemq.messages.dropped.mqtt-packet-too-large.count |
|
Counts MQTT messages (except PUBLISH) that have been dropped, because the message size was too large for the client. |
com.hivemq.messages.dropped.not-writable.count |
|
Counts PUBLISH messages that have been dropped, because the socket for the client was not writable (only QoS 0). |
com.hivemq.messages.dropped.qos-0-memory-exceeded.count |
|
Counts PUBLISH messages that have been dropped, because the global memory limit for QoS 0 messages has been exceeded. |
com.hivemq.messages.dropped.internal-error.count |
|
Counts PUBLISH messages that have been dropped, because of an internal error. |
com.hivemq.messages.dropped.count |
|
Counts every dropped message |
com.hivemq.messages.dropped.rate |
|
Measures the current rate of dropped messages |
com.hivemq.messages.dropped.queue-full.count |
|
Counts PUBLISH messages that have been dropped, because the message queue for a disconnected persistent session client was full |
com.hivemq.messages.dropped.message-too-large.count |
|
Counts PUBLISH messages that have been dropped, because the message size was too large for the client |
com.hivemq.messages.dropped.publish-inbound-intercepted.count |
|
Counts PUBLISH messages that have been dropped, because a Publish Inbound Interceptor prevented onward delivery |
com.hivemq.messages.dropped.mqtt-packet-too-large.count |
|
Counts MQTT messages (except PUBLISH) that have been dropped, because the message size was too large for the client |
com.hivemq.messages.dropped.not-writable.count |
|
Counts PUBLISH messages that have been dropped, because the socket for the client was not writable (only QoS 0) |
com.hivemq.messages.dropped.qos-0-memory-exceeded.count |
|
Counts PUBLISH messages that have been dropped, because the global memory limit for QoS 0 messages has been exceeded |
com.hivemq.messages.dropped.internal-error.count |
|
Counts PUBLISH messages that have been dropped, because of an internal error |
com.hivemq.messages.incoming.connect.count |
|
Counts every incoming MQTT CONNECT message |
com.hivemq.messages.incoming.connect.mqtt3.count |
|
Counts every incoming MQTT 3 CONNECT message |
com.hivemq.messages.incoming.connect.mqtt5.count |
|
Counts every incoming MQTT 5 CONNECT message |
com.hivemq.messages.incoming.connect.rate |
|
Measures the current rate of incoming MQTT CONNECT messages |
com.hivemq.messages.incoming.pingreq.count |
|
Counts every incoming MQTT PINGREQ message |
com.hivemq.messages.incoming.pingreq.rate |
|
Measures the current rate of incoming MQTT PINGREQ messages |
com.hivemq.messages.incoming.puback.count |
|
Counts every incoming MQTT PUBACK message |
com.hivemq.messages.incoming.puback.rate |
|
Measures the current rate of incoming MQTT PUBACK messages |
com.hivemq.messages.incoming.pubcomp.count |
|
Counts every incoming MQTT PUBCOMP message |
com.hivemq.messages.incoming.pubcomp.rate |
|
Measures the current rate of incoming MQTT PUBCOMP messages |
com.hivemq.messages.incoming.publish.bytes |
|
Measures the distribution of incoming MQTT message size (including MQTT packet headers) |
com.hivemq.messages.incoming.publish.count |
|
Counts every incoming MQTT PUBLISH message |
com.hivemq.messages.incoming.publish.rate |
|
Measures the current rate of incoming MQTT PUBLISH messages |
com.hivemq.messages.incoming.pubrec.count |
|
Counts every incoming MQTT PUBREC message |
com.hivemq.messages.incoming.pubrec.rate |
|
Measures the current rate of incoming MQTT PUBREC messages |
com.hivemq.messages.incoming.pubrel.count |
|
Counts every incoming MQTT PUBREL message |
com.hivemq.messages.incoming.pubrel.rate |
|
Measures the current rate of incoming MQTT PUBREL messages |
com.hivemq.messages.incoming.subscribe.count |
|
Counts every incoming MQTT SUBSCRIBE message |
com.hivemq.messages.incoming.subscribe.rate |
|
Measures the current rate of incoming MQTT SUBSCRIBE messages |
com.hivemq.messages.incoming.total.bytes |
|
Measures the size distribution of incoming MQTT messages (including MQTT packet headers) |
com.hivemq.messages.incoming.total.count |
|
Counts every incoming MQTT message |
com.hivemq.messages.incoming.total.rate |
|
Measures the current rate of incoming MQTT messages |
com.hivemq.messages.incoming.unsubscribe.count |
|
Counts every incoming MQTT UNSUBSCRIBE message |
com.hivemq.messages.incoming.unsubscribe.rate |
|
Measures the current rate of incoming MQTT UNSUBSCRIBE messages |
com.hivemq.messages.incoming.disconnect.count |
|
Counts every incoming MQTT DISCONNECT message |
com.hivemq.messages.incoming.disconnect.rate |
|
Measures the current rate of incoming MQTT DISCONNECT messages |
com.hivemq.messages.incoming.auth.count |
|
Counts every incoming MQTT AUTH message |
com.hivemq.messages.incoming.auth.rate |
|
Measures the current rate of incoming MQTT AUTH messages |
com.hivemq.messages.outgoing.connack.count |
|
Counts every outgoing MQTT CONNACK message |
com.hivemq.messages.outgoing.connack.rate |
|
Measures the current rate of outgoing MQTT CONNACK messages |
com.hivemq.messages.outgoing.pingresp.count |
|
Counts every outgoing MQTT PINGRESP message |
com.hivemq.messages.outgoing.pingresp.rate |
|
Measures the current rate of outgoing MQTT PINGRESP messages |
com.hivemq.messages.outgoing.puback.count |
|
Counts every outgoing MQTT PUBACK message |
com.hivemq.messages.outgoing.puback.rate |
|
Measures the current rate of outgoing MQTT PUBACK messages |
com.hivemq.messages.outgoing.pubcomp.count |
|
Counts every outgoing MQTT PUBCOMP message |
com.hivemq.messages.outgoing.pubcomp.rate |
|
Measures the current rate of outgoing MQTT PUBCOMP messages |
com.hivemq.messages.outgoing.publish.bytes |
|
Measures the size distribution of outgoing MQTT messages (including MQTT packet headers) |
com.hivemq.messages.outgoing.publish.count |
|
Counts every outgoing MQTT PUBLISH message |
com.hivemq.messages.outgoing.publish.rate |
|
Measures the current rate of outgoing MQTT PUBLISH messages |
com.hivemq.messages.outgoing.pubrec.count |
|
Counts every outgoing MQTT PUBREC message |
com.hivemq.messages.outgoing.pubrec.rate |
|
Measures the current rate of outgoing MQTT PUBREC messages |
com.hivemq.messages.outgoing.pubrel.count |
|
Counts every outgoing MQTT PUBREL message |
com.hivemq.messages.outgoing.pubrel.rate |
|
Measures the current rate of outgoing MQTT PUBREL messages |
com.hivemq.messages.outgoing.suback.count |
|
Counts every outgoing MQTT SUBACK message |
com.hivemq.messages.outgoing.suback.rate |
|
Measures the current rate of outgoing MQTT SUBACK messages |
com.hivemq.messages.outgoing.total.bytes |
|
Measures the size distribution of outgoing MQTT messages (including MQTT packet headers) |
com.hivemq.messages.outgoing.total.count |
|
Counts every outgoing MQTT message |
com.hivemq.messages.outgoing.total.rate |
|
Measures the current rate of outgoing MQTT messages |
com.hivemq.messages.outgoing.unsuback.count |
|
Counts every outgoing MQTT UNSUBACK message |
com.hivemq.messages.outgoing.unsuback.rate |
|
Measures the current rate of outgoing MQTT UNSUBACK messages |
com.hivemq.messages.outgoing.disconnect.count |
|
Counts every outgoing MQTT DISCONNECT message |
com.hivemq.messages.outgoing.disconnect.rate |
|
Measures the current rate of outgoing MQTT DISCONNECT messages |
com.hivemq.messages.outgoing.auth.count |
|
Counts every outgoing MQTT AUTH message |
com.hivemq.messages.outgoing.auth.rate |
|
Measures the current rate of outgoing MQTT AUTH messages |
com.hivemq.messages.queued.count |
|
The current number of queued messages |
com.hivemq.messages.pending.qos-0.count |
|
The current number of pending qos 0 messages |
com.hivemq.messages.pending.total.count |
|
The current number of pending messages total |
com.hivemq.messages.retained.queued.count |
|
The current number of queued retained messages |
com.hivemq.messages.retained.pending.total.count |
|
The current number of pending retained messages total |
com.hivemq.messages.publish-resent |
|
Measures the current rate of resent PUBLISH messages (QoS > 0) |
com.hivemq.messages.pubrel-resent |
|
Measures the current rate of resent PUBREL messages (OoS = 2) |
com.hivemq.messages.retained.current |
|
The current amount of retained messages |
com.hivemq.messages.retained.mean |
|
Metrics about the mean payload-size of retained messages in bytes |
com.hivemq.messages.retained.rate |
|
The current rate of newly retained messages |
com.hivemq.messages.expired-messages |
|
Counts every expired message |
com.hivemq.messages.client.queued.count |
|
The current number of queued messages for client sessions |
com.hivemq.messages.client.pending.qos-0.count |
|
The current number of pending QoS 0 messages for client sessions |
com.hivemq.messages.client.pending.total.count |
|
The total number of pending messages for client sessions |
com.hivemq.messages.shared.queued.count |
|
The current number of queued messages for shared subscriptions |
com.hivemq.messages.shared.pending.qos-0.count |
|
The current number of pending QoS 0 messages for shared subscriptions |
com.hivemq.messages.shared.pending.total.count |
|
The total number of pending messages for shared subscriptions |
com.hivemq.networking.bytes.read.current |
|
The current (last 5 seconds) amount of read bytes |
com.hivemq.networking.bytes.read.total |
|
The total amount of read bytes |
com.hivemq.networking.bytes.write.current |
|
The current (last 5 seconds) amount of written bytes |
com.hivemq.networking.bytes.write.total |
|
Total amount of written bytes |
com.hivemq.networking.connections.current |
|
The current total number of active MQTT connections |
com.hivemq.networking.connections.mean |
|
The mean total number of active MQTT connections |
com.hivemq.networking.connections-closed.graceful.count |
|
Counts clients which disconnected after sending a DISCONNECT Message |
com.hivemq.networking.connections-closed.ungraceful.count |
|
Counts clients which disconnected without sending a DISCONNECT Message |
com.hivemq.networking.connections-closed.total.count |
|
Counts all clients which disconnected from HiveMQ (= graceful + ungraceful) |
com.hivemq.payload-persistence.cleanup-executor.completed |
|
Measure the rate of completed tasks submitted to the scheduler in charge of the cleanup of the persistence payload |
com.hivemq.payload-persistence.cleanup-executor.duration |
|
Captures metrics about the job durations for jobs submitted to the scheduler in charge of the cleanup of the persistence payload |
com.hivemq.payload-persistence.cleanup-executor.running |
|
Counts tasks that are currently running in the scheduler in charge of the cleanup of the persistence payload |
com.hivemq.payload-persistence.cleanup-executor.scheduled.once |
|
Measures about the tasks that have been scheduled to run only once in the scheduler in charge of the cleanup of the persistence payload |
com.hivemq.payload-persistence.cleanup-executor.scheduled.overrun |
|
Counts the periodic tasks which ran longer then their time frame allowed in the scheduler in charge of the cleanup of the persistence payload |
com.hivemq.payload-persistence.cleanup-executor.scheduled.percent-of-period |
|
Metrics about how much percent of their allowed time frame periodic tasks used while running the cleanup of the persistence payload |
com.hivemq.payload-persistence.cleanup-executor.scheduled.repetitively |
|
Measures about the tasks that have been scheduled to run repetitively in the scheduler in charge of the cleanup of the persistence payload |
com.hivemq.payload-persistence.cleanup-executor.submitted |
|
Measures about the tasks that have been submitted to the scheduler in charge of the cleanup of the persistence payload |
com.hivemq.persistence-executor.completed |
|
Measure the rate of completed tasks submitted to the persistence executor |
com.hivemq.persistence-executor.duration |
|
Captures metrics about the job durations for jobs submitted to the persistence executor |
com.hivemq.persistence-executor.running |
|
Counts tasks that are currently running in the persistence executor |
com.hivemq.persistence-executor.submitted |
|
Measures about the tasks that have been submitted to the scheduler responsible for persistence |
com.hivemq.persistence-scheduled-executor.completed |
|
Measure the rate of completed tasks submitted to the scheduler responsible for persistence |
com.hivemq.persistence-scheduled-executor.duration |
|
Captures metrics about the job durations for jobs submitted to the scheduler responsible for persistence |
com.hivemq.persistence-scheduled-executor.running |
|
Counts tasks that are currently running in the scheduler responsible for persistence |
com.hivemq.persistence-scheduled-executor.scheduled.once |
|
Measures about the tasks that have been scheduled to run once in the scheduler responsible for persistence |
com.hivemq.persistence-scheduled-executor.scheduled.overrun |
|
Counts the periodic tasks which ran longer then their time frame allowed in the scheduler responsible for persistence |
com.hivemq.persistence-scheduled-executor.scheduled.percent-of-period |
|
Metrics about how much percent of their allowed time frame periodic tasks used in the scheduler responsible for persistence |
com.hivemq.persistence-scheduled-executor.scheduled.repetitively |
|
Measures about the tasks that have been scheduled to run repetitively in the scheduler responsible for persistence |
com.hivemq.persistence-scheduled-executor.submitted |
|
Measures about the tasks that have been submitted to the scheduler responsible for persistence |
com.hivemq.persistence.executor.client-session.tasks |
|
Current amount of disk I/O tasks that are enqueued by the client session persistence |
com.hivemq.persistence.executor.client-session.time |
|
Measures the mean execution time (in nanoseconds) of client session disk I/O tasks |
com.hivemq.persistence.executor.noempty-queues |
|
Current amount of single writer task queues that are not empty |
com.hivemq.persistence.executor.outgoing-message-flow.tasks |
|
Current amount of disk I/O tasks that are enqueued by the outgoing message flow persistence |
com.hivemq.persistence.executor.outgoing-message-flow.time |
|
Measures the mean execution time (in nanoseconds) of outgoing message flow disk I/O tasks |
com.hivemq.persistence.executor.queue-misses |
|
Current count of loops that all single writer threads have done without executing a task |
com.hivemq.persistence.executor.queued-messages.tasks |
|
Current amount of disk I/O tasks that are enqueued by the queued messages persistence |
com.hivemq.persistence.executor.queued-messages.time |
|
Measures the mean execution time (in nanoseconds) of queued messages disk I/O tasks |
com.hivemq.persistence.executor.request-event-bus.tasks |
|
Current amount of tasks that are enqueued by the request event bus |
com.hivemq.persistence.executor.request-event-bus.time |
|
Measures the mean execution time (in nanoseconds) of request event bus tasks |
com.hivemq.persistence.executor.retained-messages.tasks |
|
Current amount of disk I/O tasks that are enqueued by the retained message persistence |
com.hivemq.persistence.executor.retained-messages.time |
|
Measures the mean execution time (in nanoseconds) of retained message disk I/O tasks |
com.hivemq.persistence.executor.running.threads |
|
Current amount of threads that are executing disk I/O tasks |
com.hivemq.persistence.executor.subscription.tasks |
|
Current amount of disk I/O tasks that are enqueued by the subscription persistence |
com.hivemq.persistence.executor.subscription.time |
|
Measures the mean execution time (in nanoseconds) of subscription disk I/O tasks |
com.hivemq.persistence.executor.total.tasks |
|
Current amount of disk I/O tasks that are enqueued by all persistence executors |
com.hivemq.persistence.payload-entries.count |
|
Holds the current amount of payloads stored in the payload persistence |
com.hivemq.persistence.removable-entries.count |
|
Holds the current amount of payloads stored in the payload persistence, that can be removed by the cleanup |
com.hivemq.sessions.overall.current |
|
Measures the current count of stored sessions. These sessions include all sessions, including online and offline clients |
com.hivemq.sessions.persistent.active |
|
Measures the current count of active persistent sessions (= Online MQTT clients which are connected with cleanSession=false). |
com.hivemq.single-writer-executor.completed |
|
Measure the rate of completed tasks submitted to the single-writer executor |
com.hivemq.single-writer-executor.duration |
|
Measure the rate of completed tasks submitted to the scheduler responsible for single-writer |
com.hivemq.single-writer-executor.running |
|
Counts tasks that are currently running in the scheduler responsible for single-writer |
com.hivemq.single-writer-executor.submitted |
|
Measures about the tasks that have been submitted to the scheduler responsible for single-writer |
com.hivemq.subscriptions.overall.current |
|
Measures the current count of subscriptions on the broker |
com.hivemq.extension.managed-executor.submitted |
|
Measures the current rate of submitted jobs to the ManagedExtensionExecutor |
com.hivemq.extension.managed-executor.running |
|
Measures the current count of running jobs in the ManagedExtensionExecutor |
com.hivemq.extension.managed-executor.completed |
|
Measures the current rate of completed jobs in the ManagedExtensionExecutor |
com.hivemq.extension.managed-executor.duration |
|
Measures the duration of time spent on submitted jobs to the ManagedExtensionExecutor |
com.hivemq.extension.managed-executor.scheduled.once |
|
Measures the current rate of scheduled jobs in the ManagedExtensionExecutor that run once |
com.hivemq.extension.managed-executor.scheduled.repetitively |
|
Measures the current rate of scheduled jobs in the ManagedExtensionExecutor that run repetitively |
com.hivemq.extension.managed-executor.scheduled.overrun |
|
Measures the current count of jobs in the ManagedExtensionExecutor that are overrun |
com.hivemq.extension.managed-executor.scheduled.percent-of-period |
|
Measures how many percent of the scheduled period the ManagedExtensionExecutorService jobs lasted |
com.hivemq.extension.services.rate-limit-exceeded.count |
|
Counts the amount of times that the extension service rate limit was exceeded. |
com.hivemq.extension.services.publish-service-publishes |
|
Counts the amount of publish messages sent by the publish service. |
com.hivemq.extension.services.publish-service-publishes-to-client |
|
Counts the amount of publish messages sent by the publish service to a specific client. |
com.hivemq.qos-0-memory.used |
|
Holds the current amount of bytes QoS 0 messages use in memory |
com.hivemq.qos-0-memory.max |
|
Holds the maximum amount of bytes QoS 0 messages may use in memory |
com.hivemq.qos-0-memory.exceeded.per-client |
|
Holds the current amount of clients that exceeded their QoS 0 message memory |
com.hivemq.cpu-cores.used |
|
Holds the current amount of cpu cores used |
com.hivemq.cpu-cores.licensed |
|
Holds the maximum amount of cpu cores allowed by license |
com.hivemq.publish.without-matching-subscribers |
|
Counts the amount of publish messages received, without any matching subscribers |
com.hivemq.topic-alias.memory.usage |
|
Holds the current amount of bytes topic aliases use in memory |
com.hivemq.topic-alias.count.total |
|
Holds the current amount of topic aliases |
com.hivemq.overload-protection.level |
|
Holds the current level of overload protection |
com.hivemq.overload-protection.credits.per-tick |
|
Holds the current amount of credits a client receives per tick |
com.hivemq.overload-protection.clients.average-credits |
|
Holds the average amount of available credits between all clients |
com.hivemq.overload-protection.clients.using-credits |
|
Holds the current amount of clients having less than the full amount of credits |
com.hivemq.overload-protection.clients.backpressure-active |
|
Holds the current amount of clients for which backpressure is applied by overload protection |
Metric | Type | Description |
---|---|---|
com.hivemq.system.max-file-descriptor |
|
Maximum allowed amount of file descriptors as seen by the JVM |
com.hivemq.system.open-file-descriptor |
|
Amount of open file descriptors as seen by the JVM |
com.hivemq.system.physical-memory.free |
|
Current amount of free physical memory in bytes |
com.hivemq.system.physical-memory.total |
|
Total amount of physical memory (bytes) available |
com.hivemq.system.process-cpu.load |
|
Current CPU usage for the JVM process (0.0 idle – 1.0 full CPU usage) |
com.hivemq.system.process-cpu.time |
|
Total amount of CPU time the JVM process has used to this point(in nanoseconds) |
com.hivemq.system.swap-space.free |
|
Current amount of free swap space in bytes |
com.hivemq.system.swap-space.total |
|
Total amount of swap space available in bytes |
com.hivemq.system.system-cpu.load |
|
Current CPU usage for the whole system (0.0 idle – 1.0 full CPU usage) |
com.hivemq.system.os.global.uptime |
|
OS Uptime in seconds |
com.hivemq.system.os.global.memory.total |
|
The amount of actual physical memory, in bytes |
com.hivemq.system.os.global.memory.available |
|
The amount of physical memory currently available, in bytes |
com.hivemq.system.os.global.memory.swap.used |
|
The current memory committed to the paging/swap file(s), in bytes |
com.hivemq.system.os.global.memory.swap.total |
|
The current size of the paging/swap file(s), in bytes |
com.hivemq.system.os.file-descriptors.open |
|
Amount of currently open file descriptors |
com.hivemq.system.os.file-descriptors.max |
|
Maximum allowed amount of file descriptors |
com.hivemq.system.os.global.cpu.<cpu-name>.usage.idle |
|
Percentage of time that the CPU or CPUs were idle and the system did not have an outstanding disk I/O request |
com.hivemq.system.os.global.cpu.<cpu-name>.usage.iowait |
|
Percentage of time that the CPU or CPUs were idle during which the system had an outstanding disk I/O request |
com.hivemq.system.os.global.cpu.<cpu-name>.usage.irq |
|
Percentage of time that the CPU used to service hardware IRQs |
com.hivemq.system.os.global.cpu.<cpu-name>.usage.nice |
|
Percentage of CPU utilization that occurred while executing at the user level with nice priority |
com.hivemq.system.os.global.cpu.<cpu-name>.usage.softirq |
|
Percentage of time that the CPU used to service soft IRQs |
com.hivemq.system.os.global.cpu.<cpu-name>.usage.steal |
|
Percentage of time which the hypervisor dedicated for other guests in the system. |
com.hivemq.system.os.global.cpu.<cpu-name>.usage.sys |
|
Percentage of CPU utilization that occurred while executing at the system level (kernel) |
com.hivemq.system.os.global.cpu.<cpu-name>.usage.user |
|
Percentage of CPU utilization that occurred while executing at the user level (application) |
com.hivemq.system.os.global.cpu.<cpu-name>.total |
|
Percentage of total CPU utilization for convenience (not idle, calculated as sum of usage values) |
com.hivemq.system.os.process.threads.count |
|
Number of threads of the HiveMQ process as seen by the OS |
com.hivemq.system.os.process.time-spent.user |
|
Amount of milliseconds the the HiveMQ process has executed in user mode as seen by the OS |
com.hivemq.system.os.process.time-spent.kernel |
|
Amount of milliseconds the HiveMQ process has executed in kernel/system mode as seen by the OS |
com.hivemq.system.os.process.memory.virtual |
|
Virtual Memory Size (VSZ) in bytes. It includes all memory that the HiveMQ process can access, including memory that is swapped out and memory that is from shared libraries |
com.hivemq.system.os.process.memory.resident-set-size |
|
Resident Set Size (RSS) in bytes. It is used to show how much memory is allocated to the HiveMQ process and is in RAM. It does not include memory that is swapped out. It does include memory from shared libraries as long as the pages from those libraries are actually in memory. It does include all stack and heap memory |
com.hivemq.system.os.process.disk.bytes-written |
|
Number of bytes the HiveMQ process has written to disk |
com.hivemq.system.os.process.disk.bytes-read |
|
Number of bytes the HiveMQ process has read from disk |
com.hivemq.system.os.network-interface.<if-name>.bytes-received |
|
Bytes received by the network interface |
com.hivemq.system.os.network-interface.<if-name>.bytes-sent |
|
Bytes sent by the network interface |
com.hivemq.system.os.network-interface.<if-name>.packets-sent |
|
Packets sent by the network interface |
com.hivemq.system.os.network-interface.<if-name>.packets-received |
|
Packets received by the network interface |
com.hivemq.system.os.network-interface.<if-name>.in-errors |
|
Input errors for the network interface |
com.hivemq.system.os.network-interface.<if-name>.out-errors |
|
Output errors for the network interface |
com.hivemq.system.os.disks.<disk-name>.size |
|
Total size of disk with name |
com.hivemq.system.os.disks.<disk-name>.read.count |
|
Amount of read operations for disk with name |
com.hivemq.system.os.disks.<disk-name>.write.count |
|
Amount of read operations for disk with name |
com.hivemq.system.os.disks.<disk-name>.read.bytes |
|
Amount of bytes read from disk with name |
com.hivemq.system.os.disks.<disk-name>.write.bytes |
|
Amount of bytes written from disk with name |
The following table lists all metrics that are specific to the Java Virtual Machine.
Metric | Type | Description |
---|---|---|
|
|
The JVMs capacity of direct buffers. |
|
|
The count of direct buffers in the JVM. |
|
|
The amount of used direct buffers in the JVM. |
|
|
The JVMs capacity of mapped buffers. |
|
|
The count of mapped buffers in the JVM. |
|
|
The amount of used mapped buffers in the JVM. |
|
|
The total number of classes that have been loaded since the JVM has started execution. |
|
|
The total number of classes unloaded since the JVM has started execution. |
|
|
Amount of file descriptors as seen by the JVM |
|
|
The total amount of collections that occurred. |
|
|
The approximate accumulated collection elapsed time. |
|
|
The total amount of collections that occurred. |
|
|
The approximate accumulated collection elapsed time. |
|
|
The amount of memory in bytes that is committed for the JVM to use. |
|
|
The amount of memory in bytes that the JVM initially requests from the operating system for memory management. |
|
|
The maximum amount of memory in bytes that can be used for memory management. |
|
|
The ratio of used memory and unused memory. |
|
|
The amount of used memory in bytes. |
|
|
The amount of memory in bytes that is committed for the Java virtual machine to use. |
|
|
The amount of memory in bytes that the JVM initially requests from the operating system for memory management. |
|
|
The maximum amount of memory in bytes that can be used for memory management. |
|
|
The ratio of used memory and unused memory. |
|
|
The amount of used memory in bytes. |
|
|
The amount of memory in bytes that is committed for the JVM to use in this memory pool. |
|
|
The amount of memory in bytes that the JVM initially requests from the operating system for memory pool. |
|
|
The maximum amount of memory in bytes that can be used for this memory pool. |
|
|
An estimate of the memory usage of this memory pool. |
|
|
The amount of used memory in this memory pool in bytes. |
|
|
The amount of memory usage int this memory pool after the last garbage collection. |
|
|
The amount of memory in bytes that is committed for the Java virtual machine to use. |
|
|
The amount of memory in bytes that the JVM initially requests from the operating system for memory management. |
|
|
The maximum amount of memory in bytes that can be used for memory management. |
|
|
The amount of used memory in bytes. |
|
|
The amount of blocked threads in this JVM. |
|
|
The total amount of threads in this JVM. |
|
|
The amount of deamon threads in this JVM. |
|
|
The amount of detected deadlocks in this JVM. |
|
|
The amount of detected deadlocks in this JVM. |
|
|
The amount of new threads in this JVM. |
|
|
The amount of runnable threads in this JVM. |
|
|
The amount of terminated threads in this JVM. |
|
|
The amount of timed-waiting threads in this JVM. |
|
|
The amount of waiting threads in this JVM. |
The following table (Table 4) lists metrics that are only available for monitoring if the HiveMQ server instance is part of a cluster.
Metric | Type | Description |
---|---|---|
|
|
Provides measures for every class that made once a SEND request (every class get its own metric) |