Skip to content

Conversation

@geoand
Copy link
Contributor

@geoand geoand commented Nov 20, 2025

@quarkus-bot
Copy link

quarkus-bot bot commented Nov 20, 2025

Status for workflow Quarkus Documentation CI

This is the status report for running Quarkus Documentation CI on commit c2c33dc.

✅ The latest workflow run for the pull request has completed successfully.

It should be safe to merge provided you have a look at the other checks in the summary.

Warning

There are other workflow runs running, you probably need to wait for their status before merging.

@github-actions
Copy link

🎊 PR Preview df5afb5 has been successfully built and deployed to https://quarkus-pr-main-51132-preview.surge.sh/version/main/guides/

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

@geoand
Copy link
Contributor Author

geoand commented Nov 20, 2025

Lovely, this seems to break something else...

@geoand
Copy link
Contributor Author

geoand commented Nov 20, 2025

It seems that with this change, there are now two metrics being created, so I need to figure out what's going on

@quarkus-bot
Copy link

quarkus-bot bot commented Nov 20, 2025

Status for workflow Quarkus CI

This is the status report for running Quarkus CI on commit c2c33dc.

Failing Jobs

Status Name Step Failures Logs Raw logs Build scan
JVM Tests - JDK 17 Build Failures Logs Raw logs 🔍
JVM Tests - JDK 21 Build Failures Logs Raw logs 🔍
JVM Tests - JDK 25 Build Failures Logs Raw logs 🔍
JVM Tests - JDK 17 Windows Build Failures Logs Raw logs 🔍
JVM Integration Tests - JDK 17 ⚠️ Check → Logs Raw logs 🚧
✔️ JVM Integration Tests - JDK 17 Windows Logs Raw logs 🔍
✔️ JVM Integration Tests - JDK 21 Logs Raw logs 🔍
✔️ JVM Integration Tests - JDK 25 Logs Raw logs 🔍

Full information is available in the Build summary check run.
You can consult the Develocity build scans.

Failures

⚙️ JVM Tests - JDK 17 #

- Failing: extensions/micrometer/deployment 
! Skipped: extensions/liquibase/liquibase-mongodb/deployment extensions/micrometer-opentelemetry/deployment extensions/micrometer-registry-prometheus/deployment and 7 more

📦 extensions/micrometer/deployment

io.quarkus.micrometer.deployment.binder.RestClientUriParameterTest.testOverride line 61 - History - More details - Source on GitHub

org.opentest4j.AssertionFailedError: expected: </example/{id}> but was: </example/bar>
	at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
	at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
	at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197)
	at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182)
	at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:177)
	at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1145)
	at io.quarkus.micrometer.deployment.binder.RestClientUriParameterTest.testOverride(RestClientUriParameterTest.java:61)

⚙️ JVM Tests - JDK 21 #

- Failing: extensions/micrometer/deployment 
! Skipped: extensions/liquibase/liquibase-mongodb/deployment extensions/micrometer-opentelemetry/deployment extensions/micrometer-registry-prometheus/deployment and 7 more

📦 extensions/micrometer/deployment

io.quarkus.micrometer.deployment.binder.RestClientUriParameterTest.testOverride line 61 - History - More details - Source on GitHub

org.opentest4j.AssertionFailedError: expected: </example/{id}> but was: </example/bar>
	at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
	at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
	at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197)
	at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182)
	at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:177)
	at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1145)
	at io.quarkus.micrometer.deployment.binder.RestClientUriParameterTest.testOverride(RestClientUriParameterTest.java:61)

⚙️ JVM Tests - JDK 25 #

- Failing: extensions/micrometer/deployment 
! Skipped: extensions/liquibase/liquibase-mongodb/deployment extensions/micrometer-opentelemetry/deployment extensions/micrometer-registry-prometheus/deployment and 7 more

📦 extensions/micrometer/deployment

io.quarkus.micrometer.deployment.binder.RestClientUriParameterTest.testOverride line 61 - History - More details - Source on GitHub

org.opentest4j.AssertionFailedError: expected: </example/{id}> but was: </example/bar>
	at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
	at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
	at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197)
	at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182)
	at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:177)
	at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1145)
	at io.quarkus.micrometer.deployment.binder.RestClientUriParameterTest.testOverride(RestClientUriParameterTest.java:61)

⚙️ JVM Tests - JDK 17 Windows #

- Failing: extensions/micrometer/deployment 
! Skipped: extensions/liquibase/liquibase-mongodb/deployment extensions/micrometer-opentelemetry/deployment extensions/micrometer-registry-prometheus/deployment and 7 more

📦 extensions/micrometer/deployment

io.quarkus.micrometer.deployment.binder.RestClientUriParameterTest.testOverride line 61 - History - More details - Source on GitHub

org.opentest4j.AssertionFailedError: expected: </example/{id}> but was: </example/bar>
	at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
	at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
	at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197)
	at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182)
	at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:177)
	at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1145)
	at io.quarkus.micrometer.deployment.binder.RestClientUriParameterTest.testOverride(RestClientUriParameterTest.java:61)

@geoand
Copy link
Contributor Author

geoand commented Nov 20, 2025

Here is an outline of the problem:

Whenever a Vert.x HTTP Client is created in Quarkus, and if HttpClientOptions.setMetricsName is set, then Quarkus and Vert.x collaborate (via io.quarkus.micrometer.runtime.binder.vertx.VertxHttpClientMetrics) to generate various metrics.
One of the metrics created is http.client.requests, but there are others as well that are very useful to determine the health of the system.

In the REST Client, we have a custom way to generate the same http.client.requests metric. The reason this one is needed is that at the REST Client level, we have information that is simply not available at the Vert.x HTTP Client level - such as the templated path.

The problem currently is that I have not found a way for either of these ways to influence the other (or outright turn it off).
I want to avoid removing http.client.requests from the Vert.x HTTP Client metrics tracking, because that would mean that non-REST Client usages of the client would lose an important metric.

I am still looking for a workaround that would not require any changes to Vert.x

@geoand
Copy link
Contributor Author

geoand commented Nov 20, 2025

@cescoffier @vietj I believe that what I need to overcome this issue is to be able to set some information on HttpClientRequest, which is then propagated to io.vertx.core.spi.observability.HttpRequest.

Does this make sense?

@geoand
Copy link
Contributor Author

geoand commented Nov 21, 2025

@cescoffier @vietj I believe that what I need to overcome this issue is to be able to set some information on HttpClientRequest, which is then propagated to io.vertx.core.spi.observability.HttpRequest.

Does this make sense?

Without this, I don't see a way of being able to avoid having duplicate metrics for the REST client

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

How to monitor HTTP client connection pool usage (available vs used connections, pool limit exceeded)

3 participants