Skip to content

Conversation

@brunobat
Copy link
Contributor

@brunobat brunobat commented Jun 18, 2025

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

@github-actions
Copy link

github-actions bot commented Jun 18, 2025

🎊 PR Preview 09461bc has been successfully built and deployed to https://quarkus-site-pr-2340-preview.surge.sh

  • Images of blog posts older than 3 months are not available.
  • Newsletters older than 3 months are not available.

@gastaldi gastaldi requested a review from Copilot June 18, 2025 17:26
Copy link
Contributor

Copilot AI left a 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

@brunobat brunobat marked this pull request as draft June 20, 2025 07:43
@brunobat
Copy link
Contributor Author

brunobat commented Jun 20, 2025

There is a plan change:

  1. Keep current extension as is until Quarkus 4.0 (whenever that happens)
  2. Create a new extension called quarkus-micrometer-registry-prometheus-v1 now
  3. Delete current quarkus-micrometer-registry-prometheus on Quarkus 4.0. Provide alternative on Quarkiverse.
  4. Refactor: Stramline the main extension (quarkus-micrometer) and quarkus-micrometer-registry-prometheus-v1 to remove outdated code on Quarkus 4.0.
  5. On the next LTS it would be good to mark for deprecation the old registry and support the new one.

Will re-write the blog to reflect that.

@brunobat
Copy link
Contributor Author

brunobat commented Jun 20, 2025

Re-wrote the post according to the new plan and zulip coments.
I still need to come up with better examples for the changes.
Will finish when I know when we will release the new extension.

@brunobat
Copy link
Contributor Author

brunobat commented Jul 2, 2025

This is on hold due to other ongoing work.

@brunobat
Copy link
Contributor Author

Updated the post. It's now ready to review.

@brunobat brunobat marked this pull request as ready for review October 20, 2025 16:22
@brunobat brunobat changed the title Micrometer Prometheus client v1.0 breaking changes Micrometer Prometheus client v1.x breaking changes Oct 20, 2025
Copy link
Member

@cescoffier cescoffier left a 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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Of not af :-)

@brunobat
Copy link
Contributor Author

I need to read it again on my machine (on my phone now).

We should also advertise the working group

I can publicize this in that discussion but this is not part of the scope of that group.

@brunobat
Copy link
Contributor Author

@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).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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

Copy link
Member

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`].
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. 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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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:
Copy link
Member

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

Copy link
Member

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.

Copy link
Member

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants