Skip to content

Releases: prometheus/client_java

0.13.0 / 2021-12-13

13 Dec 22:24
Compare
Choose a tag to compare

We updated log4j to 2.15.0, which fixes the log4shell vulnerability (CVE-2021-44228) (#726). Technically simpleclient_log4j2 is not directly affected by the vulnerability, because as long as you update log4j in your monitored application simpleclient_log4j2 will pick up the updated version. However, it makes sense to remove the vulnerable versions from the dependency tree, therefore the update.

In addition to the log4j update in simpleclient_log4j2, this release contains the following enhancements and fixes:

[ENHANCEMENT] Allow passing a custom registry to the logback InstrumentedAppender (#690). Thanks @MatthewDolan.
[BUGFIX] Correct handling of HEAD requests (#688). Thanks @dhoard.
[ENHANCEMENT] Lots of more integration tests and tests with different Java versions.
[ENHANCEMENT] Make HTTPMetricHandler public so that users can use them in their own HttpServers (#722). Thanks @dhoard.
[ENHANCEMENT] Make Base64 encoding in the HTTP authentication for the PushGateway work with all Java versions (#698). Thanks @dhoard.

0.12.0 / 2021-08-29

29 Aug 21:47
Compare
Choose a tag to compare

This release has a (minor) breaking change in the simpleclient_hotspot module, fixing an incompatibility with OpenMetrics:

The metric jvm_classes_loaded from the ClassLoadingExports was renamed to jvm_classes_currently_loaded #681. The reason is that there is another metric named jvm_classes_loaded_total, and in OpenMetrics this resulted in a name conflict because the base name jvm_classes_loaded was the same, see github.com/prometheus/jmx_exporter/issues/621.

[ENHANCEMENT] add support for Jakarta Servlet, implemented in the new simpleclient_servlet_jakarta module #647. Thanks @mmadoo for the initial PR.
[ENHANCEMENT] provide a way for filtering metrics by name / name prefix. This can be configured either in the HTTPServer, or in the Servlet exporter (both javax and Jakarta). For example, if some JMX metrics cause performance issues, this can be used for excluding these metrics #680.
[ENHANCEMENT] for the Servlet filter (both javax and Jakarta): Add a parameter to strip the deployment path from the path label #639. Thanks @lapo-luchini !
[ENHANCEMENT] Add HTTP Authentication to the HTTPServer #682. Thanks @dhoard.
[BUGFIX] Use <packaging>bundle</packaging> everywhere so that client_java works with OSGI again #678. Thanks @bigmarvin.
[BUGFIX] use the correct name for the metric type gaugehistogram in OpenMetrics (previously this was wrongly named gauge_histogram)

0.11.0 / 2021-05-30

30 May 20:51
Compare
Choose a tag to compare

[FEATURE] Exemplars: API for adding OpenMetrics Exemplars and out-of-the-box integration with OpenTelemetry tracing (#652).
[ENHANCEMENT] Introduce TestContainers integration test, for example for testing different Java versions. This means you need Docker installed to run ./mvnw verify (#652).
[ENHANCEMENT] HTTPServer: Set request/response timeouts (#643).
[ENHANCEMENT] HTTPServer: Make HTTPMetricHandler public so that it can be used in a custom HTTPServer (#665).
[ENHANCEMENT] New JVM memory metrics: jvm_memory_pool_collection_used_bytes, jvm_memory_pool_collection_committed_bytes, jvm_memory_pool_collection_max_bytes, jvm_memory_pool_collection_init_bytes, jvm_memory_objects_pending_finalization (#661, #660).
[ENHANCEMENT] Version bumps (junit, jetty, maven plugins)

0.10.0 / 2021-01-25

25 Jan 14:21
Compare
Choose a tag to compare

With this release the client_java simpleclient switches to the OpenMetrics data model and adds support for various new OpenMetrics-related features. This should be largely seamless, however any counters which lack a _total suffix on their sample will now have it added. If you'd prefer to make that change more gradually, you should change your metric names before upgrading to this version.

[CHANGE] Switch data model to OpenMetrics. Primarily this means that _total if present is stripped from the metric name of counters, and _total is now always a suffix on the sample value. This means that all Counter samples now have a _total suffix (#615)
[CHANGE] The io.prometheus.client.Collector.Type enum' value UNTYPED renamed to UNKNOWN (#615)
[FEATURE] Add Info and Enumeration metric types for direct instrumentation (#615)
[FEATURE] Counter, Summary, and Histogram metrics now expose a _created sample with when their child was created (#615)
[FEATURE] Add support for units (#615)
[FEATURE] Add gauge histograms, info, stateset for custom collectors (#615)
[FEATURE] Support negotiating and exposing OpenMetrics for all HTTP server exposition (#615 )
[FEATURE] Add ability to filter metrics in DropwizardExports (#574)
[ENHANCEMENT] Handle empty label values for the pushgateway (#553)
[ENHANCEMENT] Add Bill of Materials (#561)
[ENHANCEMENT] Count HTTP statuses returned for servlet filter (#560)
[BUGFIX] Make sure GZIPOutputStream is always closed for httpserver (#598)
[BUGFIX] Specify the charset of HTTPServer response for systems not using utf-8 by default (#564)

0.9.0 / 2020-05-11

11 May 11:28
Compare
Choose a tag to compare

[CHANGE/ENHANCEMENT] Bump caffeine dependency to 2.7.0 to support AsyncCache (#549)
[ENHANCEMENT] Added health check api to simpleclient_httpserver. (#534)
[ENHANCEMENT] Remove dependency on sun.misc.Unsafe, allowing building on JDK11 (#547)
[ENCHAGEMENT] Wrap PrintWriter with BufferedWriter, making servlet exposition about 2x faster (#540)

0.8.1 / 2020-01-23

23 Jan 12:19
Compare
Choose a tag to compare

[BUGFIX] Don't throw NPE if .help() wasn't called (#458)
[BUGFIX]Don't wrap a RuntimeException in another RuntimeException. (#488)
[BUGFIX] Make pushgateway module compile on Java 11 (#522)

0.8.0 / 2019-10-23

23 Oct 11:56
Compare
Choose a tag to compare

[ENHANCEMENT] Allow for 200 response code from pgw 0.10.0 (#507)
[BUGFIX] Add a class cast check to avoid ClassCastException (#505)

0.7.0 / 2019-09-24

24 Sep 11:44
Compare
Choose a tag to compare

[CHANGE/BUGFIX] Don't sanitize away colons in metric names (#498)
[ENHANCEMENT] Handle slashes in pgw grouping label values. (#491)
[ENHANCEMENT] Allow a specific HttpServer to be specified, so HttpsServer could be used (#471)
[ENHANCEMENT] Set thread names in HTTPServer (#456)
[ENHANCEMENT] Allow DefaultExports to be registered with an arbitrary CollectorRegistry (#450)
[ENHANCEMENT] Slightly decrease thread contention in summary (#481)
[ENHANCEMENT] Use atomics instead of synchronized for Gauge.set (#482)
[BUGFIX] Fixed one way to get a ConcurrentModificationException (#495)
[BUGFIX] Dropwizard: Pass on labels when no custom mapping matched (#447)

0.6.0 / 2018-12-05

05 Dec 16:32
Compare
Choose a tag to compare

[FEATURE] Allow mapping Dropwizard metrics with Prometheus labels (#435)
[FEATURE] Add MemoryAllocationExports (#434)
[ENHANCEMENT] Put response body in pushgateway exception (#423)
[ENHANCEMENT] Add port public getter in HTTPServer (#414)
[BUGFIX] Fix HTTP header content-length when using compression (#413)
[BUGFIX] GZIPOutputStream wasn't closed, which may cause a native memory leak (#426)
[BUGFIX] Fix thread state metrics not being exposed (#419)

0.5.0 / 2018-07-30

30 Jul 09:43
Compare
Choose a tag to compare

[FEATURE] Extend JVM metrics with thread states
[FEATURE] Added ability to add authentication logic into pushgateway request.
[FEATURE/CHANGE] Added per-query metrics in HibernateStatisticsCollector, required moving hibernate dependency to 5.2.0