Camunda prometheus exporter

Hi Camunda Team,

Question:
How can I get the default metrics of Camunda 7 in Prometheus when Camunda is deployed onto a Tomcat, and this setup is done with Docker Compose?

Do I need to do something extra so that I get to see the default metrics for the task executors? At the moment I don’t see them.

This blog Monitoring Camunda Platform 7 with Prometheus | Camunda clarifies that the metrics are exposed by default in Spring, does that will work as well for my deployment type:

“Since Spring Boot 2.6, the metrics for task executors are exposed by default.”

Some values in my configuration:

Container Image:

ARG version=7.17.7
FROM registry.camunda.cloud/cambpm-ee/camunda-bpm-platform-ee:$version

prometheus.yaml:

lowercaseOutputName: true
lowercaseOutputLabelNames: true

rules:
- pattern: ".*"

Starting the JMX Exporters CATALINA_OPTS in Container:

--env CATALINA_OPTS=-javaagent:/camunda/javaagent/jmx_prometheus_javaagent.jar=9999:/camunda/conf/prometheus.yaml

Hi @g.manzano,

A section from the linked blog post:

Tomcat – This server provides no integrated server monitoring. You can use the Prometheus Java client in a custom servlet application.

The Camunda monitoring is only available in the Spring Boot environment and is implemented in the Spring Boot starter: camunda-bpm-platform/spring-boot-starter/starter/src/main/java/org/camunda/bpm/spring/boot/starter/actuator at master · camunda/camunda-bpm-platform · GitHub.

The docker image you are referring to is a shared engine on the Tomcat server with only a minimal Spring functionality to access beans during configuration.

Hope that helps, Ingo

Hi @Ingo_Richtsmeier

You are guiding me in the right direction, I think I still need a hint to connect all dots.

The documentation also says after the part you refer:

For all the environments mentioned above, you can also use a Prometheus exporter instead. There are dedicated exporters for each of those servers.

Our Docker Compose set ups a JMX Exporter, this one to be precise:
GitHub - prometheus/jmx_exporter: A process for exposing JMX Beans via HTTP for Prometheus consumption
This exporter is intended to be run as a Java Agent, exposing a HTTP server and serving metrics of the local JVM. However the metrics still do not show up.

So it means: if we keep using the tomcat I refer in the original message, that tomcat will not have the metrics because that tomcat has a minimal Spring functionality and the monitoring is not in that functionality.

What would be then my options ? are there any other docker images that I could actually use instead of the one in my configuration ?

@g.manzano Were you able to proceed on this ?
We are using Camunda 7.15 with tomcat server. I am trying to use JMX Exporter and Prometheus to get the Camunda metrics but I am not getting all the metrics which are mentioned in the Camunda documentation page Camunda Metrics. I am able to see few executor job related metrics but no information related historical jobs.

Our solution was to setup an Camunda engine just for monitoring. We did with Camunda Run because Camunda Run is just the Camunda Spring Boot distribution but ready to run, and that contains already the metrics that we needed.

It was a solution that it did not involve any development, just configuration.