From b551504a859c50f95e29ca9c93d24b75d56d087f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A5=D0=B0=D0=BB=D1=82=D0=BE=D0=B1=D0=B8=D0=BD=20=D0=95?= =?UTF-8?q?=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9?= Date: Tue, 15 Jul 2025 09:04:23 +0300 Subject: [PATCH] added jmx exporter agent --- config/Dockerfile.backend | 9 +++++++-- config/jmx_exporter.yaml | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 config/jmx_exporter.yaml diff --git a/config/Dockerfile.backend b/config/Dockerfile.backend index c823625..eab55b5 100644 --- a/config/Dockerfile.backend +++ b/config/Dockerfile.backend @@ -6,7 +6,8 @@ FROM $BUILDER_IMAGE AS builder ARG MVN_FLAGS="-Pprod" RUN apt-get update \ - && apt-get -y install git glibc-locales java-17-openjdk-devel maven node \ + && apt-get -y install git glibc-locales java-17-openjdk-devel maven node curl \ + && curl --location --insecure https://github.com/prometheus/jmx_exporter/releases/download/1.3.0/jmx_prometheus_javaagent-1.3.0.jar -o jmx_prometheus_javaagent.jar \ && apt-get clean ENV JAVA_HOME=/usr/lib/jvm/java @@ -22,7 +23,6 @@ RUN mkdir -p $HOME/.m2 \ && mvn clean \ && mvn package -T4C ${MVN_FLAGS} - FROM $RUNTIME_IMAGE ARG ADMIN_PASSWORD=Secr3t @@ -30,11 +30,16 @@ USER root COPY config/tomcat / +ENV CATALINA_OPTS="-javaagent:/opt/jmx_exporter/jmx_prometheus_javaagent.jar=8081:/opt/jmx_exporter/config.yaml" + RUN cat /etc/tomcat/webbpm.properties >> /etc/tomcat/catalina.properties \ && sed -i -r "s//$ADMIN_PASSWORD/g" /etc/tomcat/tomcat-users.xml \ && chown root:tomcat /var/lib/tomcat/webapps \ && chmod g+rw /var/lib/tomcat/webapps +COPY --from=builder jmx_prometheus_javaagent.jar /opt/jmx_exporter/jmx_prometheus_javaagent.jar +COPY config/jmx_exporter.yaml /opt/jmx_exporter/config.yaml + USER tomcat COPY --from=builder /app/backend/target/fl*.war /var/lib/tomcat/webapps/fl.war diff --git a/config/jmx_exporter.yaml b/config/jmx_exporter.yaml new file mode 100644 index 0000000..1dec7af --- /dev/null +++ b/config/jmx_exporter.yaml @@ -0,0 +1,39 @@ +lowercaseOutputLabelNames: true +lowercaseOutputName: true +whitelistObjectNames: ["java.lang:type=OperatingSystem", "Catalina:*"] +blacklistObjectNames: [] +rules: + - pattern: 'Catalina<>serverInfo: (.+)' + name: tomcat_serverinfo + value: 1 + labels: + serverInfo: "$1" + type: COUNTER + - pattern: 'Catalina<>(\w+):' + name: tomcat_$3_total + labels: + port: "$2" + protocol: "$1" + help: Tomcat global $3 + type: COUNTER + - pattern: 'Catalina<>(requestCount|processingTime|errorCount):' + name: tomcat_servlet_$3_total + labels: + module: "$1" + servlet: "$2" + help: Tomcat servlet $3 total + type: COUNTER + - pattern: 'Catalina<>(currentThreadCount|currentThreadsBusy|keepAliveCount|connectionCount|acceptCount|acceptorThreadCount|pollerThreadCount|maxThreads|minSpareThreads):' + name: tomcat_threadpool_$3 + labels: + port: "$2" + protocol: "$1" + help: Tomcat threadpool $3 + type: GAUGE + - pattern: 'Catalina<>(processingTime|sessionCounter|rejectedSessions|expiredSessions):' + name: tomcat_session_$3_total + labels: + context: "$2" + host: "$1" + help: Tomcat session $3 total + type: COUNTER \ No newline at end of file