diff --git a/Dockerfile b/Dockerfile index 5436e3b..f0f7135 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,6 +32,20 @@ RUN curl --silent --fail -OL http://archive.apache.org/dist/activemq/${ACTIVEMQ_ COPY --chown=activemq:activemq activemq.xml /opt/activemq/conf/ +# renovate: datasource=github-release-attachments depName=prometheus/jmx_exporter +ARG JMX_EXPORTER_VERSION=1.4.0 +ARG JMX_EXPORTER_DIGEST=sha256:db1492e95a7ee95cd5e0a969875c0d4f0ef6413148d750351a41cc71d775f59a +WORKDIR /jmx +ADD \ + --link \ + --chmod=644 \ + --checksum=$JMX_EXPORTER_DIGEST \ + https://github.com/prometheus/jmx_exporter/releases/download/$JMX_EXPORTER_VERSION/jmx_prometheus_javaagent-$JMX_EXPORTER_VERSION.jar jmx_prometheus_javaagent.jar +COPY --chmod=644 jmx.yml ./ + +ENV JMX_OPT="-javaagent:/jmx/jmx_prometheus_javaagent.jar=3001:/jmx/jmx.yml" +ENV ACTIVEMQ_OPTS="${JMX_OPT}" + USER activemq WORKDIR /opt/activemq diff --git a/healthcheck.sh b/healthcheck.sh index 08b6278..352d7c7 100755 --- a/healthcheck.sh +++ b/healthcheck.sh @@ -1,4 +1,6 @@ #!/bin/sh +# Do not run jmx_exporter in the healthcheck +export ACTIVEMQ_OPTS="${ACTIVEMQ_OPTS/"$JMX_OPT"}" bin/activemq query --objname type=Broker,brokerName=*,service=Health | grep -qE '^CurrentStatus *= *Good$' diff --git a/jmx.yml b/jmx.yml new file mode 100644 index 0000000..9430cfc --- /dev/null +++ b/jmx.yml @@ -0,0 +1,36 @@ +lowercaseOutputName: true +lowercaseOutputLabelNames: true +blacklistObjectNames: + - "org.apache.activemq:clientId=*,*" +whitelistObjectNames: + - "org.apache.activemq:destinationType=Queue,*" + - "org.apache.activemq:destinationType=Topic,*" + - "org.apache.activemq:type=Broker,brokerName=*" + - "org.apache.activemq:type=Topic,brokerName=*" + +rules: +- pattern: org.apache.activemq<>(\w+) + name: activemq_queue_$3 + attrNameSnakeCase: true + labels: + destination: $2 + +- pattern: org.apache.activemq<>(\w+) + name: activemq_topic_$3 + attrNameSnakeCase: true + labels: + destination: $2 + +- pattern: org.apache.activemq<>CurrentConnectionsCount + name: activemq_connections + type: GAUGE + +- pattern: org.apache.activemq<>Total(.*)Count + name: activemq_$2_total + type: COUNTER + +- pattern: org.apache.activemq<>(.*)PercentUsage + name: activemq_$2_usage_ratio + type: GAUGE + valueFactor: 0.01 +