|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## [1.6.1](https://github.com/prometheus/client_java/compare/v1.6.0...v1.6.1) (2026-04-27) |
| 4 | + |
| 5 | +> Note: With the OM2 metric-name preservation fix in this release, OpenMetrics 2.0 can now be |
| 6 | +> tested. It is still in progress and not ready for general use yet. |
| 7 | +
|
| 8 | +### Bug Fixes |
| 9 | + |
| 10 | +* Preserve original metric names in OM2 output ([#2058](https://github.com/prometheus/client_java/issues/2058)) ([59a7a6d](https://github.com/prometheus/client_java/commit/59a7a6d4d5a9eb31c33167764b11ba96d6625b74)) |
| 11 | + |
| 12 | + |
| 13 | +### Documentation |
| 14 | + |
| 15 | +* clarify 1.6.0 release notes ([#2062](https://github.com/prometheus/client_java/issues/2062)) ([9e5d591](https://github.com/prometheus/client_java/commit/9e5d591f4c2e8e0d39ce5141ac14fff057b09c67)) |
| 16 | +* Document semantic PR title guidance ([#2060](https://github.com/prometheus/client_java/issues/2060)) ([7277889](https://github.com/prometheus/client_java/commit/727788942cccbecfa57d75eee9fb3e942083a95e)) |
| 17 | + |
3 | 18 | ## [1.6.0](https://github.com/prometheus/client_java/compare/v1.5.1...v1.6.0) (2026-04-25) |
4 | 19 |
|
5 | 20 | > Note: OpenMetrics 2.0 support is still in progress and not ready for general use yet. |
| 21 | +> |
| 22 | +> As part of the OM2 work, metric-name suffix handling moved from metric creation time to scrape |
| 23 | +> time. A positive side effect is that metric names are now more flexible across the board, for |
| 24 | +> example names ending in suffixes like `_total` are accepted where they were previously rejected. |
| 25 | +> To keep the Prometheus and OM1 output unambiguous, the registry tracks claimed exposition names |
| 26 | +> and still rejects registrations that would collide at scrape time. |
| 27 | +> |
| 28 | +> | Example | Before 1.6.0 | Since 1.6.0 | Reason | |
| 29 | +> | --- | --- | --- | --- | |
| 30 | +> | `Gauge("foo_total")` | Rejected | Allowed | Not breaking because this previously failed at registration, so no working setup changes behavior, and safe because `_total` suffix expansion applies to counters, not gauges. | |
| 31 | +> | `Counter("events_total")` | Rejected | Allowed | Not breaking because the OM1 output is still `events_total`; only the builder now accepts the name. | |
| 32 | +> | `Gauge("foo_total")` + `Histogram("foo")` | Rejected | Allowed | Not breaking because this combination used to be blocked even though the exposed names do not overlap. | |
| 33 | +> | `Gauge("events_total")` + `Counter("events")` | Rejected | Rejected | Not breaking because the ambiguous OM1 output would still expose two `events_total` series. | |
| 34 | +> | `Gauge("foo_count")` + `Histogram("foo")` | Allowed | Rejected | Intentionally breaking because the old behavior could expose a conflicting `foo_count` name at scrape time. | |
6 | 35 |
|
7 | 36 | ### Features |
8 | 37 |
|
|
0 commit comments