-
Notifications
You must be signed in to change notification settings - Fork 395
Micrometer Prometheus client v1.x breaking changes #2340
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
🎊 PR Preview 09461bc has been successfully built and deployed to https://quarkus-site-pr-2340-preview.surge.sh
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces a new documentation post detailing the migration paths and breaking changes resulting from the switch to Prometheus client v1 in the Micrometer registry.
- Introduces a new post explaining upgrade options and dependency changes
- Details specific changes to metrics naming and API usage
|
There is a plan change:
Will re-write the blog to reflect that. |
|
Re-wrote the post according to the new plan and zulip coments. |
|
This is on hold due to other ongoing work. |
|
Updated the post. It's now ready to review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I need to read it again on my machine (on my phone now).
We should also advertise the working group
|
|
||
| Micrometer has become the default metrics framework in Quarkus due to its stability, maturity, and widespread adoption on the Java ecosystem — not https://quarkus.io/guides/opentelemetry-metrics[OpenTelemetry Metrics]. | ||
|
|
||
| Micrometer support in Quarkus is built on top af a main extension `quarkus-micrometer`, then specific registries extensions include it as a dependency and implement a registry sending out the telemetry. The Prometheus registry (`quarkus-micrometer-registry-prometheus`) is the default and most commonly used, and it is the focus of this announcement. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Of not af :-)
I can publicize this in that discussion but this is not part of the scope of that group. |
|
@cescoffier can you please re-review. |
| == Quarkus Micrometer using Prometheus client v1 | ||
|
|
||
| Micrometer adopted Prometheus Client v1.x starting with version 1.13. However, Quarkus still uses Prometheus Client v0.x by default through the `quarkus-micrometer-registry-prometheus` extension which has been using the legacy `io.prometheus:simpleclient`. | ||
| This is now considered *deprecated* and will not be part of a future Quarkus 4.x version (still no timeline). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| This is now considered *deprecated* and will not be part of a future Quarkus 4.x version (still no timeline). | |
| This is now considered *deprecated* and will not be part of the future Quarkus 4.x version (still no timeline). |
| ==== | ||
|
|
||
| === Quarkus migration plan | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To migrate to the new extension, follow these steps:
| === Quarkus migration plan | ||
|
|
||
| 1. Keep current extension as is until Quarkus 4.0 (whenever that happens) so users can migrate at a time of their choice. | ||
| 2. Introduce a new extension called https://docs.quarkiverse.io/quarkus-micrometer-registry/dev/micrometer-registry-prometheus-v1.html[`quarkus-micrometer-registry-prometheus-v1`]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| 2. Introduce a new extension called https://docs.quarkiverse.io/quarkus-micrometer-registry/dev/micrometer-registry-prometheus-v1.html[`quarkus-micrometer-registry-prometheus-v1`]. | |
| 2. Introduce the new extension called https://docs.quarkiverse.io/quarkus-micrometer-registry/dev/micrometer-registry-prometheus-v1.html[`quarkus-micrometer-registry-prometheus-v1`]. |
|
|
||
| === Quarkus migration plan | ||
|
|
||
| 1. Keep current extension as is until Quarkus 4.0 (whenever that happens) so users can migrate at a time of their choice. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- You can keep using the deprecated extension until Quarkus 4.0, so you can do it at your own time.
|
|
||
| 1. Keep current extension as is until Quarkus 4.0 (whenever that happens) so users can migrate at a time of their choice. | ||
| 2. Introduce a new extension called https://docs.quarkiverse.io/quarkus-micrometer-registry/dev/micrometer-registry-prometheus-v1.html[`quarkus-micrometer-registry-prometheus-v1`]. | ||
| 3. Remove current `quarkus-micrometer-registry-prometheus` on Quarkus 4.0 (no timeline at this moment) while providing an alternative on Quarkiverse. Quarkus users will get an additional migration period by using an upcoming community supported Quarkiverse extension. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| 3. Remove current `quarkus-micrometer-registry-prometheus` on Quarkus 4.0 (no timeline at this moment) while providing an alternative on Quarkiverse. Quarkus users will get an additional migration period by using an upcoming community supported Quarkiverse extension. | |
| 3. Remove the `quarkus-micrometer-registry-prometheus` extension |
| 1. Keep current extension as is until Quarkus 4.0 (whenever that happens) so users can migrate at a time of their choice. | ||
| 2. Introduce a new extension called https://docs.quarkiverse.io/quarkus-micrometer-registry/dev/micrometer-registry-prometheus-v1.html[`quarkus-micrometer-registry-prometheus-v1`]. | ||
| 3. Remove current `quarkus-micrometer-registry-prometheus` on Quarkus 4.0 (no timeline at this moment) while providing an alternative on Quarkiverse. Quarkus users will get an additional migration period by using an upcoming community supported Quarkiverse extension. | ||
| 4. Refactor code on Quarkus 4.0 Core: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would remove this, it's it's more a checklist for you and not for the user.
| ** Refactor the https://quarkus.io/guides/telemetry-micrometer[`quarkus-micrometer`] extension tests to use the new client. | ||
|
|
||
| === Breaking changes | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As mentioned above, the new extension comes with a set of breaking changes.
| ==== Implementation changes | ||
|
|
||
| Quarkus automatic instrumentation will generate metrics reflecting these changes. If your application defines custom metrics, be sure to update their creation, associated tests, and any dashboard queries to align with the guidelines above. | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm wondering about config? Are you using the same "base" and config objects?

This is a blog post to communicate the Micromenter Prometheus client v1.x changes.