github prometheus/jmx_exporter 1.7.0
1.7.0 / 2026-10-05

5 hours ago

JMX Exporter 1.7.0

Features

  • SSL PEM support: The exporter HTTP server can now use PEM-encoded certificate/private key files instead of a Java keystore. Both httpServer.ssl.pem.certificate.filename and httpServer.ssl.pem.privateKey.filename are supported, including encrypted private keys (with an optional password that supports ${ENV_VAR} resolution) and unencrypted/encrypted PKCS8, traditional RSA, and traditional EC key formats. PEM mode is mutually exclusive with httpServer.ssl.keyStore, and certificate material continues to be reloaded hourly.
  • Configurable Java agent logging backend: The Java agent (and isolator agent) can now use a JUL-independent logging backend that writes INFO, WARN, and ERROR messages to standard error. Select it with -Djmx.prometheus.exporter.logging.backend=native or the JMX_PROMETHEUS_EXPORTER_LOGGING_BACKEND=native environment variable. Supported values are native and jul (the default), and the system property takes precedence over the environment variable.
  • Performance optimizations: Collector scraping, rule matching/caching, configuration loading, credential caching, and map/string handling were tuned, and JMH benchmark modules and helper scripts were added (collector-benchmarks, jmx_prometheus_common-benchmarks, jmx_prometheus_javaagent-benchmarks) to track them.
  • Reference material: The website documentation was restructured and a 1.7.0 versioned documentation set was added.

Fixed

  • The JVM no longer hangs on exit when httpServer.ssl is configured; the shared scheduled executor used for the hourly SSL certificate reload (and for maximumRequestSeconds) now uses daemon threads like the rest of the project.
  • Fixed credential caching: valid credentials are now looked up in the cache before the potentially expensive password verification, and invalid credentials are never cached.
  • Fixed configuration precedence.
  • Fixed security edge cases in the HTTP server.
  • Fixed a NullPointerException when an MBean reports an attribute that is not present in its MBeanInfo (the attribute is now skipped).
  • Fixed jar shading for the Java agent and isolator java agent.
  • The isolator class loader no longer fails on JDK 8 when a package is already defined by an ancestor classloader.
  • Reverted Caffeine to a version that maintains Java 8 compatibility.
  • Fixed Javadoc.
  • Fixed release.sh to correctly omit the v prefix from the release tag.
  • Fixed the developer test scripts.
  • Fixed integration test golden files to ignore the release version.

Changes

  • Removed the Bouncy Castle library dependency.
  • Implemented a BOM and reworked the build/release tooling (artifact packaging and SBOM handling).
  • Added JMH benchmark modules for the collector, shared support, and Java agent.
  • Refactored the integration test suite and added integration test framework helpers.
  • Added and updated Docker test images.
  • Decreased integration test output and improved test coverage.
  • Updated documentation and added 1.7.0 versioned documentation.
  • Multiple dependency updates.

New Contributors

Full Changelog

1.6.0...1.7.0

Don't miss a new jmx_exporter release

NewReleases is sending notifications on new releases.