diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 86febfb17e8..3fe1880369b 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -495,6 +495,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Release aws ebs metricset as GA. {pull}14312[14312] {issue}14060[14060] - Add Kafka JMX metricsets. {pull}14330[14330] - Add metrics to envoyproxy server metricset and support for envoy proxy 1.12. {pull}14416[14416] {issue}13642[13642] +- Add module for ActiveMQ. {pull}14788[14788] *Packetbeat* diff --git a/libbeat/tests/system/requirements.txt b/libbeat/tests/system/requirements.txt index 7c9135e0ddc..ec1c0ea1811 100644 --- a/libbeat/tests/system/requirements.txt +++ b/libbeat/tests/system/requirements.txt @@ -30,3 +30,4 @@ websocket-client==0.47.0 parameterized==0.7.0 jsondiff==1.1.2 semver==2.8.1 +stomp.py==4.1.22 diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index e727a0830c8..7d9dcac8d62 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -12,6 +12,7 @@ This file is generated! See _meta/fields.yml and scripts/generate_fields_docs.py This document describes the fields that are exported by Metricbeat. They are grouped in the following categories: +* <> * <> * <> * <> @@ -71,6 +72,407 @@ grouped in the following categories: * <> -- +[[exported-fields-activemq]] +== activemq fields + +activemq module + + + +[float] +=== activemq + + + + +[float] +=== broker + +Broker metrics from org.apache.activemq:brokerName=*,type=Broker + + +*`activemq.broker.mbean`*:: ++ +-- +Mbean that this event is related to + +type: keyword + +-- + +*`activemq.broker.name`*:: ++ +-- +Broker name + +type: keyword + +-- + +*`activemq.broker.memory.broker.pct`*:: ++ +-- +The percentage of the memory limit used. + +type: scaled_float + +format: percent + +-- + +*`activemq.broker.memory.store.pct`*:: ++ +-- +Percent of store limit used. + +type: scaled_float + +format: percent + +-- + +*`activemq.broker.memory.temp.pct`*:: ++ +-- +The percentage of the temp usage limit used. + +type: scaled_float + +format: percent + +-- + +*`activemq.broker.connections.count`*:: ++ +-- +Total number of connections. + +type: long + +-- + +*`activemq.broker.consumers.count`*:: ++ +-- +Number of message consumers. + +type: long + +-- + +*`activemq.broker.messages.dequeue.count`*:: ++ +-- +Number of messages that have been acknowledged on the broker. + +type: long + +-- + +*`activemq.broker.messages.enqueue.count`*:: ++ +-- +Number of messages that have been sent to the destination. + +type: long + +-- + +*`activemq.broker.messages.count`*:: ++ +-- +Number of unacknowledged messages on the broker. + +type: long + +-- + +*`activemq.broker.producers.count`*:: ++ +-- +Number of message producers active on destinations on the broker. + +type: long + +-- + +[float] +=== queue + +Queue metrics from org.apache.activemq:brokerName=*,destinationName=*,destinationType=Queue,type=Broker + + +*`activemq.queue.mbean`*:: ++ +-- +Mbean that this event is related to + +type: keyword + +-- + +*`activemq.queue.name`*:: ++ +-- +Queue name + +type: keyword + +-- + +*`activemq.queue.size`*:: ++ +-- +Queue size + +type: long + +-- + +*`activemq.queue.messages.enqueue.time.avg`*:: ++ +-- +Average time a message was held on this destination. + +type: double + +-- + +*`activemq.queue.messages.size.avg`*:: ++ +-- +Average message size on this destination. + +type: long + +-- + +*`activemq.queue.consumers.count`*:: ++ +-- +Number of consumers subscribed to this destination. + +type: long + +-- + +*`activemq.queue.messages.dequeue.count`*:: ++ +-- +Number of messages that has been acknowledged (and removed) from the destination. + +type: long + +-- + +*`activemq.queue.messages.dispatch.count`*:: ++ +-- +Number of messages that has been delivered to consumers, including those not acknowledged. + +type: long + +-- + +*`activemq.queue.messages.enqueue.count`*:: ++ +-- +Number of messages that have been sent to the destination. + +type: long + +-- + +*`activemq.queue.messages.expired.count`*:: ++ +-- +Number of messages that have been expired. + +type: long + +-- + +*`activemq.queue.messages.inflight.count`*:: ++ +-- +Number of messages that have been dispatched to, but not acknowledged by, consumers. + +type: long + +-- + +*`activemq.queue.messages.enqueue.time.max`*:: ++ +-- +The longest time a message was held on this destination. + +type: long + +-- + +*`activemq.queue.memory.broker.pct`*:: ++ +-- +Percent of memory limit used. + +type: scaled_float + +format: percent + +-- + +*`activemq.queue.messages.enqueue.time.min`*:: ++ +-- +The shortest time a message was held on this destination. + +type: long + +-- + +*`activemq.queue.producers.count`*:: ++ +-- +Number of producers attached to this destination. + +type: long + +-- + +[float] +=== topic + +Topic metrics from org.apache.activemq:brokerName=*,destinationName=*,destinationType=Topic,type=Broker + + +*`activemq.topic.mbean`*:: ++ +-- +Mbean that this event is related to + +type: keyword + +-- + +*`activemq.topic.name`*:: ++ +-- +Topic name + +type: keyword + +-- + +*`activemq.topic.messages.enqueue.time.avg`*:: ++ +-- +Average time a message was held on this destination. + +type: double + +-- + +*`activemq.topic.messages.size.avg`*:: ++ +-- +Average message size on this destination. + +type: long + +-- + +*`activemq.topic.consumers.count`*:: ++ +-- +Number of consumers subscribed to this destination. + +type: long + +-- + +*`activemq.topic.messages.dequeue.count`*:: ++ +-- +Number of messages that has been acknowledged (and removed) from the destination. + +type: long + +-- + +*`activemq.topic.messages.dispatch.count`*:: ++ +-- +Number of messages that has been delivered to consumers, including those not acknowledged. + +type: long + +-- + +*`activemq.topic.messages.enqueue.count`*:: ++ +-- +Number of messages that have been sent to the destination. + +type: long + +-- + +*`activemq.topic.messages.expired.count`*:: ++ +-- +Number of messages that have been expired. + +type: long + +-- + +*`activemq.topic.messages.inflight.count`*:: ++ +-- +Number of messages that have been dispatched to, but not acknowledged by, consumers. + +type: long + +-- + +*`activemq.topic.messages.enqueue.time.max`*:: ++ +-- +The longest time a message was held on this destination. + +type: long + +-- + +*`activemq.topic.memory.broker.pct`*:: ++ +-- +Percent of memory limit used. + +type: scaled_float + +format: percent + +-- + +*`activemq.topic.messages.enqueue.time.min`*:: ++ +-- +The shortest time a message was held on this destination. + +type: long + +-- + +*`activemq.topic.producers.count`*:: ++ +-- +Number of producers attached to this destination. + +type: long + +-- + [[exported-fields-aerospike]] == Aerospike fields diff --git a/metricbeat/docs/images/metricbeat-activemq-broker-overview.png b/metricbeat/docs/images/metricbeat-activemq-broker-overview.png new file mode 100644 index 00000000000..847ba914979 Binary files /dev/null and b/metricbeat/docs/images/metricbeat-activemq-broker-overview.png differ diff --git a/metricbeat/docs/images/metricbeat-activemq-queues-overview.png b/metricbeat/docs/images/metricbeat-activemq-queues-overview.png new file mode 100644 index 00000000000..4f80189339d Binary files /dev/null and b/metricbeat/docs/images/metricbeat-activemq-queues-overview.png differ diff --git a/metricbeat/docs/images/metricbeat-activemq-topics-overview.png b/metricbeat/docs/images/metricbeat-activemq-topics-overview.png new file mode 100644 index 00000000000..d5cbdc6ae74 Binary files /dev/null and b/metricbeat/docs/images/metricbeat-activemq-topics-overview.png differ diff --git a/metricbeat/docs/modules/activemq.asciidoc b/metricbeat/docs/modules/activemq.asciidoc new file mode 100644 index 00000000000..3bd03addf9c --- /dev/null +++ b/metricbeat/docs/modules/activemq.asciidoc @@ -0,0 +1,86 @@ +//// +This file is generated! See scripts/mage/docs_collector.go +//// + +[[metricbeat-module-activemq]] +[role="xpack"] +== activemq module + +beta[] + +This module periodically fetches JMX metrics from Apache ActiveMQ. + +[float] +=== Compatibility +The module has been tested with ActiveMQ 5.13.0 and 5.15.9. Other versions are expected to work. + +[float] +=== Usage +The ActiveMQ module requires <>to fetch JMX metrics. Refer to the link for instructions about how to use Jolokia. + + +[float] +=== Example configuration + +The activemq module supports the standard configuration options that are described +in <>. Here is an example configuration: + +[source,yaml] +---- +metricbeat.modules: +- module: activemq + metricsets: ['broker', 'queue', 'topic'] + period: 10s + hosts: ['localhost:8161'] + path: '/api/jolokia/?ignoreErrors=true&canonicalNaming=false' + username: admin # default username + password: admin # default password + processors: + - script: + lang: javascript + source: > + function process(event) { + var broker_memory_broker_pct = event.Get("activemq.broker.memory.broker.pct") + if (broker_memory_broker_pct != null) { + event.Put("activemq.broker.memory.broker.pct", broker_memory_broker_pct / 100.0) + } + + var broker_memory_temp_pct = event.Get("activemq.broker.memory.temp.pct") + if (broker_memory_temp_pct != null) { + event.Put("activemq.broker.memory.temp.pct", broker_memory_temp_pct / 100.0) + } + + var broker_memory_store_pct = event.Get("activemq.broker.memory.store.pct") + if (broker_memory_store_pct != null) { + event.Put("activemq.broker.memory.store.pct", broker_memory_store_pct / 100.0) + } + + var queue_memory_broker_pct = event.Get("activemq.queue.memory.broker.pct") + if (queue_memory_broker_pct != null) { + event.Put("activemq.queue.memory.broker.pct", queue_memory_broker_pct / 100.0) + } + + var topic_memory_broker_pct = event.Get("activemq.topic.memory.broker.pct") + if (topic_memory_broker_pct != null) { + event.Put("activemq.topic.memory.broker.pct", topic_memory_broker_pct / 100.0) + } + } +---- + +[float] +=== Metricsets + +The following metricsets are available: + +* <> + +* <> + +* <> + +include::activemq/broker.asciidoc[] + +include::activemq/queue.asciidoc[] + +include::activemq/topic.asciidoc[] + diff --git a/metricbeat/docs/modules/activemq/broker.asciidoc b/metricbeat/docs/modules/activemq/broker.asciidoc new file mode 100644 index 00000000000..16e5cd8f4a8 --- /dev/null +++ b/metricbeat/docs/modules/activemq/broker.asciidoc @@ -0,0 +1,24 @@ +//// +This file is generated! See scripts/mage/docs_collector.go +//// + +[[metricbeat-metricset-activemq-broker]] +=== activemq broker metricset + +beta[] + +include::../../../../x-pack/metricbeat/module/activemq/broker/_meta/docs.asciidoc[] + +This is a default metricset. If the host module is unconfigured, this metricset is enabled by default. + +==== Fields + +For a description of each field in the metricset, see the +<> section. + +Here is an example document generated by this metricset: + +[source,json] +---- +include::../../../../x-pack/metricbeat/module/activemq/broker/_meta/data.json[] +---- diff --git a/metricbeat/docs/modules/activemq/queue.asciidoc b/metricbeat/docs/modules/activemq/queue.asciidoc new file mode 100644 index 00000000000..84f0e17fffd --- /dev/null +++ b/metricbeat/docs/modules/activemq/queue.asciidoc @@ -0,0 +1,24 @@ +//// +This file is generated! See scripts/mage/docs_collector.go +//// + +[[metricbeat-metricset-activemq-queue]] +=== activemq queue metricset + +beta[] + +include::../../../../x-pack/metricbeat/module/activemq/queue/_meta/docs.asciidoc[] + +This is a default metricset. If the host module is unconfigured, this metricset is enabled by default. + +==== Fields + +For a description of each field in the metricset, see the +<> section. + +Here is an example document generated by this metricset: + +[source,json] +---- +include::../../../../x-pack/metricbeat/module/activemq/queue/_meta/data.json[] +---- diff --git a/metricbeat/docs/modules/activemq/topic.asciidoc b/metricbeat/docs/modules/activemq/topic.asciidoc new file mode 100644 index 00000000000..fec92cbf9cc --- /dev/null +++ b/metricbeat/docs/modules/activemq/topic.asciidoc @@ -0,0 +1,24 @@ +//// +This file is generated! See scripts/mage/docs_collector.go +//// + +[[metricbeat-metricset-activemq-topic]] +=== activemq topic metricset + +beta[] + +include::../../../../x-pack/metricbeat/module/activemq/topic/_meta/docs.asciidoc[] + +This is a default metricset. If the host module is unconfigured, this metricset is enabled by default. + +==== Fields + +For a description of each field in the metricset, see the +<> section. + +Here is an example document generated by this metricset: + +[source,json] +---- +include::../../../../x-pack/metricbeat/module/activemq/topic/_meta/data.json[] +---- diff --git a/metricbeat/docs/modules_list.asciidoc b/metricbeat/docs/modules_list.asciidoc index 953541bf49f..94ac7064726 100644 --- a/metricbeat/docs/modules_list.asciidoc +++ b/metricbeat/docs/modules_list.asciidoc @@ -5,6 +5,10 @@ This file is generated! See scripts/mage/docs_collector.go [options="header"] |=== |Modules |Dashboards |Metricsets +|<> beta[] |image:./images/icon-yes.png[Prebuilt dashboards are available] | +.3+| .3+| |<> beta[] +|<> beta[] +|<> beta[] |<> |image:./images/icon-yes.png[Prebuilt dashboards are available] | .1+| .1+| |<> |<> |image:./images/icon-yes.png[Prebuilt dashboards are available] | @@ -211,6 +215,7 @@ This file is generated! See scripts/mage/docs_collector.go -- +include::modules/activemq.asciidoc[] include::modules/aerospike.asciidoc[] include::modules/apache.asciidoc[] include::modules/appsearch.asciidoc[] diff --git a/metricbeat/tests/system/config/metricbeat.yml.j2 b/metricbeat/tests/system/config/metricbeat.yml.j2 index 540a0d4f932..2065c79b59c 100644 --- a/metricbeat/tests/system/config/metricbeat.yml.j2 +++ b/metricbeat/tests/system/config/metricbeat.yml.j2 @@ -37,8 +37,12 @@ metricbeat.modules: period: {{ m.period }} {% endif -%} + {% if m.metrics_path -%} + metrics_path: {{ m.metrics_path }} + {% endif -%} + {% if m.path -%} - metrics_path: {{ m.path }} + path: {{ m.path }} {% endif -%} {% if m.port -%} diff --git a/metricbeat/tests/system/test_dropwizard.py b/metricbeat/tests/system/test_dropwizard.py index 763231b054d..5bdfcb66baf 100644 --- a/metricbeat/tests/system/test_dropwizard.py +++ b/metricbeat/tests/system/test_dropwizard.py @@ -17,7 +17,7 @@ def test_dropwizard(self): "name": "dropwizard", "metricsets": ["collector"], "hosts": self.get_hosts(), - "path": "/test/metrics", + "metrics_path": "/test/metrics", "period": "1s", "namespace": "test", }]) diff --git a/x-pack/metricbeat/docker-compose.yml b/x-pack/metricbeat/docker-compose.yml index a037f6bbd35..34d8ea5f640 100644 --- a/x-pack/metricbeat/docker-compose.yml +++ b/x-pack/metricbeat/docker-compose.yml @@ -13,6 +13,16 @@ services: command: make # Modules + activemq: + image: docker.elastic.co/observability-ci/beats-integration-activemq:${ACTIVEMQ_VERSION:-5.15.9}-1 + build: + context: ./module/activemq/_meta + args: + ACTIVEMQ_VERSION: ${ACTIVEMQ_VERSION:-5.15.9} + ports: + - 8161 + - 61613 + appsearch: build: context: ./module/appsearch/_meta diff --git a/x-pack/metricbeat/include/list.go b/x-pack/metricbeat/include/list.go index fd1d8f95ed0..e43ebca5947 100644 --- a/x-pack/metricbeat/include/list.go +++ b/x-pack/metricbeat/include/list.go @@ -8,6 +8,7 @@ package include import ( // Import packages that need to register themselves. + _ "github.com/elastic/beats/x-pack/metricbeat/module/activemq" _ "github.com/elastic/beats/x-pack/metricbeat/module/appsearch" _ "github.com/elastic/beats/x-pack/metricbeat/module/appsearch/stats" _ "github.com/elastic/beats/x-pack/metricbeat/module/aws" diff --git a/x-pack/metricbeat/metricbeat.reference.yml b/x-pack/metricbeat/metricbeat.reference.yml index 3de3c01cca2..ee62a879c76 100644 --- a/x-pack/metricbeat/metricbeat.reference.yml +++ b/x-pack/metricbeat/metricbeat.reference.yml @@ -131,6 +131,45 @@ metricbeat.modules: # Diskio configurations #diskio.include_devices: [] +#------------------------------- Activemq Module ------------------------------- +- module: activemq + metricsets: ['broker', 'queue', 'topic'] + period: 10s + hosts: ['localhost:8161'] + path: '/api/jolokia/?ignoreErrors=true&canonicalNaming=false' + username: admin # default username + password: admin # default password + processors: + - script: + lang: javascript + source: > + function process(event) { + var broker_memory_broker_pct = event.Get("activemq.broker.memory.broker.pct") + if (broker_memory_broker_pct != null) { + event.Put("activemq.broker.memory.broker.pct", broker_memory_broker_pct / 100.0) + } + + var broker_memory_temp_pct = event.Get("activemq.broker.memory.temp.pct") + if (broker_memory_temp_pct != null) { + event.Put("activemq.broker.memory.temp.pct", broker_memory_temp_pct / 100.0) + } + + var broker_memory_store_pct = event.Get("activemq.broker.memory.store.pct") + if (broker_memory_store_pct != null) { + event.Put("activemq.broker.memory.store.pct", broker_memory_store_pct / 100.0) + } + + var queue_memory_broker_pct = event.Get("activemq.queue.memory.broker.pct") + if (queue_memory_broker_pct != null) { + event.Put("activemq.queue.memory.broker.pct", queue_memory_broker_pct / 100.0) + } + + var topic_memory_broker_pct = event.Get("activemq.topic.memory.broker.pct") + if (topic_memory_broker_pct != null) { + event.Put("activemq.topic.memory.broker.pct", topic_memory_broker_pct / 100.0) + } + } + #------------------------------ Aerospike Module ------------------------------ - module: aerospike metricsets: ["namespace"] diff --git a/x-pack/metricbeat/module/activemq/_meta/Dockerfile b/x-pack/metricbeat/module/activemq/_meta/Dockerfile new file mode 100644 index 00000000000..20434363302 --- /dev/null +++ b/x-pack/metricbeat/module/activemq/_meta/Dockerfile @@ -0,0 +1,33 @@ +FROM openjdk:8-jre-alpine + +ARG ACTIVEMQ_VERSION + +ENV ACTIVEMQ_HOME /opt/activemq +ENV ACTIVEMQ apache-activemq-$ACTIVEMQ_VERSION +ENV ACTIVEMQ_STOMP=61613 ACTIVEMQ_REST=8161 + +RUN set -x && \ + mkdir -p /opt && \ + apk --update add --virtual build-dependencies curl netcat-openbsd + +RUN curl --fail https://archive.apache.org/dist/activemq/$ACTIVEMQ_VERSION/$ACTIVEMQ-bin.tar.gz -o $ACTIVEMQ-bin.tar.gz + +RUN tar xvzf $ACTIVEMQ-bin.tar.gz -C /opt && \ + ln -s /opt/$ACTIVEMQ $ACTIVEMQ_HOME && \ + addgroup -S activemq && adduser -S -H -G activemq -h $ACTIVEMQ_HOME activemq && \ + chown -R activemq:activemq /opt/$ACTIVEMQ && \ + chown -h activemq:activemq $ACTIVEMQ_HOME && \ + apk del build-dependencies && \ + rm -rf /var/cache/apk/* && \ + rm $ACTIVEMQ-bin.tar.gz + +USER activemq + +WORKDIR $ACTIVEMQ_HOME + +EXPOSE $ACTIVEMQ_STOMP $ACTIVEMQ_REST + +HEALTHCHECK --interval=1s --retries=90 CMD nc -w 1 -v 127.0.0.1 $ACTIVEMQ_STOMP + function process(event) { + var broker_memory_broker_pct = event.Get("activemq.broker.memory.broker.pct") + if (broker_memory_broker_pct != null) { + event.Put("activemq.broker.memory.broker.pct", broker_memory_broker_pct / 100.0) + } + + var broker_memory_temp_pct = event.Get("activemq.broker.memory.temp.pct") + if (broker_memory_temp_pct != null) { + event.Put("activemq.broker.memory.temp.pct", broker_memory_temp_pct / 100.0) + } + + var broker_memory_store_pct = event.Get("activemq.broker.memory.store.pct") + if (broker_memory_store_pct != null) { + event.Put("activemq.broker.memory.store.pct", broker_memory_store_pct / 100.0) + } + + var queue_memory_broker_pct = event.Get("activemq.queue.memory.broker.pct") + if (queue_memory_broker_pct != null) { + event.Put("activemq.queue.memory.broker.pct", queue_memory_broker_pct / 100.0) + } + + var topic_memory_broker_pct = event.Get("activemq.topic.memory.broker.pct") + if (topic_memory_broker_pct != null) { + event.Put("activemq.topic.memory.broker.pct", topic_memory_broker_pct / 100.0) + } + } diff --git a/x-pack/metricbeat/module/activemq/_meta/docs.asciidoc b/x-pack/metricbeat/module/activemq/_meta/docs.asciidoc new file mode 100644 index 00000000000..7ba97933078 --- /dev/null +++ b/x-pack/metricbeat/module/activemq/_meta/docs.asciidoc @@ -0,0 +1,9 @@ +This module periodically fetches JMX metrics from Apache ActiveMQ. + +[float] +=== Compatibility +The module has been tested with ActiveMQ 5.13.0 and 5.15.9. Other versions are expected to work. + +[float] +=== Usage +The ActiveMQ module requires <>to fetch JMX metrics. Refer to the link for instructions about how to use Jolokia. diff --git a/x-pack/metricbeat/module/activemq/_meta/fields.yml b/x-pack/metricbeat/module/activemq/_meta/fields.yml new file mode 100644 index 00000000000..0db8a43bbdc --- /dev/null +++ b/x-pack/metricbeat/module/activemq/_meta/fields.yml @@ -0,0 +1,10 @@ +- key: activemq + title: "activemq" + release: beta + description: > + activemq module + fields: + - name: activemq + type: group + description: > + fields: diff --git a/x-pack/metricbeat/module/activemq/_meta/kibana/7/dashboard/metricbeat-activemq-broker-overview.json b/x-pack/metricbeat/module/activemq/_meta/kibana/7/dashboard/metricbeat-activemq-broker-overview.json new file mode 100644 index 00000000000..917ccaf9c2d --- /dev/null +++ b/x-pack/metricbeat/module/activemq/_meta/kibana/7/dashboard/metricbeat-activemq-broker-overview.json @@ -0,0 +1,908 @@ +{ + "objects": [ + { + "attributes": { + "description": "The dashboard presents metric data describing ActiveMQ broker. Metrics show statistics of enqueued and dequeued messages, consumers, producers and memory usage (broker, store, temp).", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "optionsJSON": { + "hidePanelTitles": false, + "useMargins": true + }, + "panelsJSON": [ + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "cd2b33a6-3c4c-4d97-9cfb-7c6e47f248dc", + "w": 24, + "x": 0, + "y": 0 + }, + "panelIndex": "cd2b33a6-3c4c-4d97-9cfb-7c6e47f248dc", + "panelRefName": "panel_0", + "version": "7.4.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "dc086d82-511a-45e3-b20e-6eef48e22ee1", + "w": 24, + "x": 24, + "y": 0 + }, + "panelIndex": "dc086d82-511a-45e3-b20e-6eef48e22ee1", + "panelRefName": "panel_1", + "version": "7.4.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "84a09081-449a-44f8-bc43-7119730dc74b", + "w": 24, + "x": 0, + "y": 15 + }, + "panelIndex": "84a09081-449a-44f8-bc43-7119730dc74b", + "panelRefName": "panel_2", + "version": "7.4.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 5, + "i": "e5e43ead-2ed5-4290-86f3-5dd623500f87", + "w": 24, + "x": 24, + "y": 15 + }, + "panelIndex": "e5e43ead-2ed5-4290-86f3-5dd623500f87", + "panelRefName": "panel_3", + "version": "7.4.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 5, + "i": "f891ea87-7718-4820-a0dc-21b160c1e684", + "w": 24, + "x": 24, + "y": 20 + }, + "panelIndex": "f891ea87-7718-4820-a0dc-21b160c1e684", + "panelRefName": "panel_4", + "version": "7.4.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 5, + "i": "54a788b6-5ede-4217-a975-ba6bc57f5274", + "w": 24, + "x": 24, + "y": 25 + }, + "panelIndex": "54a788b6-5ede-4217-a975-ba6bc57f5274", + "panelRefName": "panel_5", + "version": "7.4.0" + } + ], + "timeRestore": false, + "title": "[Metricbeat ActiveMQ] Broker Overview", + "version": 1 + }, + "id": "fc27a270-0b95-11ea-81bb-cf244189d349", + "migrationVersion": { + "dashboard": "7.3.0" + }, + "references": [ + { + "id": "55cacee0-0ba7-11ea-81bb-cf244189d349", + "name": "panel_0", + "type": "visualization" + }, + { + "id": "ce456e60-0b99-11ea-81bb-cf244189d349", + "name": "panel_1", + "type": "visualization" + }, + { + "id": "33cbfa60-0b95-11ea-81bb-cf244189d349", + "name": "panel_2", + "type": "visualization" + }, + { + "id": "594db510-0b9c-11ea-81bb-cf244189d349", + "name": "panel_3", + "type": "visualization" + }, + { + "id": "bfad8290-0d22-11ea-ba76-7fb26815d86c", + "name": "panel_4", + "type": "visualization" + }, + { + "id": "cb475400-0d22-11ea-ba76-7fb26815d86c", + "name": "panel_5", + "type": "visualization" + } + ], + "type": "dashboard", + "updated_at": "2019-11-22T12:26:00.404Z", + "version": "WzUxOSwyXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Broker Messages [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_min": "0", + "axis_position": "left", + "axis_scale": "normal", + "bar_color_rules": [ + { + "id": "aa435ec0-0ba6-11ea-b0d5-191f327f6941" + } + ], + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "legend_position": "bottom", + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "#68BC00", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "Dequeue", + "line_width": 1, + "metrics": [ + { + "field": "activemq.broker.messages.dequeue.count", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + }, + { + "field": "61ca57f2-469d-11e7-af02-69e470af7417", + "id": "03adf430-0ba6-11ea-b0d5-191f327f6941", + "type": "derivative", + "unit": "" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "everything", + "stacked": "none", + "type": "timeseries" + }, + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(115,216,255,1)", + "fill": 0.5, + "formatter": "number", + "id": "149ece90-0ba6-11ea-b0d5-191f327f6941", + "label": "Enqueue", + "line_width": 1, + "metrics": [ + { + "field": "activemq.broker.messages.enqueue.count", + "id": "149ef5a0-0ba6-11ea-b0d5-191f327f6941", + "type": "max" + }, + { + "field": "149ef5a0-0ba6-11ea-b0d5-191f327f6941", + "id": "149ef5a1-0ba6-11ea-b0d5-191f327f6941", + "type": "derivative", + "unit": "" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "everything", + "stacked": "none", + "type": "timeseries" + }, + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(252,196,0,1)", + "fill": 0.5, + "formatter": "number", + "id": "39964ed0-0ba6-11ea-b0d5-191f327f6941", + "label": "Count", + "line_width": 1, + "metrics": [ + { + "field": "activemq.broker.messages.enqueue.count", + "id": "39964ed1-0ba6-11ea-b0d5-191f327f6941", + "type": "max" + }, + { + "field": "39964ed1-0ba6-11ea-b0d5-191f327f6941", + "id": "8920b440-0ba6-11ea-b0d5-191f327f6941", + "type": "derivative", + "unit": "" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "everything", + "stacked": "none", + "type": "timeseries" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "timeseries" + }, + "title": "Broker Messages [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "55cacee0-0ba7-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-21T13:34:08.894Z", + "version": "WzQzOCwxXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Broker Consumers/Producers [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "annotations": [], + "axis_formatter": "number", + "axis_min": "0", + "axis_position": "left", + "axis_scale": "normal", + "background_color_rules": [ + { + "id": "60dba290-0b99-11ea-8e0f-4970006b3ce7" + } + ], + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "legend_position": "bottom", + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "#68BC00", + "fill": 0.5, + "filter": { + "language": "kuery", + "query": "" + }, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "Consumers", + "line_width": 1, + "metrics": [ + { + "field": "activemq.broker.consumers.count", + "id": "50a86850-0b98-11ea-8e0f-4970006b3ce7", + "type": "max" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "everything", + "stacked": "none", + "terms_field": "activemq.broker.name", + "type": "timeseries" + }, + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(65,157,247,1)", + "fill": 0.5, + "formatter": "number", + "id": "9a1e6840-0b98-11ea-8e0f-4970006b3ce7", + "label": "Producers", + "line_width": 1, + "metrics": [ + { + "field": "activemq.broker.producers.count", + "id": "9a1e6841-0b98-11ea-8e0f-4970006b3ce7", + "type": "max" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "everything", + "stacked": "none", + "terms_field": "activemq.broker.name", + "type": "timeseries" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "timeseries" + }, + "title": "Broker Consumers/Producers [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "ce456e60-0b99-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-21T13:34:08.894Z", + "version": "WzQzOSwxXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Broker Connections [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_min": "0", + "axis_position": "left", + "axis_scale": "normal", + "background_color_rules": [ + { + "id": "178caf70-0b95-11ea-81df-8dc66a02be3a" + } + ], + "bar_color_rules": [ + { + "id": "1996d750-0b95-11ea-81df-8dc66a02be3a" + } + ], + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "gauge_color_rules": [ + { + "id": "1a5bd500-0b95-11ea-81df-8dc66a02be3a" + } + ], + "gauge_inner_width": 10, + "gauge_style": "half", + "gauge_width": 10, + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "legend_position": "bottom", + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "#68BC00", + "fill": 0.5, + "filter": { + "language": "kuery", + "query": "" + }, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "Connections", + "line_width": 1, + "metrics": [ + { + "field": "activemq.broker.connections.count", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + }, + { + "field": "61ca57f2-469d-11e7-af02-69e470af7417", + "id": "90525b80-0ba4-11ea-8c5c-257c67a7a008", + "type": "derivative", + "unit": "" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_filters": [ + { + "color": "#68BC00", + "filter": { + "language": "kuery", + "query": "" + }, + "id": "b1b376f0-0b96-11ea-81df-8dc66a02be3a", + "label": "" + } + ], + "split_mode": "everything", + "stacked": "none", + "terms_field": "activemq.broker.name", + "type": "timeseries" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "timeseries" + }, + "title": "Broker Connections [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "33cbfa60-0b95-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-21T13:34:08.894Z", + "version": "WzQ0MCwxXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Broker Memory Usage [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_position": "left", + "axis_scale": "normal", + "background_color_rules": [ + { + "id": "a19e8b60-0b9b-11ea-8e0f-4970006b3ce7" + } + ], + "bar_color_rules": [ + { + "id": "f6955680-0b9b-11ea-8e0f-4970006b3ce7" + } + ], + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "gauge_color_rules": [ + { + "id": "9acca240-0b9b-11ea-8e0f-4970006b3ce7" + } + ], + "gauge_inner_width": 10, + "gauge_max": "1", + "gauge_style": "half", + "gauge_width": 10, + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(252,220,0,1)", + "fill": 0.5, + "filter": { + "language": "kuery", + "query": "" + }, + "formatter": "percent", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "Broker Memory", + "line_width": 1, + "metrics": [ + { + "field": "activemq.broker.memory.broker.pct", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "everything", + "stacked": "none", + "type": "timeseries", + "value_template": "" + }, + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(104,204,202,1)", + "fill": 0.5, + "formatter": "number", + "id": "7716c9c0-0b9b-11ea-8e0f-4970006b3ce7", + "label": "Store Memory", + "line_width": 1, + "metrics": [ + { + "field": "activemq.broker.memory.store.pct", + "id": "7716c9c1-0b9b-11ea-8e0f-4970006b3ce7", + "type": "max" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "everything", + "stacked": "none", + "type": "timeseries" + }, + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(174,161,255,1)", + "fill": 0.5, + "formatter": "number", + "id": "13799400-0b9c-11ea-8e0f-4970006b3ce7", + "label": "Temp Memory", + "line_width": 1, + "metrics": [ + { + "field": "activemq.broker.memory.temp.pct", + "id": "13799401-0b9c-11ea-8e0f-4970006b3ce7", + "type": "max" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "everything", + "stacked": "none" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "gauge" + }, + "title": "Broker Memory Usage [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "594db510-0b9c-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-22T15:29:57.883Z", + "version": "WzUzOSwyXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Broker Temp Memory Usage [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_position": "left", + "axis_scale": "normal", + "background_color_rules": [ + { + "id": "a19e8b60-0b9b-11ea-8e0f-4970006b3ce7" + } + ], + "bar_color_rules": [ + { + "id": "f6955680-0b9b-11ea-8e0f-4970006b3ce7" + } + ], + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "gauge_color_rules": [ + { + "id": "9acca240-0b9b-11ea-8e0f-4970006b3ce7" + } + ], + "gauge_inner_width": 10, + "gauge_max": "1", + "gauge_style": "half", + "gauge_width": 10, + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(252,220,0,1)", + "fill": 0.5, + "filter": { + "language": "kuery", + "query": "" + }, + "formatter": "percent", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "Temp Memory", + "line_width": 1, + "metrics": [ + { + "field": "activemq.broker.memory.temp.pct", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "everything", + "stacked": "none", + "type": "timeseries", + "value_template": "" + }, + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(104,204,202,1)", + "fill": 0.5, + "formatter": "number", + "id": "7716c9c0-0b9b-11ea-8e0f-4970006b3ce7", + "label": "Store Memory", + "line_width": 1, + "metrics": [ + { + "field": "activemq.broker.memory.store.pct", + "id": "7716c9c1-0b9b-11ea-8e0f-4970006b3ce7", + "type": "max" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "everything", + "stacked": "none", + "type": "timeseries" + }, + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(174,161,255,1)", + "fill": 0.5, + "formatter": "number", + "id": "13799400-0b9c-11ea-8e0f-4970006b3ce7", + "label": "Temp Memory", + "line_width": 1, + "metrics": [ + { + "field": "activemq.broker.memory.temp.pct", + "id": "13799401-0b9c-11ea-8e0f-4970006b3ce7", + "type": "max" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "everything", + "stacked": "none" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "gauge" + }, + "title": "Broker Temp Memory Usage [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "bfad8290-0d22-11ea-ba76-7fb26815d86c", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-22T15:30:29.667Z", + "version": "WzU0MSwyXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Broker Store Memory Usage [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_position": "left", + "axis_scale": "normal", + "background_color_rules": [ + { + "id": "a19e8b60-0b9b-11ea-8e0f-4970006b3ce7" + } + ], + "bar_color_rules": [ + { + "id": "f6955680-0b9b-11ea-8e0f-4970006b3ce7" + } + ], + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "gauge_color_rules": [ + { + "id": "9acca240-0b9b-11ea-8e0f-4970006b3ce7" + } + ], + "gauge_inner_width": 10, + "gauge_max": "1", + "gauge_style": "half", + "gauge_width": 10, + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(252,220,0,1)", + "fill": 0.5, + "filter": { + "language": "kuery", + "query": "" + }, + "formatter": "percent", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "Store Memory", + "line_width": 1, + "metrics": [ + { + "field": "activemq.broker.memory.store.pct", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "everything", + "stacked": "none", + "type": "timeseries", + "value_template": "" + }, + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(104,204,202,1)", + "fill": 0.5, + "formatter": "number", + "id": "7716c9c0-0b9b-11ea-8e0f-4970006b3ce7", + "label": "Store Memory", + "line_width": 1, + "metrics": [ + { + "field": "activemq.broker.memory.store.pct", + "id": "7716c9c1-0b9b-11ea-8e0f-4970006b3ce7", + "type": "max" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "everything", + "stacked": "none", + "type": "timeseries" + }, + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(174,161,255,1)", + "fill": 0.5, + "formatter": "number", + "id": "13799400-0b9c-11ea-8e0f-4970006b3ce7", + "label": "Temp Memory", + "line_width": 1, + "metrics": [ + { + "field": "activemq.broker.memory.temp.pct", + "id": "13799401-0b9c-11ea-8e0f-4970006b3ce7", + "type": "max" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "everything", + "stacked": "none" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "gauge" + }, + "title": "Broker Store Memory Usage [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "cb475400-0d22-11ea-ba76-7fb26815d86c", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-22T15:30:59.820Z", + "version": "WzU0MywyXQ==" + } + ], + "version": "7.4.0" +} diff --git a/x-pack/metricbeat/module/activemq/_meta/kibana/7/dashboard/metricbeat-activemq-queues-overview.json b/x-pack/metricbeat/module/activemq/_meta/kibana/7/dashboard/metricbeat-activemq-queues-overview.json new file mode 100644 index 00000000000..2b10633599c --- /dev/null +++ b/x-pack/metricbeat/module/activemq/_meta/kibana/7/dashboard/metricbeat-activemq-queues-overview.json @@ -0,0 +1,788 @@ +{ + "objects": [ + { + "attributes": { + "description": "The dashboard presents metric data describing ActiveMQ queues. Metrics show statistics of exchanged messages, consumers, producers and memory usage.", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "optionsJSON": { + "hidePanelTitles": false, + "useMargins": true + }, + "panelsJSON": [ + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "446c6be8-61e2-4c9c-9bfa-8da8879db215", + "w": 24, + "x": 0, + "y": 0 + }, + "panelIndex": "446c6be8-61e2-4c9c-9bfa-8da8879db215", + "panelRefName": "panel_0", + "version": "7.4.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "85158251-14d2-4100-9ce2-1eea4885adf6", + "w": 24, + "x": 24, + "y": 0 + }, + "panelIndex": "85158251-14d2-4100-9ce2-1eea4885adf6", + "panelRefName": "panel_1", + "version": "7.4.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "e0104818-b373-4a20-990a-aa7558522e9e", + "w": 24, + "x": 0, + "y": 15 + }, + "panelIndex": "e0104818-b373-4a20-990a-aa7558522e9e", + "panelRefName": "panel_2", + "version": "7.4.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "7b83ee6f-cd69-4748-80c5-305fdf49b9d0", + "w": 24, + "x": 24, + "y": 15 + }, + "panelIndex": "7b83ee6f-cd69-4748-80c5-305fdf49b9d0", + "panelRefName": "panel_3", + "version": "7.4.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "b2cfe5e4-f220-480e-91fa-4088484eda17", + "w": 24, + "x": 0, + "y": 30 + }, + "panelIndex": "b2cfe5e4-f220-480e-91fa-4088484eda17", + "panelRefName": "panel_4", + "version": "7.4.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "5f4b107c-94d0-4bdb-be30-b3cd26257658", + "w": 24, + "x": 24, + "y": 30 + }, + "panelIndex": "5f4b107c-94d0-4bdb-be30-b3cd26257658", + "panelRefName": "panel_5", + "version": "7.4.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "b5a5ea30-c313-4c80-8e28-2894f292d779", + "w": 24, + "x": 0, + "y": 45 + }, + "panelIndex": "b5a5ea30-c313-4c80-8e28-2894f292d779", + "panelRefName": "panel_6", + "version": "7.4.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "4a004976-426b-445e-9ecf-1f9964074523", + "w": 24, + "x": 24, + "y": 45 + }, + "panelIndex": "4a004976-426b-445e-9ecf-1f9964074523", + "panelRefName": "panel_7", + "version": "7.4.0" + } + ], + "timeRestore": false, + "title": "[Metricbeat ActiveMQ] Queues Overview", + "version": 1 + }, + "id": "a8160560-0bd0-11ea-81bb-cf244189d349", + "migrationVersion": { + "dashboard": "7.3.0" + }, + "references": [ + { + "id": "ad2d4960-0bd4-11ea-81bb-cf244189d349", + "name": "panel_0", + "type": "visualization" + }, + { + "id": "00e33010-0bd5-11ea-81bb-cf244189d349", + "name": "panel_1", + "type": "visualization" + }, + { + "id": "4a93ef10-0bd5-11ea-81bb-cf244189d349", + "name": "panel_2", + "type": "visualization" + }, + { + "id": "fab93e30-0bbd-11ea-81bb-cf244189d349", + "name": "panel_3", + "type": "visualization" + }, + { + "id": "99f41030-0bd5-11ea-81bb-cf244189d349", + "name": "panel_4", + "type": "visualization" + }, + { + "id": "55cc9840-0bd6-11ea-81bb-cf244189d349", + "name": "panel_5", + "type": "visualization" + }, + { + "id": "8599cea0-0c2e-11ea-81bb-cf244189d349", + "name": "panel_6", + "type": "visualization" + }, + { + "id": "a8ac8950-0c2e-11ea-81bb-cf244189d349", + "name": "panel_7", + "type": "visualization" + } + ], + "type": "dashboard", + "updated_at": "2019-11-21T13:34:09.899Z", + "version": "WzQ0MiwxXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Queues Messages Dequeue [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_min": "0", + "axis_position": "left", + "axis_scale": "normal", + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "#68BC00", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "Dequeue", + "line_width": 1, + "metrics": [ + { + "field": "activemq.queue.messages.dequeue.count", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + }, + { + "field": "61ca57f2-469d-11e7-af02-69e470af7417", + "id": "4f39bd50-0bbd-11ea-b87b-6d4c24968040", + "type": "derivative", + "unit": "" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "activemq.queue.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "timeseries" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "timeseries" + }, + "title": "Queues Messages Dequeue [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "ad2d4960-0bd4-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-21T13:34:09.899Z", + "version": "WzQ0MywxXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Queues Messages Enqueue [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_min": "0", + "axis_position": "left", + "axis_scale": "normal", + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(115,216,255,1)", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "Enqueue", + "line_width": 1, + "metrics": [ + { + "field": "activemq.queue.messages.enqueue.count", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + }, + { + "field": "61ca57f2-469d-11e7-af02-69e470af7417", + "id": "4f39bd50-0bbd-11ea-b87b-6d4c24968040", + "type": "derivative", + "unit": "" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "activemq.queue.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "timeseries" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "timeseries" + }, + "title": "Queues Messages Enqueue [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "00e33010-0bd5-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-21T13:34:09.899Z", + "version": "WzQ0NCwxXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Queues Messages Dispatch [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_min": "0", + "axis_position": "left", + "axis_scale": "normal", + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(104,204,202,1)", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "Dispatch", + "line_width": 1, + "metrics": [ + { + "field": "activemq.queue.messages.dispatch.count", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + }, + { + "field": "61ca57f2-469d-11e7-af02-69e470af7417", + "id": "4f39bd50-0bbd-11ea-b87b-6d4c24968040", + "type": "derivative", + "unit": "" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "activemq.queue.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "timeseries" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "timeseries" + }, + "title": "Queues Messages Dispatch [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "4a93ef10-0bd5-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-21T13:34:09.899Z", + "version": "WzQ0NSwxXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Queues Messages Expired [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_min": "0", + "axis_position": "left", + "axis_scale": "normal", + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(174,161,255,1)", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "Expired", + "line_width": 1, + "metrics": [ + { + "field": "activemq.queue.messages.expired.count", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + }, + { + "field": "61ca57f2-469d-11e7-af02-69e470af7417", + "id": "4f39bd50-0bbd-11ea-b87b-6d4c24968040", + "type": "derivative", + "unit": "" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "activemq.queue.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "timeseries" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "timeseries" + }, + "title": "Queues Messages Expired [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "fab93e30-0bbd-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-21T13:34:09.899Z", + "version": "WzQ0NiwxXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Queues Messages In-flight [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_min": "0", + "axis_position": "left", + "axis_scale": "normal", + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(211,49,21,1)", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "In-flight", + "line_width": 1, + "metrics": [ + { + "field": "activemq.queue.messages.inflight.count", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + }, + { + "field": "61ca57f2-469d-11e7-af02-69e470af7417", + "id": "4f39bd50-0bbd-11ea-b87b-6d4c24968040", + "type": "derivative", + "unit": "" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "activemq.queue.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "timeseries" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "timeseries" + }, + "title": "Queues Messages In-flight [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "99f41030-0bd5-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-21T13:34:09.899Z", + "version": "WzQ0NywxXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Queues Messages Enqueue Time [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_min": "0", + "axis_position": "left", + "axis_scale": "normal", + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(226,115,0,1)", + "fill": 0.5, + "formatter": "ms,ms,", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "Equeue", + "line_width": 1, + "metrics": [ + { + "field": "activemq.queue.messages.enqueue.time.avg", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "avg" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "activemq.queue.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "timeseries" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "timeseries" + }, + "title": "Queues Messages Enqueue Time [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "55cc9840-0bd6-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-22T12:43:58.984Z", + "version": "WzUzMCwyXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Queues Consumers [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_min": "0", + "axis_position": "left", + "axis_scale": "normal", + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(104,188,0,1)", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "Consumers", + "line_width": 1, + "metrics": [ + { + "field": "activemq.queue.consumers.count", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "activemq.queue.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "timeseries" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "timeseries" + }, + "title": "Queues Consumers [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "8599cea0-0c2e-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-21T13:34:09.899Z", + "version": "WzQ0OSwxXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Queues Producers [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_min": "0", + "axis_position": "left", + "axis_scale": "normal", + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(0,156,224,1)", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "Producers", + "line_width": 1, + "metrics": [ + { + "field": "activemq.queue.producers.count", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "activemq.queue.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "timeseries" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "timeseries" + }, + "title": "Queues Producers [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "a8ac8950-0c2e-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-21T13:34:09.899Z", + "version": "WzQ1MCwxXQ==" + } + ], + "version": "7.4.0" +} diff --git a/x-pack/metricbeat/module/activemq/_meta/kibana/7/dashboard/metricbeat-activemq-topics-overview.json b/x-pack/metricbeat/module/activemq/_meta/kibana/7/dashboard/metricbeat-activemq-topics-overview.json new file mode 100644 index 00000000000..cf7424e4ba3 --- /dev/null +++ b/x-pack/metricbeat/module/activemq/_meta/kibana/7/dashboard/metricbeat-activemq-topics-overview.json @@ -0,0 +1,788 @@ +{ + "objects": [ + { + "attributes": { + "description": "The dashboard presents metric data describing ActiveMQ topics. Metrics show statistics of exchanged messages, consumers, producers and memory usage.", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "optionsJSON": { + "hidePanelTitles": false, + "useMargins": true + }, + "panelsJSON": [ + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "099a7d74-8287-4717-b1d1-77f7ed2b67d0", + "w": 24, + "x": 0, + "y": 0 + }, + "panelIndex": "099a7d74-8287-4717-b1d1-77f7ed2b67d0", + "panelRefName": "panel_0", + "version": "7.4.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "c22e6794-6c79-4f2d-b942-f4a4bb73948e", + "w": 24, + "x": 24, + "y": 0 + }, + "panelIndex": "c22e6794-6c79-4f2d-b942-f4a4bb73948e", + "panelRefName": "panel_1", + "version": "7.4.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "adb64a5b-bfe9-4225-a712-f51ad30cab9d", + "w": 24, + "x": 0, + "y": 15 + }, + "panelIndex": "adb64a5b-bfe9-4225-a712-f51ad30cab9d", + "panelRefName": "panel_2", + "version": "7.4.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "09ea3c98-d808-4c5f-9d04-7a94fd3cc2c8", + "w": 24, + "x": 24, + "y": 30 + }, + "panelIndex": "09ea3c98-d808-4c5f-9d04-7a94fd3cc2c8", + "panelRefName": "panel_3", + "version": "7.4.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "43902672-df24-4be2-beb5-34961f190b5c", + "w": 24, + "x": 0, + "y": 30 + }, + "panelIndex": "43902672-df24-4be2-beb5-34961f190b5c", + "panelRefName": "panel_4", + "version": "7.4.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "ddce0ec5-f393-4479-a8a9-e1c7ffc339cb", + "w": 24, + "x": 24, + "y": 45 + }, + "panelIndex": "ddce0ec5-f393-4479-a8a9-e1c7ffc339cb", + "panelRefName": "panel_5", + "version": "7.4.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "c591ef68-9215-49de-a548-30196faa31bd", + "w": 24, + "x": 0, + "y": 45 + }, + "panelIndex": "c591ef68-9215-49de-a548-30196faa31bd", + "panelRefName": "panel_6", + "version": "7.4.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "88a65079-a0b4-49c7-abbe-6e181c5dbbc3", + "w": 24, + "x": 24, + "y": 15 + }, + "panelIndex": "88a65079-a0b4-49c7-abbe-6e181c5dbbc3", + "panelRefName": "panel_7", + "version": "7.4.0" + } + ], + "timeRestore": false, + "title": "[Metricbeat ActiveMQ] Topics Overview", + "version": 1 + }, + "id": "d97b7520-0bbe-11ea-81bb-cf244189d349", + "migrationVersion": { + "dashboard": "7.3.0" + }, + "references": [ + { + "id": "a85c09b0-0bbd-11ea-81bb-cf244189d349", + "name": "panel_0", + "type": "visualization" + }, + { + "id": "e91f2b80-0bbd-11ea-81bb-cf244189d349", + "name": "panel_1", + "type": "visualization" + }, + { + "id": "d22e5e00-0bbd-11ea-81bb-cf244189d349", + "name": "panel_2", + "type": "visualization" + }, + { + "id": "8ae8aa90-0bc8-11ea-81bb-cf244189d349", + "name": "panel_3", + "type": "visualization" + }, + { + "id": "21fb23a0-0bbe-11ea-81bb-cf244189d349", + "name": "panel_4", + "type": "visualization" + }, + { + "id": "89de30b0-0bce-11ea-81bb-cf244189d349", + "name": "panel_5", + "type": "visualization" + }, + { + "id": "e73c2af0-0bce-11ea-81bb-cf244189d349", + "name": "panel_6", + "type": "visualization" + }, + { + "id": "3db29790-0bd7-11ea-81bb-cf244189d349", + "name": "panel_7", + "type": "visualization" + } + ], + "type": "dashboard", + "updated_at": "2019-11-21T13:34:10.940Z", + "version": "WzQ1MSwxXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Topics Messages Dequeue [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_min": "0", + "axis_position": "left", + "axis_scale": "normal", + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "#68BC00", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "Dequeue", + "line_width": 1, + "metrics": [ + { + "field": "activemq.topic.messages.dequeue.count", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + }, + { + "field": "61ca57f2-469d-11e7-af02-69e470af7417", + "id": "4f39bd50-0bbd-11ea-b87b-6d4c24968040", + "type": "derivative", + "unit": "" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "activemq.topic.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "timeseries" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "timeseries" + }, + "title": "Topics Messages Dequeue [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "a85c09b0-0bbd-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-21T13:34:10.940Z", + "version": "WzQ1MiwxXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Topics Messages Enqueue [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_min": "0", + "axis_position": "left", + "axis_scale": "normal", + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(115,216,255,1)", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "Enqueue", + "line_width": 1, + "metrics": [ + { + "field": "activemq.topic.messages.enqueue.count", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + }, + { + "field": "61ca57f2-469d-11e7-af02-69e470af7417", + "id": "4f39bd50-0bbd-11ea-b87b-6d4c24968040", + "type": "derivative", + "unit": "" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "activemq.topic.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "timeseries" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "timeseries" + }, + "title": "Topics Messages Enqueue [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "e91f2b80-0bbd-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-21T13:34:10.940Z", + "version": "WzQ1MywxXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Topics Messages Dispatch [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_min": "0", + "axis_position": "left", + "axis_scale": "normal", + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(104,204,202,1)", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "Dispatch", + "line_width": 1, + "metrics": [ + { + "field": "activemq.topic.messages.dispatch.count", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + }, + { + "field": "61ca57f2-469d-11e7-af02-69e470af7417", + "id": "4f39bd50-0bbd-11ea-b87b-6d4c24968040", + "type": "derivative", + "unit": "" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "activemq.topic.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "timeseries" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "timeseries" + }, + "title": "Topics Messages Dispatch [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "d22e5e00-0bbd-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-21T13:34:10.940Z", + "version": "WzQ1NCwxXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Topics Messages Enqueue Time [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_min": "0", + "axis_position": "left", + "axis_scale": "normal", + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(226,115,0,1)", + "fill": 0.5, + "formatter": "ms,ms,", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "", + "line_width": 1, + "metrics": [ + { + "field": "activemq.topic.messages.enqueue.time.avg", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "avg" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "activemq.topic.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "timeseries" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "timeseries" + }, + "title": "Topics Messages Enqueue Time [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "8ae8aa90-0bc8-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-22T12:42:45.591Z", + "version": "WzUyNiwyXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Topics Messages In-flight [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_min": "0", + "axis_position": "left", + "axis_scale": "normal", + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(211,49,21,1)", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "In-flight", + "line_width": 1, + "metrics": [ + { + "field": "activemq.topic.messages.inflight.count", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + }, + { + "field": "61ca57f2-469d-11e7-af02-69e470af7417", + "id": "4f39bd50-0bbd-11ea-b87b-6d4c24968040", + "type": "derivative", + "unit": "" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "activemq.topic.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "timeseries" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "timeseries" + }, + "title": "Topics Messages In-flight [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "21fb23a0-0bbe-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-21T13:34:10.940Z", + "version": "WzQ1NiwxXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Topics Producers [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_min": "0", + "axis_position": "left", + "axis_scale": "normal", + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(0,156,224,1)", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "Producers", + "line_width": 1, + "metrics": [ + { + "field": "activemq.topic.producers.count", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "activemq.topic.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "timeseries" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "timeseries" + }, + "title": "Topics Producers [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "89de30b0-0bce-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-21T13:34:10.940Z", + "version": "WzQ1NywxXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Topics Consumers [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_min": "0", + "axis_position": "left", + "axis_scale": "normal", + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(104,188,0,1)", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "Consumers", + "line_width": 1, + "metrics": [ + { + "field": "activemq.topic.consumers.count", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "activemq.topic.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "timeseries" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "timeseries" + }, + "title": "Topics Consumers [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "e73c2af0-0bce-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-21T13:34:10.940Z", + "version": "WzQ1OCwxXQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Topics Messages Expired [Metricbeat ActiveMQ]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_min": "0", + "axis_position": "left", + "axis_scale": "normal", + "default_index_pattern": "metricbeat-*", + "default_timefield": "@timestamp", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "", + "isModelInvalid": false, + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(174,161,255,1)", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "Expired", + "line_width": 1, + "metrics": [ + { + "field": "activemq.topic.messages.expired.count", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + }, + { + "field": "61ca57f2-469d-11e7-af02-69e470af7417", + "id": "4f39bd50-0bbd-11ea-b87b-6d4c24968040", + "type": "derivative", + "unit": "" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "activemq.topic.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "timeseries" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "", + "type": "timeseries" + }, + "title": "Topics Messages Expired [Metricbeat ActiveMQ]", + "type": "metrics" + } + }, + "id": "3db29790-0bd7-11ea-81bb-cf244189d349", + "migrationVersion": { + "visualization": "7.3.1" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-11-21T13:34:10.940Z", + "version": "WzQ1OSwxXQ==" + } + ], + "version": "7.4.0" +} diff --git a/x-pack/metricbeat/module/activemq/broker/_meta/data.json b/x-pack/metricbeat/module/activemq/broker/_meta/data.json new file mode 100644 index 00000000000..7f39ec9535a --- /dev/null +++ b/x-pack/metricbeat/module/activemq/broker/_meta/data.json @@ -0,0 +1,69 @@ +{ + "@timestamp": "2019-11-19T13:14:17.425Z", + "@metadata": { + "beat": "metricbeat", + "type": "_doc", + "version": "8.0.0" + }, + "event": { + "duration": 100756657, + "dataset": "activemq.broker", + "module": "activemq" + }, + "metricset": { + "name": "broker", + "period": 5000 + }, + "service": { + "address": "localhost:33051", + "type": "activemq" + }, + "activemq": { + "broker": { + "mbean": "org.apache.activemq:brokerName=localhost,type=Broker", + "memory": { + "store": { + "pct": 0 + }, + "temp": { + "pct": 0 + }, + "broker": { + "pct": 0 + } + }, + "messages": { + "dequeue": { + "count": 0 + }, + "enqueue": { + "count": 1 + }, + "count": 0 + }, + "producers": { + "count": 0 + }, + "connections": { + "count": 0 + }, + "consumers": { + "count": 0 + }, + "name": "localhost" + } + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "name": "macbook.local" + }, + "agent": { + "hostname": "macbook.local", + "id": "8d20f9a9-b24d-419b-97e6-bcccfb64679c", + "version": "8.0.0", + "type": "metricbeat", + "ephemeral_id": "aa9fb858-9b48-4028-a5e6-d46d83982572" + } +} diff --git a/x-pack/metricbeat/module/activemq/broker/_meta/docs.asciidoc b/x-pack/metricbeat/module/activemq/broker/_meta/docs.asciidoc new file mode 100644 index 00000000000..65996f687ed --- /dev/null +++ b/x-pack/metricbeat/module/activemq/broker/_meta/docs.asciidoc @@ -0,0 +1,12 @@ +This is the `broker` metricset of the ActiveMQ module. + +The metricset provides metrics describing the monitored ActiveMQ broker, +especially connected consumers, producers, memory usage, active connections +and exchanged messages. + +To collect data, the module communicates with a Jolokia HTTP/REST endpoint +that exposes the JMX metrics over HTTP/REST/JSON (JMX key: `org.apache.activemq:brokerName=*,type=Broker`). + +The broker metricset comes with a predefined dashboard: + +image::./images/metricbeat-activemq-broker-overview.png[] diff --git a/x-pack/metricbeat/module/activemq/broker/_meta/fields.yml b/x-pack/metricbeat/module/activemq/broker/_meta/fields.yml new file mode 100644 index 00000000000..a7b4184b0fd --- /dev/null +++ b/x-pack/metricbeat/module/activemq/broker/_meta/fields.yml @@ -0,0 +1,41 @@ +- name: broker + type: group + description: Broker metrics from org.apache.activemq:brokerName=*,type=Broker + release: beta + fields: + - name: mbean + description: Mbean that this event is related to + type: keyword + - name: name + description: Broker name + type: keyword + - name: memory.broker.pct + description: The percentage of the memory limit used. + type: scaled_float + format: percent + - name: memory.store.pct + description: Percent of store limit used. + type: scaled_float + format: percent + - name: memory.temp.pct + description: The percentage of the temp usage limit used. + type: scaled_float + format: percent + - name: connections.count + description: Total number of connections. + type: long + - name: consumers.count + description: Number of message consumers. + type: long + - name: messages.dequeue.count + description: Number of messages that have been acknowledged on the broker. + type: long + - name: messages.enqueue.count + description: Number of messages that have been sent to the destination. + type: long + - name: messages.count + description: Number of unacknowledged messages on the broker. + type: long + - name: producers.count + description: Number of message producers active on destinations on the broker. + type: long diff --git a/x-pack/metricbeat/module/activemq/broker/manifest.yml b/x-pack/metricbeat/module/activemq/broker/manifest.yml new file mode 100644 index 00000000000..b266e4a054d --- /dev/null +++ b/x-pack/metricbeat/module/activemq/broker/manifest.yml @@ -0,0 +1,29 @@ +default: true +input: + module: jolokia + metricset: jmx + defaults: + namespace: 'broker' + jmx.mappings: + - mbean: 'org.apache.activemq:brokerName=*,type=Broker' + attributes: + - attr: BrokerName + field: name + - attr: MemoryPercentUsage + field: memory.broker.pct + - attr: StorePercentUsage + field: memory.store.pct + - attr: TempPercentUsage + field: memory.temp.pct + - attr: TotalConnectionsCount + field: connections.count + - attr: TotalConsumerCount + field: consumers.count + - attr: TotalDequeueCount + field: messages.dequeue.count + - attr: TotalEnqueueCount + field: messages.enqueue.count + - attr: TotalMessageCount + field: messages.count + - attr: TotalProducerCount + field: producers.count diff --git a/x-pack/metricbeat/module/activemq/fields.go b/x-pack/metricbeat/module/activemq/fields.go new file mode 100644 index 00000000000..d798c885f91 --- /dev/null +++ b/x-pack/metricbeat/module/activemq/fields.go @@ -0,0 +1,23 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package activemq + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "activemq", asset.ModuleFieldsPri, AssetActivemq); err != nil { + panic(err) + } +} + +// AssetActivemq returns asset data. +// This is the base64 encoded gzipped contents of module/activemq. +func AssetActivemq() string { + return "eJzsl8tu2zoQhvd+ikFW5xw4egABOUCzb9AC2RcUOZYI86KQQyfu0xfULZItXyTbXQT2wguK88+nn5cZPcIatykwTnKD+m0BQJIUpvDQDj0sABwqZB5TyJDYAkCg506WJK1J4f8FAHQKoK0IChcAK4lK+LR6+giGaRzkiT/alphC7mwom5ER5aFSXy1zdo2uGx7T29N8rmJAIznJPayc1WBdnrCS8QKTFjCttV+Yxqf/llH36Xk3264r7W8X9xNYZ8hMb3yH7Xt8DFQwAiqkB9ygIZA+ZmKEAsgOguvXXeP23Toxki7+H87WOLE36ZSqRm3dNqkNSkpOh1O8FgglOo6GWI5gV0AFNgKgpJYEwaNIRvJ7zhSKXytl2TDByjrNKG11DwN6sg6P8/2oNSJYNfvmTIS6nGNZjIPg48jNELk1Bnmk8Am3wRyDtMQUmKAzdBGxHzoCpazJxxP6oNGdTPfSJdLoKxM+Q89P18T6ROBbwICTs/r6aBZsg5AhGmB8bey7QpGjAGuqlWqOxQwsNFfC8nFLk61wBHqShsXQOUxnswQzMKNDm+tK6awIfNbe6EKbahMZejZMZWqJqsWZVmt+xpCJpaZHuj/yGutQpfo1S1Jt2OSK5OXvk6J7c6YdSpIaE7bJD6f5tkEXt1+cCazbje/MQ4GquR+kP3UihQ2ZwmNI8U3OQ2kZYsS5+a93V3ch4EMWZ2TVdrmE4npXuB+5wf9hRoBDbTco/q2P6xWuUCF9yYgXF7MKVHKDrjaxM3cJ0nAVhDQ5UGE9grE0eK+vUovwo5QOxeVMrdAMBmlWSuYFXQ7RbotqOZeQBdpbOMi2y8s6ncHtpdnH8bYzqqGnS2+wg1Bnfzb02vLbfyuMWiWPlMRolS+so9t5NaP76XU9RKzZV9MZWgKypeTTup3XGHL1bqdS/ZrdTm3YjO/ve28yyH7vTe69yRTme29y7012oe69yble/f3e5E8AAAD///+VcHo=" +} diff --git a/x-pack/metricbeat/module/activemq/module.yml b/x-pack/metricbeat/module/activemq/module.yml new file mode 100644 index 00000000000..5c35480e829 --- /dev/null +++ b/x-pack/metricbeat/module/activemq/module.yml @@ -0,0 +1,5 @@ +name: activemq +metricsets: +- broker +- queue +- topic diff --git a/x-pack/metricbeat/module/activemq/queue/_meta/data.json b/x-pack/metricbeat/module/activemq/queue/_meta/data.json new file mode 100644 index 00000000000..2bf125ac2d6 --- /dev/null +++ b/x-pack/metricbeat/module/activemq/queue/_meta/data.json @@ -0,0 +1,77 @@ +{ + "@timestamp": "2019-11-19T13:13:56.283Z", + "@metadata": { + "beat": "metricbeat", + "type": "_doc", + "version": "8.0.0" + }, + "metricset": { + "name": "queue", + "period": 5000 + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "name": "macbook.local" + }, + "agent": { + "ephemeral_id": "e830f069-d442-498c-af73-6b02fa8b0f90", + "hostname": "macbook.local", + "id": "8d20f9a9-b24d-419b-97e6-bcccfb64679c", + "version": "8.0.0", + "type": "metricbeat" + }, + "service": { + "type": "activemq", + "address": "localhost:33049" + }, + "activemq": { + "queue": { + "producers": { + "count": 0 + }, + "name": "sample_queue", + "memory": { + "broker": { + "pct": 0 + } + }, + "size": 2, + "consumers": { + "count": 0 + }, + "mbean": "org.apache.activemq:brokerName=localhost,destinationName=sample_queue,destinationType=Queue,type=Broker", + "messages": { + "size": { + "avg": 1037 + }, + "expired": { + "count": 0 + }, + "dequeue": { + "count": 0 + }, + "inflight": { + "count": 0 + }, + "dispatch": { + "count": 0 + }, + "enqueue": { + "time": { + "avg": 0, + "min": 0, + "max": 0 + }, + "count": 2 + } + } + } + }, + "event": { + "dataset": "activemq.queue", + "module": "activemq", + "duration": 16081129 + } +} diff --git a/x-pack/metricbeat/module/activemq/queue/_meta/docs.asciidoc b/x-pack/metricbeat/module/activemq/queue/_meta/docs.asciidoc new file mode 100644 index 00000000000..8306487eb9d --- /dev/null +++ b/x-pack/metricbeat/module/activemq/queue/_meta/docs.asciidoc @@ -0,0 +1,12 @@ +This is the `queue` metricset of the ActiveMQ module. + +The metricset provides metrics describing the available ActiveMQ queues, +especially exchanged messages (enqueued, dequeued, expired, in-flight), +connected consumers, producers and its current length. + +To collect data, the module communicates with a Jolokia HTTP/REST endpoint +that exposes the JMX metrics over HTTP/REST/JSON (JMX key: `org.apache.activemq:brokerName=localhost,destinationName=sample_queue,destinationType=Queue,type=Broker`). + +The queue metricset comes with a predefined dashboard: + +image::./images/metricbeat-activemq-queues-overview.png[] diff --git a/x-pack/metricbeat/module/activemq/queue/_meta/fields.yml b/x-pack/metricbeat/module/activemq/queue/_meta/fields.yml new file mode 100644 index 00000000000..08bdd562c7c --- /dev/null +++ b/x-pack/metricbeat/module/activemq/queue/_meta/fields.yml @@ -0,0 +1,51 @@ +- name: queue + type: group + description: Queue metrics from org.apache.activemq:brokerName=*,destinationName=*,destinationType=Queue,type=Broker + release: beta + fields: + - name: mbean + description: Mbean that this event is related to + type: keyword + - name: name + description: Queue name + type: keyword + - name: size + description: Queue size + type: long + - name: messages.enqueue.time.avg + description: Average time a message was held on this destination. + type: double + - name: messages.size.avg + description: Average message size on this destination. + type: long + - name: consumers.count + description: Number of consumers subscribed to this destination. + type: long + - name: messages.dequeue.count + description: Number of messages that has been acknowledged (and removed) from the destination. + type: long + - name: messages.dispatch.count + description: Number of messages that has been delivered to consumers, including those not acknowledged. + type: long + - name: messages.enqueue.count + description: Number of messages that have been sent to the destination. + type: long + - name: messages.expired.count + description: Number of messages that have been expired. + type: long + - name: messages.inflight.count + description: Number of messages that have been dispatched to, but not acknowledged by, consumers. + type: long + - name: messages.enqueue.time.max + description: The longest time a message was held on this destination. + type: long + - name: memory.broker.pct + description: Percent of memory limit used. + type: scaled_float + format: percent + - name: messages.enqueue.time.min + description: The shortest time a message was held on this destination. + type: long + - name: producers.count + description: Number of producers attached to this destination. + type: long diff --git a/x-pack/metricbeat/module/activemq/queue/manifest.yml b/x-pack/metricbeat/module/activemq/queue/manifest.yml new file mode 100644 index 00000000000..5521f5e6886 --- /dev/null +++ b/x-pack/metricbeat/module/activemq/queue/manifest.yml @@ -0,0 +1,37 @@ +default: true +input: + module: jolokia + metricset: jmx + defaults: + namespace: 'queue' + jmx.mappings: + - mbean: 'org.apache.activemq:brokerName=*,destinationName=*,destinationType=Queue,type=Broker' + attributes: + - attr: Name + field: name + - attr: QueueSize + field: size + - attr: AverageEnqueueTime + field: messages.enqueue.time.avg + - attr: AverageMessageSize + field: messages.size.avg + - attr: ConsumerCount + field: consumers.count + - attr: DequeueCount + field: messages.dequeue.count + - attr: DispatchCount + field: messages.dispatch.count + - attr: EnqueueCount + field: messages.enqueue.count + - attr: ExpiredCount + field: messages.expired.count + - attr: InFlightCount + field: messages.inflight.count + - attr: MaxEnqueueTime + field: messages.enqueue.time.max + - attr: MemoryPercentUsage + field: memory.broker.pct + - attr: MinEnqueueTime + field: messages.enqueue.time.min + - attr: ProducerCount + field: producers.count diff --git a/x-pack/metricbeat/module/activemq/topic/_meta/data.json b/x-pack/metricbeat/module/activemq/topic/_meta/data.json new file mode 100644 index 00000000000..fb19a137525 --- /dev/null +++ b/x-pack/metricbeat/module/activemq/topic/_meta/data.json @@ -0,0 +1,76 @@ +{ + "@timestamp": "2019-11-19T13:14:29.796Z", + "@metadata": { + "beat": "metricbeat", + "type": "_doc", + "version": "8.0.0" + }, + "service": { + "type": "activemq", + "address": "localhost:33051" + }, + "activemq": { + "topic": { + "name": "sample_topic", + "memory": { + "broker": { + "pct": 0 + } + }, + "mbean": "org.apache.activemq:brokerName=localhost,destinationName=sample_topic,destinationType=Topic,type=Broker", + "producers": { + "count": 0 + }, + "consumers": { + "count": 0 + }, + "messages": { + "inflight": { + "count": 0 + }, + "expired": { + "count": 0 + }, + "enqueue": { + "time": { + "max": 0, + "avg": 0, + "min": 0 + }, + "count": 2 + }, + "dequeue": { + "count": 0 + }, + "dispatch": { + "count": 0 + }, + "size": { + "avg": 1037 + } + } + } + }, + "ecs": { + "version": "1.2.0" + }, + "host": { + "name": "macbook.local" + }, + "agent": { + "version": "8.0.0", + "type": "metricbeat", + "ephemeral_id": "99de94c0-c183-438d-9751-428e3ea3bbbd", + "hostname": "macbook.local", + "id": "8d20f9a9-b24d-419b-97e6-bcccfb64679c" + }, + "event": { + "dataset": "activemq.topic", + "module": "activemq", + "duration": 34431327 + }, + "metricset": { + "period": 5000, + "name": "topic" + } +} diff --git a/x-pack/metricbeat/module/activemq/topic/_meta/docs.asciidoc b/x-pack/metricbeat/module/activemq/topic/_meta/docs.asciidoc new file mode 100644 index 00000000000..b9a1446e46d --- /dev/null +++ b/x-pack/metricbeat/module/activemq/topic/_meta/docs.asciidoc @@ -0,0 +1,12 @@ +This is the `topic` metricset of the ActiveMQ module. + +The metricset provides metrics describing the available ActiveMQ topics, +especially exchanged messages (enqueued, dequeued, expired, in-flight), +connected consumers and producers. + +To collect data, the module communicates with a Jolokia HTTP/REST endpoint +that exposes the JMX metrics over HTTP/REST/JSON (JMX key: `org.apache.activemq:brokerName=localhost,destinationName=sample_queue,destinationType=Queue,type=Broker`). + +The topic metricset comes with a predefined dashboard: + +image::./images/metricbeat-activemq-topics-overview.png[] diff --git a/x-pack/metricbeat/module/activemq/topic/_meta/fields.yml b/x-pack/metricbeat/module/activemq/topic/_meta/fields.yml new file mode 100644 index 00000000000..4862b605b86 --- /dev/null +++ b/x-pack/metricbeat/module/activemq/topic/_meta/fields.yml @@ -0,0 +1,48 @@ +- name: topic + type: group + description: Topic metrics from org.apache.activemq:brokerName=*,destinationName=*,destinationType=Topic,type=Broker + release: beta + fields: + - name: mbean + description: Mbean that this event is related to + type: keyword + - name: name + description: Topic name + type: keyword + - name: messages.enqueue.time.avg + description: Average time a message was held on this destination. + type: double + - name: messages.size.avg + description: Average message size on this destination. + type: long + - name: consumers.count + description: Number of consumers subscribed to this destination. + type: long + - name: messages.dequeue.count + description: Number of messages that has been acknowledged (and removed) from the destination. + type: long + - name: messages.dispatch.count + description: Number of messages that has been delivered to consumers, including those not acknowledged. + type: long + - name: messages.enqueue.count + description: Number of messages that have been sent to the destination. + type: long + - name: messages.expired.count + description: Number of messages that have been expired. + type: long + - name: messages.inflight.count + description: Number of messages that have been dispatched to, but not acknowledged by, consumers. + type: long + - name: messages.enqueue.time.max + description: The longest time a message was held on this destination. + type: long + - name: memory.broker.pct + description: Percent of memory limit used. + type: scaled_float + format: percent + - name: messages.enqueue.time.min + description: The shortest time a message was held on this destination. + type: long + - name: producers.count + description: Number of producers attached to this destination. + type: long diff --git a/x-pack/metricbeat/module/activemq/topic/manifest.yml b/x-pack/metricbeat/module/activemq/topic/manifest.yml new file mode 100644 index 00000000000..7f9bc9f3ae5 --- /dev/null +++ b/x-pack/metricbeat/module/activemq/topic/manifest.yml @@ -0,0 +1,35 @@ +default: true +input: + module: jolokia + metricset: jmx + defaults: + namespace: 'topic' + jmx.mappings: + - mbean: 'org.apache.activemq:brokerName=*,destinationName=*,destinationType=Topic,type=Broker' + attributes: + - attr: Name + field: name + - attr: AverageEnqueueTime + field: messages.enqueue.time.avg + - attr: AverageMessageSize + field: messages.size.avg + - attr: ConsumerCount + field: consumers.count + - attr: DequeueCount + field: messages.dequeue.count + - attr: DispatchCount + field: messages.dispatch.count + - attr: EnqueueCount + field: messages.enqueue.count + - attr: ExpiredCount + field: messages.expired.count + - attr: InFlightCount + field: messages.inflight.count + - attr: MaxEnqueueTime + field: messages.enqueue.time.max + - attr: MemoryPercentUsage + field: memory.broker.pct + - attr: MinEnqueueTime + field: messages.enqueue.time.min + - attr: ProducerCount + field: producers.count diff --git a/x-pack/metricbeat/modules.d/activemq.yml.disabled b/x-pack/metricbeat/modules.d/activemq.yml.disabled new file mode 100644 index 00000000000..db028c03cad --- /dev/null +++ b/x-pack/metricbeat/modules.d/activemq.yml.disabled @@ -0,0 +1,40 @@ +# Module: activemq +# Docs: https://www.elastic.co/guide/en/beats/metricbeat/7.x/metricbeat-module-activemq.html + +- module: activemq + metricsets: ['broker', 'queue', 'topic'] + period: 10s + hosts: ['localhost:8161'] + path: '/api/jolokia/?ignoreErrors=true&canonicalNaming=false' + username: admin # default username + password: admin # default password + processors: + - script: + lang: javascript + source: > + function process(event) { + var broker_memory_broker_pct = event.Get("activemq.broker.memory.broker.pct") + if (broker_memory_broker_pct != null) { + event.Put("activemq.broker.memory.broker.pct", broker_memory_broker_pct / 100.0) + } + + var broker_memory_temp_pct = event.Get("activemq.broker.memory.temp.pct") + if (broker_memory_temp_pct != null) { + event.Put("activemq.broker.memory.temp.pct", broker_memory_temp_pct / 100.0) + } + + var broker_memory_store_pct = event.Get("activemq.broker.memory.store.pct") + if (broker_memory_store_pct != null) { + event.Put("activemq.broker.memory.store.pct", broker_memory_store_pct / 100.0) + } + + var queue_memory_broker_pct = event.Get("activemq.queue.memory.broker.pct") + if (queue_memory_broker_pct != null) { + event.Put("activemq.queue.memory.broker.pct", queue_memory_broker_pct / 100.0) + } + + var topic_memory_broker_pct = event.Get("activemq.topic.memory.broker.pct") + if (topic_memory_broker_pct != null) { + event.Put("activemq.topic.memory.broker.pct", topic_memory_broker_pct / 100.0) + } + } diff --git a/x-pack/metricbeat/tests/system/test_activemq.py b/x-pack/metricbeat/tests/system/test_activemq.py new file mode 100644 index 00000000000..f7a66e78223 --- /dev/null +++ b/x-pack/metricbeat/tests/system/test_activemq.py @@ -0,0 +1,100 @@ +import random +import string +import sys + +import unittest + +from xpack_metricbeat import XPackTest +import metricbeat + + +class ActiveMqTest(XPackTest): + COMPOSE_SERVICES = ['activemq'] + + def get_activemq_module_config(self, metricset): + return { + 'name': 'activemq', + 'metricsets': [metricset], + 'period': '5s', + 'hosts': self.get_hosts(), + 'path': '/api/jolokia/?ignoreErrors=true&canonicalNaming=false', + 'username': 'admin', + 'password': 'admin' + } + + def get_stomp_host_port(self): + host_port = self.compose_host(port='61613/tcp') + s = host_port.split(':') + return s[0], int(s[1]) + + def destination_metrics_collected(self, destination_type, destination_name): + if self.output_lines() == 0: + return False + + output = self.read_output_json() + for evt in output: + if destination_type in evt['activemq'] and destination_name == evt['activemq'][destination_type]['name']: + return True + return False + + def verify_destination_metrics_collection(self, destination_type): + from stomp import Connection + + self.render_config_template(modules=[self.get_activemq_module_config(destination_type)]) + proc = self.start_beat(home=self.beat_path) + + destination_name = ''.join(random.choice(string.ascii_lowercase) for i in range(10)) + + conn = Connection([self.get_stomp_host_port()]) + conn.start() + conn.connect(wait=True) + conn.send('/{}/{}'.format(destination_type, destination_name), 'first message') + conn.send('/{}/{}'.format(destination_type, destination_name), 'second message') + + self.wait_until(lambda: self.destination_metrics_collected(destination_type, destination_name)) + proc.check_kill_and_wait() + self.assert_no_logged_warnings() + + output = self.read_output_json() + + passed = False + for evt in output: + if destination_name == evt['activemq'][destination_type]['name']: + assert 2 == evt['activemq'][destination_type]['messages']['enqueue']['count'] + assert 0 < evt['activemq'][destination_type]['messages']['size']['avg'] + if 'queue' == destination_type: + assert 0 < evt['activemq'][destination_type]['size'] + self.assert_fields_are_documented(evt) + passed = True + + conn.disconnect() + assert passed + + @unittest.skipUnless(metricbeat.INTEGRATION_TESTS, 'integration test') + def test_broker_metrics_collected(self): + self.render_config_template(modules=[self.get_activemq_module_config('broker')]) + proc = self.start_beat(home=self.beat_path) + self.wait_until(lambda: self.output_lines() > 0) + proc.check_kill_and_wait() + self.assert_no_logged_warnings() + + output = self.read_output_json() + + for evt in output: + assert 'name' in evt['activemq']['broker'] + assert 'pct' in evt['activemq']['broker']['memory']['broker'] + assert 'count' in evt['activemq']['broker']['producers'] + assert 'count' in evt['activemq']['broker']['consumers'] + self.assert_fields_are_documented(evt) + + @unittest.skipUnless(metricbeat.INTEGRATION_TESTS, 'integration test') + def test_queue_metrics_collected(self): + self.verify_destination_metrics_collection('queue') + + @unittest.skipUnless(metricbeat.INTEGRATION_TESTS, 'integration test') + def test_topic_metrics_collected(self): + self.verify_destination_metrics_collection('topic') + + +class TestRelease5130(ActiveMqTest): + COMPOSE_ENV = {'ACTIVEMQ_VERSION': '5.13.0'}