ActiveMQ

ActiveMQ

Apache ActiveMQ is an open source message broker written in Java together with a full Java Message Service (JMS) client. It provides "Enterprise Features" which in this case means fostering the communication from more than one client or server. Supported clients include Java via JMS 1.1 as well as several other "cross language" clients. The communication is managed with features such as computer clustering and ability to use any database as a JMS persistence provider besides virtual memory, cache, and journal persistency.

Available solutions




Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/app/activemq_jmx


Apache ActiveMQ by JMX

Overview

For Zabbix version: 5.4 and higher
Official JMX Template for Apache ActiveMQ.

This template was tested on:

  • Apache ActiveMQ, version 5.15.5
  • Zabbix, version 5.4

Setup

See Zabbix template operation for basic instructions.

Metrics are collected by JMX.

  1. Enable and configure JMX access to Apache ActiveMQ. See documentation for instructions.
  2. Set values in host macros {$ACTIVEMQ.USERNAME}, {$ACTIVEMQ.PASSWORD}, {$ACTIVEMQ.PORT} and {$ACTIVEMQ.HTTP.PORT}.

Zabbix configuration

No specific Zabbix configuration is required.

Macros used

Name Description Default
{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH}

Minimum amount of consumers for broker. Can be used with broker name as context.

1
{$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME}

Time during which there may be no consumers on destination. Can be used with broker name as context.

5m
{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH}

Minimum amount of producers for broker. Can be used with broker name as context.

1
{$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME}

Time during which there may be no producers on broker. Can be used with broker name as context.

5m
{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH}

Minimum amount of consumers for destination. Can be used with destination name as context.

1
{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME}

Time during which there may be no consumers in destination. Can be used with destination name as context.

10m
{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH}

Minimum amount of producers for destination. Can be used with destination name as context.

1
{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME}

Time during which there may be no producers on destination. Can be used with destination name as context.

10m
{$ACTIVEMQ.EXPIRIED.WARN}

Threshold for expiried messages count. Can be used with destination name as context.

0
{$ACTIVEMQ.LLD.FILTER.BROKER.MATCHES}

Filter of discoverable discovered brokers

.*
{$ACTIVEMQ.LLD.FILTER.BROKER.NOT_MATCHES}

Filter to exclude discovered brokers

CHANGE IF NEEDED
{$ACTIVEMQ.LLD.FILTER.DESTINATION.MATCHES}

Filter of discoverable discovered destinations

.*
{$ACTIVEMQ.LLD.FILTER.DESTINATION.NOT_MATCHES}

Filter to exclude discovered destinations

CHANGE IF NEEDED
{$ACTIVEMQ.MEM.MAX.HIGH}

Memory threshold for HIGH trigger. Can be used with destination or broker name as context.

90
{$ACTIVEMQ.MEM.MAX.WARN}

Memory threshold for AVERAGE trigger. Can be used with destination or broker name as context.

75
{$ACTIVEMQ.MEM.TIME}

Time during which the metric can be above the threshold. Can be used with destination or broker name as context.

5m
{$ACTIVEMQ.MSG.RATE.WARN.TIME}

The time for message enqueue/dequeue rate. Can be used with destination or broker name as context.

15m
{$ACTIVEMQ.PASSWORD}

Password for JMX

activemq
{$ACTIVEMQ.PORT}

Port for JMX

1099
{$ACTIVEMQ.QUEUE.ENABLED}

Use this to disable alerting for specific destination. 1 = enabled, 0 = disabled. Can be used with destination name as context.

1
{$ACTIVEMQ.QUEUE.TIME}

Time during which the QueueSize can be higher than threshold. Can be used with destination name as context.

10m
{$ACTIVEMQ.QUEUE.WARN}

Threshold for QueueSize. Can be used with destination name as context.

100
{$ACTIVEMQ.STORE.MAX.HIGH}

Storage threshold for HIGH trigger. Can be used with broker name as context.

90
{$ACTIVEMQ.STORE.MAX.WARN}

Storage threshold for AVERAGE trigger. Can be used with broker name as context.

75
{$ACTIVEMQ.STORE.TIME}

Time during which the metric can be above the threshold. Can be used with destination or broker name as context.

5m
{$ACTIVEMQ.TEMP.MAX.HIGH}

Temp threshold for HIGH trigger. Can be used with broker name as context.

