I'd like to use Prometheus' JMX exporter to collect custom application metrics using Prometheus. I have an application that I've packaged into a jar file ApplicationToMonitor.jar
-- it exposes port 8989 and declares Prometheus metrics, but doesn't expose an end-point for prometheus to scrape (from what I've read, the prometheus javaagent takes care of this).
I'm not sure what the configuration.yaml
file should look like. Also, why is it recommended that one use the shaded.io.prometheus
library (and register new metric variables under the default registry) as opposed to the regular io.prometheus
library and not using a registry at all?
I'm referencing the Prometheus JMX exporter documentation, just simply not understanding the aforementioned components.
That's the job of the Prometheus JMX Exporter. The exporter connects to Java's native metric collection system, Java Management Extensions (JMX), and converts the metrics into a format that Prometheus can understand. In this post, I'll use Kafka as an example of a Java application that you want to monitor.
You would only use the JMX exporter for code you don't control that's exposing JMX metrics. In this case you need to add some exposition per https://github.com/prometheus/client_java#http. The HTTPServer
is simplest.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With