Comments (10)
The recommended way to use the jmx exporter is as a java agent, which avoids this.
from jmx_exporter.
Thanks for the suggestion. The java agent is indeed easier and more lightweight to deploy. However, some applications already expose interesting metrics through MBeans, but may not be listening on a port. It is a bit invasive to require a restart of such applications only to have Prometheus scrape them, when they are already providing a mechanism to be scraped, through the Attach API.
from jmx_exporter.
In such a scenario, how do you plan on handling the application restarting?
from jmx_exporter.
If the application restarts for some reason, and jmx_exporter was connected through the Attach API, jmx_exporter would exit if it notices that the PID no longer exists. An external agent would re-launch it once the PID is known.
from jmx_exporter.
That seems a bit on the complicated side to me, and you'd likely be better off accepting the one restart required for the java agent.
from jmx_exporter.
Managing thousands of JVMs has to be slightly complicated ;-)
from jmx_exporter.
Have you considered not using JMX ;)
from jmx_exporter.
To elaborate, in a large system that consists of small services, some of them written a decade ago, and actively used by people, some are not designed to be restarted without causing some amount of disruption. Deploying a monitoring agent that spawns a jmx_exporter child to monitor these JVMs is a reasonable use-case.
It would be a small addition to the project that other people could find useful for other reasons (perhaps just to try it out on a running JVM prior to deciding to go for an agent).
from jmx_exporter.
Instead of adding an external agent to restart jmx_exporter, I'm thinking of giving the path to a PID file to jmx_exporter, and watching changes to that file through the same mechanism as the configuration reload.
from jmx_exporter.
I'm not sure this feature is worth the complexity it'd add, considering the objection to one of the supported ways we already have for this is that it causes a single application restart.
I'm already not a big fan of the webserver way of doing things.
from jmx_exporter.
Related Issues (20)
- Can't add metrics to blacklistObjectNames HOT 6
- Plan for release with Prometheus Client 1.x? HOT 2
- no main manifest attribute, in jmx_prometheus_javaagent-0.19.0.jar HOT 1
- Hazelcast Metrics are not showing HOT 2
- Remote jmx has enabled SSL. How to configure jmx-exporter for verification? HOT 13
- Ability to use lowercaseOutputName in particular rules HOT 4
- jmx exporter inside Confluent Kafka broker container HOT 2
- After applying JMX filtering pattern, it takes 23 secs to scrape the metrics, is it expected behaviour? HOT 6
- Collection fails for Kafka using release 1.0.0 HOT 14
- feature request: allow to exclude specific attribute patterns inside a composite attribute HOT 3
- Clarify in documentation "jvm_*" metrics HOT 4
- jmxexporter adding incorrect _total suffix to #HELP and #TYPE when using COUNTER HOT 10
- Kafka Metrics showing type as "Untyped" HOT 3
- Advice for validating JMX exporter rules HOT 1
- Support multi-target in http server mode HOT 6
- JMX agent interfering with logging format of application HOT 3
- Extracting PM metrics on Kafka Cluster results in duplicate files due to different cases in the same metric names. HOT 5
- Metric name "_info" suffix gets trimmed HOT 1
- kafka command raise 'Address Already in used' after configuration HOT 11
- kafka_2.13-3.7.1 without metrics HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jmx_exporter.