zabbix_export: version: '7.0' template_groups: - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6 name: Templates/Applications templates: - uuid: c87e0a2e0683483ab7c6f3c380e9f840 template: 'Apache ActiveMQ by JMX' name: 'Apache ActiveMQ by JMX' description: | The template to monitor Apache ActiveMQ by Zabbix that work without any external scripts. The metrics are collected by JMX. You can set macro values and add macros with context for specific brokers or destinations following macro description. You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/411049-discussion-thread-for-official-zabbix-template-amq Generated by official Zabbix template tool "Templator" 2.0.0 vendor: name: Zabbix version: 7.0-0 groups: - name: Templates/Applications discovery_rules: - uuid: cbd9f98c2c1e412081a546e18066a868 name: 'Brokers discovery' type: JMX key: 'jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=*"]' delay: 1h username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' filter: evaltype: FORMULA formula: 'A and B' conditions: - macro: '{#JMXBROKERNAME}' value: '{$ACTIVEMQ.LLD.FILTER.BROKER.MATCHES}' formulaid: A - macro: '{#JMXBROKERNAME}' value: '{$ACTIVEMQ.LLD.FILTER.BROKER.NOT_MATCHES}' operator: NOT_MATCHES_REGEX formulaid: B description: 'Discovery of brokers' item_prototypes: - uuid: 29a0f197bfe847d596dad4923364490e name: 'Broker {#JMXBROKERNAME}: Version' type: JMX key: 'jmx[{#JMXOBJ},BrokerVersion]' history: 7d trends: '0' value_type: TEXT username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: 'The version of the broker.' preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 3h jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: inventory trigger_prototypes: - uuid: 7902d81681874aa3acf33d90316f9864 expression: 'last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion],#1)<>last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion],#2) and length(last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion]))>0' name: 'Broker {#JMXBROKERNAME}: Version has been changed' event_name: 'Broker {#JMXBROKERNAME}: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'The Broker {#JMXBROKERNAME} version has changed. Acknowledge to close the problem manually.' manual_close: 'YES' tags: - tag: scope value: notice - uuid: 85c19ccb8b6a4242a8ba699e76836427 name: 'Broker {#JMXBROKERNAME}: Memory limit' type: JMX key: 'jmx[{#JMXOBJ},MemoryLimit]' history: 7d units: B username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: 'Memory limit, in bytes, used for holding undelivered messages before paging to temporary storage.' preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: memory - uuid: 5e2a5638adf6405087014bfcfc8ffc93 name: 'Broker {#JMXBROKERNAME}: Memory usage in percents' type: JMX key: 'jmx[{#JMXOBJ}, MemoryPercentUsage]' history: 7d units: '%' username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: 'Percent of memory limit used.' jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: memory trigger_prototypes: - uuid: e805b8cca9744940affc3bdd234a7587 expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"}' name: 'Broker {#JMXBROKERNAME}: Memory usage is too high' event_name: 'Broker {#JMXBROKERNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"}%)' priority: HIGH tags: - tag: scope value: performance - uuid: 3e741e339fff422fae67b5333faa1e20 expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXBROKERNAME}"}' name: 'Broker {#JMXBROKERNAME}: Memory usage is too high' event_name: 'Broker {#JMXBROKERNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.WARN:"{#JMXBROKERNAME}"}%)' priority: AVERAGE dependencies: - name: 'Broker {#JMXBROKERNAME}: Memory usage is too high' expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"}' tags: - tag: scope value: performance - uuid: 78806476b5cb4ce48f8ca8dbd173c7c3 name: 'Broker {#JMXBROKERNAME}: Storage limit' type: JMX key: 'jmx[{#JMXOBJ},StoreLimit]' history: 7d units: B username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: 'Disk limit, in bytes, used for persistent messages before producers are blocked.' preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: storage - uuid: fc4c79543a6f4b7b9c22f11b61b644c9 name: 'Broker {#JMXBROKERNAME}: Storage usage in percents' type: JMX key: 'jmx[{#JMXOBJ},StorePercentUsage]' history: 7d units: '%' username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: 'Percent of store limit used.' jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: storage trigger_prototypes: - uuid: 2e1c9f92c87f446ebab68ac638c713c5 expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"}' name: 'Broker {#JMXBROKERNAME}: Storage usage is too high' event_name: 'Broker {#JMXBROKERNAME}: Storage usage is too high (over {$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"}%)' priority: HIGH tags: - tag: scope value: capacity - uuid: 271b33edce84439a91d6a253f45e5bf6 expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.WARN:"{#JMXBROKERNAME}"}' name: 'Broker {#JMXBROKERNAME}: Storage usage is too high' event_name: 'Broker {#JMXBROKERNAME}: Storage usage is too high (over {$ACTIVEMQ.STORE.MAX.WARN:"{#JMXBROKERNAME}"}%)' priority: AVERAGE dependencies: - name: 'Broker {#JMXBROKERNAME}: Storage usage is too high' expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"}' tags: - tag: scope value: capacity - uuid: 09db80ee80ea47189142130d35a8e1c2 name: 'Broker {#JMXBROKERNAME}: Temp limit' type: JMX key: 'jmx[{#JMXOBJ},TempLimit]' history: 7d units: B username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: 'Disk limit, in bytes, used for non-persistent messages and temporary data before producers are blocked.' preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: storage - uuid: 95354144839e4d22a82c4e9a1fab83d9 name: 'Broker {#JMXBROKERNAME}: Temp usage in percents' type: JMX key: 'jmx[{#JMXOBJ},TempPercentUsage]' history: 7d units: '%' username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: 'Percent of temp limit used.' jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: storage trigger_prototypes: - uuid: 422252a81e3e4261bbd7f331f48c6257 expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.HIGH}' name: 'Broker {#JMXBROKERNAME}: Temp usage is too high' event_name: 'Broker {#JMXBROKERNAME}: Temp usage is too high (over {$ACTIVEMQ.TEMP.MAX.WARN:"{#JMXBROKERNAME}"}%)' priority: HIGH tags: - tag: scope value: capacity - uuid: acb8f6e0762f48c2bd4c03f2a55b2f44 expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.WARN}' name: 'Broker {#JMXBROKERNAME}: Temp usage is too high' event_name: 'Broker {#JMXBROKERNAME}: Temp usage is too high (over {$ACTIVEMQ.TEMP.MAX.WARN:"{#JMXBROKERNAME}"}%)' priority: AVERAGE dependencies: - name: 'Broker {#JMXBROKERNAME}: Temp usage is too high' expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.HIGH}' tags: - tag: scope value: capacity - uuid: 64ab04e456804e10a6c78c3190807506 name: 'Broker {#JMXBROKERNAME}: Consumers count total' type: JMX key: 'jmx[{#JMXOBJ},TotalConsumerCount]' history: 7d username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: 'Number of consumers attached to this broker.' jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: broker trigger_prototypes: - uuid: 6906f0a1ef804da4a1203ca9d96ab8a0 expression: 'max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalConsumerCount],{$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME:"{#JMXBROKERNAME}"})<{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"}' name: 'Broker {#JMXBROKERNAME}: Consumers count is too low' event_name: 'Broker {#JMXBROKERNAME}: Consumers count is too low (below {$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} for {$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME:"{#JMXBROKERNAME}"})' priority: HIGH tags: - tag: scope value: notice - uuid: 48bc7dab4a1a40d8a823e880018cf8e7 name: 'Broker {#JMXBROKERNAME}: Messages dequeue rate' type: JMX key: 'jmx[{#JMXOBJ},TotalDequeueCount]' history: 7d units: messages/sec username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: 'Rate of messages that have been delivered by the broker and acknowledged by consumers.' preprocessing: - type: CHANGE_PER_SECOND parameters: - '' jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: broker - uuid: a462499eecbd443e931a9aa831240f65 name: 'Broker {#JMXBROKERNAME}: Messages enqueue rate' type: JMX key: 'jmx[{#JMXOBJ},TotalEnqueueCount]' history: 7d units: messages/sec username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: 'Rate of messages that have been sent to the broker.' preprocessing: - type: CHANGE_PER_SECOND parameters: - '' jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: broker trigger_prototypes: - uuid: a3ab7bca031c45059418fa82a3c67369 expression: 'avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalEnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"})>avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalEnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"})' name: 'Broker {#JMXBROKERNAME}: Message enqueue rate is higher than dequeue rate' event_name: 'Broker {#JMXBROKERNAME}: Message enqueue rate is higher than dequeue rate for {$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"}' priority: AVERAGE description: 'Enqueue rate is higher than dequeue rate. It may indicate performance problems.' tags: - tag: scope value: performance - uuid: 2453d8221cec4e1ead6622c001ac9a8c name: 'Broker {#JMXBROKERNAME}: Producers count total' type: JMX key: 'jmx[{#JMXOBJ},TotalProducerCount]' history: 7d username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: 'Number of producers attached to this broker.' jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: broker trigger_prototypes: - uuid: 2ee6ad72a98143b59d8d1136fffdbe50 expression: 'max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalProducerCount],{$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME:"{#JMXBROKERNAME}"})<{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"}' name: 'Broker {#JMXBROKERNAME}: Producers count is too low' event_name: 'Broker {#JMXBROKERNAME}: Producers count is too low (below {$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} for {$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME:"{#JMXBROKERNAME}"})' priority: HIGH tags: - tag: scope value: notice - uuid: a46d7281cb234ccaadacbb7d311cbd39 name: 'Broker {#JMXBROKERNAME}: Uptime' type: JMX key: 'jmx[{#JMXOBJ},UptimeMillis]' history: 7d units: s username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: 'The uptime of the broker.' preprocessing: - type: MULTIPLIER parameters: - '0.001' jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: system trigger_prototypes: - uuid: 6abb3813bb52465aa4a5f4bebfe999c3 expression: 'last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},UptimeMillis])<10m' name: 'Broker {#JMXBROKERNAME}: Broker has been restarted' event_name: 'Broker {#JMXBROKERNAME}: Broker has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes.' manual_close: 'YES' tags: - tag: scope value: notice graph_prototypes: - uuid: 465b9319e0dc4728a2733c69521e9e81 name: 'Broker {#JMXBROKERNAME}: Messages rate' graph_items: - drawtype: GRADIENT_LINE color: 199C0D item: host: 'Apache ActiveMQ by JMX' key: 'jmx[{#JMXOBJ},TotalEnqueueCount]' - sortorder: '1' drawtype: GRADIENT_LINE color: F63100 item: host: 'Apache ActiveMQ by JMX' key: 'jmx[{#JMXOBJ},TotalDequeueCount]' - uuid: 9cdb5b2bed724f45a305a8434d28c105 name: 'Broker {#JMXBROKERNAME}: Producers and consumers' graph_items: - drawtype: GRADIENT_LINE color: 199C0D item: host: 'Apache ActiveMQ by JMX' key: 'jmx[{#JMXOBJ},TotalProducerCount]' - sortorder: '1' drawtype: GRADIENT_LINE color: F63100 item: host: 'Apache ActiveMQ by JMX' key: 'jmx[{#JMXOBJ},TotalConsumerCount]' - uuid: 6b018bbe9d154d2d865b7922eaa7ae28 name: 'Broker {#JMXBROKERNAME}: Resources usage' graph_items: - drawtype: GRADIENT_LINE color: 199C0D item: host: 'Apache ActiveMQ by JMX' key: 'jmx[{#JMXOBJ}, MemoryPercentUsage]' - sortorder: '1' drawtype: GRADIENT_LINE color: F63100 item: host: 'Apache ActiveMQ by JMX' key: 'jmx[{#JMXOBJ},StorePercentUsage]' - sortorder: '2' drawtype: GRADIENT_LINE color: 00611C item: host: 'Apache ActiveMQ by JMX' key: 'jmx[{#JMXOBJ},TempPercentUsage]' jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' - uuid: 14432547793d42d2b75c7b08fcbb3545 name: 'Destinations discovery' type: JMX key: 'jmx.discovery[beans,"org.apache.activemq:type=Broker,brokerName=*,destinationType=*,destinationName=*"]' delay: 1h username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' filter: evaltype: FORMULA formula: 'A and B' conditions: - macro: '{#JMXDESTINATIONNAME}' value: '{$ACTIVEMQ.LLD.FILTER.DESTINATION.MATCHES}' formulaid: A - macro: '{#JMXDESTINATIONNAME}' value: '{$ACTIVEMQ.LLD.FILTER.DESTINATION.NOT_MATCHES}' operator: NOT_MATCHES_REGEX formulaid: B description: 'Discovery of destinations' item_prototypes: - uuid: fd8129c9a66043d896a70c91c8b0d471 name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count total on {#JMXBROKERNAME}' type: JMX key: 'jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}]' history: 7d username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: '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.' preprocessing: - type: IN_RANGE parameters: - '0' - '{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH}' error_handler: CUSTOM_VALUE error_handler_params: '{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH}' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 3h jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: destination - uuid: 99f2094b02f848e785e40296958c5450 name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count total on {#JMXBROKERNAME}' type: JMX key: 'jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}]' history: 7d username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: '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.' preprocessing: - type: IN_RANGE parameters: - '0' - '{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH}' error_handler: CUSTOM_VALUE error_handler_params: '{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH}' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 3h jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: destination - uuid: 5e93e53a0c2d49a49d421ded87b6b1f8 name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count' type: JMX key: 'jmx[{#JMXOBJ},ConsumerCount]' history: 7d username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: 'Number of consumers attached to this destination.' jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: destination - uuid: 3536ec77069a434e854415f0a3270e67 name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages dequeue rate' type: JMX key: 'jmx[{#JMXOBJ},DequeueCount]' history: 7d units: messages/sec username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: 'Rate of messages that has been acknowledged (and removed) from the destination.' preprocessing: - type: CHANGE_PER_SECOND parameters: - '' jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: destination - uuid: a6dacc8c4d1f4724bf49c63449992035 name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages enqueue rate' type: JMX key: 'jmx[{#JMXOBJ},EnqueueCount]' history: 7d units: messages/sec username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: 'Rate of messages that have been sent to the destination.' preprocessing: - type: CHANGE_PER_SECOND parameters: - '' jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: destination - uuid: 1c4ea913a9564d74b31ef82314203a15 name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count' type: JMX key: 'jmx[{#JMXOBJ},ExpiredCount]' history: 7d username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: 'Number of messages that have been expired.' preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 3h jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: destination trigger_prototypes: - uuid: a498405c5b764c1ea9f0e151adf94ed7 expression: 'last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ExpiredCount])>{$ACTIVEMQ.EXPIRED.WARN:"{#JMXDESTINATIONNAME}"}' name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count is high' event_name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count higher than {$ACTIVEMQ.EXPIRED.WARN:"{#JMXDESTINATIONNAME}"}' priority: AVERAGE description: '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.' tags: - tag: scope value: performance - uuid: 158fac5a1b3c4f07a4004a733f9b6995 name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage in percents' type: JMX key: 'jmx[{#JMXOBJ},MemoryPercentUsage]' history: 7d units: '%' username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: 'The percentage of the memory limit used.' jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: memory trigger_prototypes: - uuid: 197ab32730a84f79ba1b1e827a10e175 expression: 'last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},MemoryPercentUsage])>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXDESTINATIONNAME}"}' name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high' event_name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXDESTINATIONNAME}"}%)' priority: HIGH tags: - tag: scope value: performance - uuid: 1e4e3a969b434c6d972251f8c9b3f2a7 expression: 'last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},MemoryPercentUsage])>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXDESTINATIONNAME}"}' name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high' event_name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.WARN:"{#JMXDESTINATIONNAME}"}%)' priority: AVERAGE tags: - tag: scope value: performance - uuid: 82ee74872f6e46efbf16ae0705bcf2a6 name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count' type: JMX key: 'jmx[{#JMXOBJ},ProducerCount]' history: 7d username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: 'Number of producers attached to this destination.' jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: destination - uuid: fdc1e26fbe6545d3bdfc86f6f8c91b8b name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size' type: JMX key: 'jmx[{#JMXOBJ},QueueSize]' history: 7d username: '{$ACTIVEMQ.USER}' password: '{$ACTIVEMQ.PASSWORD}' description: 'Number of messages on this destination, including any that have been dispatched but not acknowledged.' jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: component value: destination trigger_prototypes: - uuid: f1c49943152c407088e3bf288b650b41 expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},QueueSize],{$ACTIVEMQ.QUEUE.TIME:"{#JMXDESTINATIONNAME}"})>{$ACTIVEMQ.QUEUE.WARN:"{#JMXDESTINATIONNAME}"} and {$ACTIVEMQ.QUEUE.ENABLED:"{#JMXDESTINATIONNAME}"}=1' name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size is high' event_name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size higher than {$ACTIVEMQ.QUEUE.WARN:"{#JMXDESTINATIONNAME}"} for {$ACTIVEMQ.QUEUE.TIME:"{#JMXDESTINATIONNAME}"}' priority: AVERAGE description: 'Queue size is higher than threshold. It may indicate performance problems.' tags: - tag: scope value: performance trigger_prototypes: - uuid: c366d4b329c0471386566d6795c5787f expression: 'max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ConsumerCount],{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})<{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and last(/Apache ActiveMQ by JMX/jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}])>{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"}' recovery_mode: RECOVERY_EXPRESSION recovery_expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ConsumerCount],{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})>={$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"}' name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count is too low' event_name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count is too low (below {$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} for {$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})' priority: AVERAGE manual_close: 'YES' tags: - tag: scope value: notice - uuid: 344a0b83a5444d009aa56e97c1c0171b expression: 'avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},EnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"})>avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},DequeueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"})' name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Message enqueue rate is higher than dequeue rate' event_name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Message enqueue rate is higher than dequeue rate for {$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"}' priority: AVERAGE description: 'Enqueue rate is higher than dequeue rate. It may indicate performance problems.' tags: - tag: scope value: notice - uuid: 725d0270554e4fe59d138becfa3e6377 expression: 'max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ProducerCount],{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})<{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and last(/Apache ActiveMQ by JMX/jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}])>{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"}' recovery_mode: RECOVERY_EXPRESSION recovery_expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ProducerCount],{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})>={$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"}' name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count is too low' event_name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count is too low (below {$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} for {$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})' priority: AVERAGE manual_close: 'YES' tags: - tag: scope value: notice graph_prototypes: - uuid: 006f397fbb664f9981b9228808870239 name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage' graph_items: - drawtype: GRADIENT_LINE color: 199C0D item: host: 'Apache ActiveMQ by JMX' key: 'jmx[{#JMXOBJ},MemoryPercentUsage]' - uuid: 1c9a999ec2b94942ad10f408b470b1a2 name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Messages rate' graph_items: - drawtype: GRADIENT_LINE color: 199C0D item: host: 'Apache ActiveMQ by JMX' key: 'jmx[{#JMXOBJ},EnqueueCount]' - sortorder: '1' drawtype: GRADIENT_LINE color: F63100 item: host: 'Apache ActiveMQ by JMX' key: 'jmx[{#JMXOBJ},DequeueCount]' - uuid: 0854230a67bc4d29b3b3dc2cb7eeaefa name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers and consumers' graph_items: - drawtype: GRADIENT_LINE color: 199C0D item: host: 'Apache ActiveMQ by JMX' key: 'jmx[{#JMXOBJ},ProducerCount]' - sortorder: '1' drawtype: GRADIENT_LINE color: F63100 item: host: 'Apache ActiveMQ by JMX' key: 'jmx[{#JMXOBJ},ConsumerCount]' jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' tags: - tag: class value: application - tag: target value: apache-activemq macros: - macro: '{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH}' value: '1' description: 'Minimum amount of consumers for broker. Can be used with broker name as context.' - macro: '{$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME}' value: 5m description: 'Time during which there may be no consumers on destination. Can be used with broker name as context.' - macro: '{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH}' value: '1' description: 'Minimum amount of producers for broker. Can be used with broker name as context.' - macro: '{$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME}' value: 5m description: 'Time during which there may be no producers on broker. Can be used with broker name as context.' - macro: '{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH}' value: '1' description: 'Minimum amount of consumers for destination. Can be used with destination name as context.' - macro: '{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME}' value: 10m description: 'Time during which there may be no consumers in destination. Can be used with destination name as context.' - macro: '{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH}' value: '1' description: 'Minimum amount of producers for destination. Can be used with destination name as context.' - macro: '{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME}' value: 10m description: 'Time during which there may be no producers on destination. Can be used with destination name as context.' - macro: '{$ACTIVEMQ.EXPIRED.WARN}' value: '0' description: 'Threshold for expired messages count. Can be used with destination name as context.' - macro: '{$ACTIVEMQ.LLD.FILTER.BROKER.MATCHES}' value: '.*' description: 'Filter of discoverable discovered brokers' - macro: '{$ACTIVEMQ.LLD.FILTER.BROKER.NOT_MATCHES}' value: 'CHANGE IF NEEDED' description: 'Filter to exclude discovered brokers' - macro: '{$ACTIVEMQ.LLD.FILTER.DESTINATION.MATCHES}' value: '.*' description: 'Filter of discoverable discovered destinations' - macro: '{$ACTIVEMQ.LLD.FILTER.DESTINATION.NOT_MATCHES}' value: 'CHANGE IF NEEDED' description: 'Filter to exclude discovered destinations' - macro: '{$ACTIVEMQ.MEM.MAX.HIGH}' value: '90' description: 'Memory threshold for HIGH trigger. Can be used with destination or broker name as context.' - macro: '{$ACTIVEMQ.MEM.MAX.WARN}' value: '75' description: 'Memory threshold for AVERAGE trigger. Can be used with destination or broker name as context.' - macro: '{$ACTIVEMQ.MEM.TIME}' value: 5m description: 'Time during which the metric can be above the threshold. Can be used with destination or broker name as context.' - macro: '{$ACTIVEMQ.MSG.RATE.WARN.TIME}' value: 15m description: 'The time for message enqueue/dequeue rate. Can be used with destination or broker name as context.' - macro: '{$ACTIVEMQ.PASSWORD}' value: activemq description: 'Password for JMX' - macro: '{$ACTIVEMQ.PORT}' value: '1099' description: 'Port for JMX' - macro: '{$ACTIVEMQ.QUEUE.ENABLED}' value: '1' description: 'Use this to disable alerting for specific destination. 1 = enabled, 0 = disabled. Can be used with destination name as context.' - macro: '{$ACTIVEMQ.QUEUE.TIME}' value: 10m description: 'Time during which the QueueSize can be higher than threshold. Can be used with destination name as context.' - macro: '{$ACTIVEMQ.QUEUE.WARN}' value: '100' description: 'Threshold for QueueSize. Can be used with destination name as context.' - macro: '{$ACTIVEMQ.STORE.MAX.HIGH}' value: '90' description: 'Storage threshold for HIGH trigger. Can be used with broker name as context.' - macro: '{$ACTIVEMQ.STORE.MAX.WARN}' value: '75' description: 'Storage threshold for AVERAGE trigger. Can be used with broker name as context.' - macro: '{$ACTIVEMQ.STORE.TIME}' value: 5m description: 'Time during which the metric can be above the threshold. Can be used with destination or broker name as context.' - macro: '{$ACTIVEMQ.TEMP.MAX.HIGH}' value: '90' description: 'Temp threshold for HIGH trigger. Can be used with broker name as context.' - macro: '{$ACTIVEMQ.TEMP.MAX.WARN}' value: '75' description: 'Temp threshold for AVERAGE trigger. Can be used with broker name as context.' - macro: '{$ACTIVEMQ.TEMP.TIME}' value: 5m description: 'Time during which the metric can be above the threshold. Can be used with destination or broker name as context.' - macro: '{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT}' value: TotalConsumerCount description: 'Attribute for TotalConsumerCount per destination. Used to suppress destination''s triggers when the count of consumers on the broker is lower than threshold.' - macro: '{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT}' value: TotalProducerCount description: 'Attribute for TotalProducerCount per destination. Used to suppress destination''s triggers when the count of consumers on the broker is lower than threshold.' - macro: '{$ACTIVEMQ.USER}' value: admin description: 'User for JMX' dashboards: - uuid: 292193a9f5fc4a40a78aa304a6ceb536 name: 'Apache ActiveMQ: Overview' pages: - name: General widgets: - type: graphprototype width: '12' height: '15' fields: - type: INTEGER name: columns value: '1' - type: INTEGER name: rows value: '3' - type: GRAPH_PROTOTYPE name: graphid value: host: 'Apache ActiveMQ by JMX' name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage' - type: graphprototype x: '12' width: '12' height: '15' fields: - type: INTEGER name: columns value: '1' - type: INTEGER name: rows value: '3' - type: GRAPH_PROTOTYPE name: graphid value: host: 'Apache ActiveMQ by JMX' name: 'Broker {#JMXBROKERNAME}: Resources usage'