Tomcat に Prometheus用の JMX Exporter を追加してみる

tomcat に prometheus用の JXMメトリクス を吐くjavaagentを追加してみたときのテストです。
生で動かすのめんどくさいからDockerでやります。

Dockerfileの準備

Dockerを使用しようと思うのでDockerfileを準備します

  • Dockerfile
FROM tomcat:9

RUN curl -O https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.11.0/jmx_prometheus_javaagent-0.11.0.jar
RUN curl -O https://raw.githubusercontent.com/prometheus/jmx_exporter/master/example_configs/tomcat.yml
ENV JAVA_OPTS -javaagent:$CATALINA_HOME/jmx_prometheus_javaagent-0.11.0.jar=8090:$CATALINA_HOME/tomcat.yml

EXPOSE 8080 8090
CMD ["catalina.sh", "run"]

docker build

$ docker build -t tomcat-prometheus ./

起動

$ docker run -d -p 8080:8080 -p 8090:8090 tomcat-prometheus

https://localhost:8090 でプロメテウス用のメトリクスが出力されます。

簡単ですね!