90
{$ACTIVEMQ.TEMP.MAX.WARN}

Temp threshold for AVERAGE trigger. Can be used with broker name as context.

75
{$ACTIVEMQ.TEMP.TIME}

Time during which the metric can be above the threshold. Can be used with destination or broker name as context.

5m
{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT}

Attribute for TotalConsumerCount per destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold.

TotalConsumerCount
{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT}

Attribute for TotalProducerCount per destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold.

TotalProducerCount
{$ACTIVEMQ.USER}

User for JMX

admin

Template links

There are no template links in this template.

Discovery rules

Name Description Type Key and additional info
Brokers discovery

Discovery of brokers

JMX jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=*"]

Filter:

FORMULA A and B

- A: {#JMXBROKERNAME} MATCHES_REGEX {$ACTIVEMQ.LLD.FILTER.BROKER.MATCHES}

- B: {#JMXBROKERNAME} NOT_MATCHES_REGEX {$ACTIVEMQ.LLD.FILTER.BROKER.NOT_MATCHES}

Destinations discovery

Discovery of destinations

JMX jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=,destinationType=,destinationName=*"]

Filter:

FORMULA A and B

- A: {#JMXDESTINATIONNAME} MATCHES_REGEX {$ACTIVEMQ.LLD.FILTER.DESTINATION.MATCHES}

- B: {#JMXDESTINATIONNAME} NOT_MATCHES_REGEX {$ACTIVEMQ.LLD.FILTER.DESTINATION.NOT_MATCHES}

Items collected

Group Name Description Type Key and additional info
ActiveMQ Broker {#JMXBROKERNAME}: Version

The version of the broker.

JMX jmx[{#JMXOBJ},BrokerVersion]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 3h

ActiveMQ Broker {#JMXBROKERNAME}: Uptime

The uptime of the broker.

JMX jmx[{#JMXOBJ},UptimeMillis]

Preprocessing:

- MULTIPLIER: 0.001

ActiveMQ Broker {#JMXBROKERNAME}: Memory limit

Memory limit, in bytes, used for holding undelivered messages before paging to temporary storage.

JMX jmx[{#JMXOBJ},MemoryLimit]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1h

ActiveMQ Broker {#JMXBROKERNAME}: Memory usage in percents

Percent of memory limit used.

JMX jmx[{#JMXOBJ}, MemoryPercentUsage]
ActiveMQ Broker {#JMXBROKERNAME}: Storage limit

Disk limit, in bytes, used for persistent messages before producers are blocked.

JMX jmx[{#JMXOBJ},StoreLimit]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1h

ActiveMQ Broker {#JMXBROKERNAME}: Storage usage in percents

Percent of store limit used.

JMX jmx[{#JMXOBJ},StorePercentUsage]
ActiveMQ Broker {#JMXBROKERNAME}: Temp limit

Disk limit, in bytes, used for non-persistent messages and temporary data before producers are blocked.

JMX jmx[{#JMXOBJ},TempLimit]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1h

ActiveMQ Broker {#JMXBROKERNAME}: Temp usage in percents

Percent of temp limit used.

JMX jmx[{#JMXOBJ},TempPercentUsage]
ActiveMQ Broker {#JMXBROKERNAME}: Messages enqueue rate

Rate of messages that have been sent to the broker.

JMX jmx[{#JMXOBJ},TotalEnqueueCount]

Preprocessing:

- CHANGE_PER_SECOND

ActiveMQ Broker {#JMXBROKERNAME}: Messages dequeue rate

Rate of messages that have been delivered by the broker and acknowledged by consumers.

JMX jmx[{#JMXOBJ},TotalDequeueCount]

Preprocessing:

- CHANGE_PER_SECOND

ActiveMQ Broker {#JMXBROKERNAME}: Consumers count total

Number of consumers attached to this broker.

JMX jmx[{#JMXOBJ},TotalConsumerCount]
ActiveMQ Broker {#JMXBROKERNAME}: Producers count total

Number of producers attached to this broker.

JMX jmx[{#JMXOBJ},TotalProducerCount]
ActiveMQ {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count

Number of consumers attached to this destination.

JMX jmx[{#JMXOBJ},ConsumerCount]
ActiveMQ {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count total on {#JMXBROKERNAME}

Number of consumers attached to the broker of this destination. Used to suppress destination's triggers when the count of consumers on the broker is lower than threshold.

JMX jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}]

Preprocessing:

- IN_RANGE: 0 {$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH}

⛔️ON_FAIL: CUSTOM_VALUE -> {$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH}

- DISCARD_UNCHANGED_HEARTBEAT: 3h

ActiveMQ {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count

Number of producers attached to this destination.

JMX jmx[{#JMXOBJ},ProducerCount]
ActiveMQ {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count total on {#JMXBROKERNAME}

Number of producers attached to the broker of this destination. Used to suppress destination's triggers when the count of producers on the broker is lower than threshold.

JMX jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}]

Preprocessing:

- IN_RANGE: 0 {$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH}

⛔️ON_FAIL: CUSTOM_VALUE -> {$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH}

- DISCARD_UNCHANGED_HEARTBEAT: 3h

ActiveMQ {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage in percents

The percentage of the memory limit used.

JMX jmx[{#JMXOBJ},MemoryPercentUsage]
ActiveMQ {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages enqueue rate

Rate of messages that have been sent to the destination.

JMX jmx[{#JMXOBJ},EnqueueCount]

Preprocessing:

- CHANGE_PER_SECOND

ActiveMQ {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages dequeue rate

Rate of messages that has been acknowledged (and removed) from the destination.

JMX jmx[{#JMXOBJ},DequeueCount]

Preprocessing:

- CHANGE_PER_SECOND

ActiveMQ {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size

Number of messages on this destination, including any that have been dispatched but not acknowledged.

JMX jmx[{#JMXOBJ},QueueSize]
ActiveMQ {#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count

Number of messages that have been expired.

JMX jmx[{#JMXOBJ},ExpiredCount]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 3h

Triggers

Name Description Expression Severity Dependencies and additional info
Broker {#JMXBROKERNAME}: Version has been changed

Broker {#JMXBROKERNAME} version has changed. Ack to close.

{TEMPLATE_NAME:jmx[{#JMXOBJ},BrokerVersion].diff()}=1 and {TEMPLATE_NAME:jmx[{#JMXOBJ},BrokerVersion].strlen()}>0 INFO

Manual close: YES

Broker {#JMXBROKERNAME}: Broker has been restarted (uptime < 10m)

Uptime is less than 10 minutes

{TEMPLATE_NAME:jmx[{#JMXOBJ},UptimeMillis].last()}<10m INFO

Manual close: YES

Broker {#JMXBROKERNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.WARN:"{#JMXBROKERNAME}"}%)

-

{TEMPLATE_NAME:jmx[{#JMXOBJ}, MemoryPercentUsage].min({$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXBROKERNAME}"} AVERAGE

Depends on:

- Broker {#JMXBROKERNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"}%)

Broker {#JMXBROKERNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"}%)

-

{TEMPLATE_NAME:jmx[{#JMXOBJ}, MemoryPercentUsage].min({$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"} HIGH
Broker {#JMXBROKERNAME}: Storage usage is too high (over {$ACTIVEMQ.STORE.MAX.WARN:"{#JMXBROKERNAME}"}%)

-

{TEMPLATE_NAME:jmx[{#JMXOBJ},StorePercentUsage].min({$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.STORE.MAX.WARN:"{#JMXBROKERNAME}"} AVERAGE

Depends on:

- Broker {#JMXBROKERNAME}: Storage usage is too high (over {$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"}%)

Broker {#JMXBROKERNAME}: Storage usage is too high (over {$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"}%)

-

{TEMPLATE_NAME:jmx[{#JMXOBJ},StorePercentUsage].min({$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"} HIGH
Broker {#JMXBROKERNAME}: Temp usage is too high (over {$ACTIVEMQ.TEMP.MAX.WARN:"{#JMXBROKERNAME}"}%)

-

{TEMPLATE_NAME:jmx[{#JMXOBJ},TempPercentUsage].min({$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.TEMP.MAX.WARN} AVERAGE

Depends on:

- Broker {#JMXBROKERNAME}: Temp usage is too high (over {$ACTIVEMQ.TEMP.MAX.WARN:"{#JMXBROKERNAME}"}%)

Broker {#JMXBROKERNAME}: Temp usage is too high (over {$ACTIVEMQ.TEMP.MAX.WARN:"{#JMXBROKERNAME}"}%)

-

{TEMPLATE_NAME:jmx[{#JMXOBJ},TempPercentUsage].min({$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.TEMP.MAX.HIGH} HIGH
Broker {#JMXBROKERNAME}: Message enqueue rate is higer than dequeue rate for {$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"}

Enqueue rate is higer than dequeue rate. It may indicate performance problems.

{TEMPLATE_NAME:jmx[{#JMXOBJ},TotalEnqueueCount].avg({$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"})}>{Apache ActiveMQ by JMX:jmx[{#JMXOBJ},TotalEnqueueCount].avg({$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"})} AVERAGE
Broker {#JMXBROKERNAME}: Consumers count is too low (below {$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} for {$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME:"{#JMXBROKERNAME}"})

-

{TEMPLATE_NAME:jmx[{#JMXOBJ},TotalConsumerCount].max({$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME:"{#JMXBROKERNAME}"})}<{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} HIGH
Broker {#JMXBROKERNAME}: Producers count is too low (below {$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} for {$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME:"{#JMXBROKERNAME}"})

-

{TEMPLATE_NAME:jmx[{#JMXOBJ},TotalProducerCount].max({$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME:"{#JMXBROKERNAME}"})}<{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} HIGH
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count is too low (below {$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} for {$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})

-

{TEMPLATE_NAME:jmx[{#JMXOBJ},ConsumerCount].max({$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})}<{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and {Apache ActiveMQ by JMX:jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}].last()}>{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"}

Recovery expression:

{TEMPLATE_NAME:jmx[{#JMXOBJ},ConsumerCount].min({$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})}>={$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"}
AVERAGE

Manual close: YES

{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count is too low (below {$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} for {$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})

-

{TEMPLATE_NAME:jmx[{#JMXOBJ},ProducerCount].max({$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})}<{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and {Apache ActiveMQ by JMX:jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}].last()}>{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"}

Recovery expression:

{TEMPLATE_NAME:jmx[{#JMXOBJ},ProducerCount].min({$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})}>={$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"}
AVERAGE

Manual close: YES

{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.WARN:"{#JMXDESTINATIONNAME}"}%)

-

{TEMPLATE_NAME:jmx[{#JMXOBJ},MemoryPercentUsage].last()}>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXDESTINATIONNAME}"} AVERAGE
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXDESTINATIONNAME}"}%)

-

{TEMPLATE_NAME:jmx[{#JMXOBJ},MemoryPercentUsage].last()}>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXDESTINATIONNAME}"} HIGH
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Message enqueue rate is higer than dequeue rate for {$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"}

Enqueue rate is higer than dequeue rate. It may indicate performance problems.

{TEMPLATE_NAME:jmx[{#JMXOBJ},EnqueueCount].avg({$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"})}>{Apache ActiveMQ by JMX:jmx[{#JMXOBJ},DequeueCount].avg({$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"})} AVERAGE
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size higer than {$ACTIVEMQ.QUEUE.WARN:"{#JMXDESTINATIONNAME}"} for {$ACTIVEMQ.QUEUE.TIME:"{#JMXDESTINATIONNAME}"}

Queue size is higer than treshold. It may indicate performance problems.

{TEMPLATE_NAME:jmx[{#JMXOBJ},QueueSize].min({$ACTIVEMQ.QUEUE.TIME:"{#JMXDESTINATIONNAME}"})}>{$ACTIVEMQ.QUEUE.WARN:"{#JMXDESTINATIONNAME}"} and {$ACTIVEMQ.QUEUE.ENABLED:"{#JMXDESTINATIONNAME}"}=1 AVERAGE
{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count higer than {$ACTIVEMQ.EXPIRIED.WARN:"{#JMXDESTINATIONNAME}"}

This metric represents the number of messages that expired before they could be delivered. If you expect all messages to be delivered and acknowledged within a certain amount of time, you can set an expiration for each message, and investigate if your ExpiredCount metric rises above zero.

{TEMPLATE_NAME:jmx[{#JMXOBJ},ExpiredCount].last()}>{$ACTIVEMQ.EXPIRIED.WARN:"{#JMXDESTINATIONNAME}"} AVERAGE

Feedback

Please report any issues with the template at https://support.zabbix.com

You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.

Articles and documentation

+ Propose new article
Add your solution