Closed FireBurn closed 6 months ago
Can you elaborate on why you are using /dev/null
as a configuration practice?
I don't see that as a common use case. My concern with defaults is that "sensible defaults" are based on perspective.
Considering the code using the exporter has to be installed/configured, adding a generic /etc/exporter.yaml
as part of that process (or in a base Docker image) seems like a reasonable step for users.
We only passed in a yaml file where we needed to manipulate the output or delay startup
Can I just check, was passing /dev/null before the same as providing:
rules:
- pattern: ".*"
I feel that the negatives outweigh the positives for such a niche configuration scenario.
Bug
The fact that /dev/null
worked in the past feels like a bug. The documentation and code before HTTPS/basic authentication support was added both references the requirement for an exporter YAML file.
https://github.com/prometheus/jmx_exporter/tree/release-0.17.2
Platform-specific code
Coding to specifically check for /dev/null
introduces Linux-specific code that isn't easily/if at all possible to be implemented on Windows.
Defaults
Defaults will cause issues when the configuration filename is invalid.
Example:
Someone configures /etc/exporter.yaml
, but the actual filename is /etc/exporer.yaml
(typo). The exporter would run with the defaults, resulting in configuration/debugging time... "why is the exporter not working?"
We're moving to use a file, just need you to confirm what passing /dev/null was equivalent to, then I'm happy to close this
Looking at the code, it should be the equivalent of...
rules:
- pattern: ".*"
Code
If no rules are defined, which would be the scenario for /dev/null
(empty file), then the code creates a single Rule
object. Note: the default Rulle
object value type
is undefined (catch-all)
... ultimately calling default export...
We used to use:
-javaagent:jmx_prometheus_javaagent.jar=<host>:<port>:/dev/null
but that no longer works since https support was added, is it possible to use a sensible default if no file is specified or to allow /dev/null again?
https://github.com/prometheus/jmx_exporter/blob/89275ac5fed732b943c248867db578b6f12bb756/jmx_prometheus_common/src/main/java/io/prometheus/jmx/common/http/HTTPServerFactory.java#L137