Use http.target to drop non application spans
- Fixes #26776
:waning_crescent_moon: This workflow status is outdated as a new workflow run has been triggered.
Failing Jobs - Building d8cd8c10e16457706bb1080107b1d1cfc3a96b9e
| Status | Name | Step | Failures | Logs | Raw logs |
|---|---|---|---|---|---|
| ✖ | Gradle Tests - JDK 11 | Build |
Failures | Logs | Raw logs |
| :heavy_check_mark: | Gradle Tests - JDK 11 Windows |
Full information is available in the Build summary check run.
Failures
:gear: Gradle Tests - JDK 11 #
- Failing: integration-tests/gradle
:package: integration-tests/gradle
✖ io.quarkus.gradle.devmode.MultiSourceProjectDevModeTest.main line 22 - More details - Source on GitHub
org.awaitility.core.ConditionTimeoutException: Condition with lambda expression in io.quarkus.test.devmode.util.DevModeTestUtils that uses java.util.function.Supplier, java.util.function.Supplierjava.util.concurrent.atomic.AtomicReference, java.util.concurrent.atomic.AtomicReferencejava.lang.String, java.lang.Stringboolean was not fulfilled within 1 minutes.
at org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:167)
at org.awaitility.core.CallableCondition.await(CallableCondition.java:78)
@kdubb could you have a look at this one?
@radcortez can you please add a test?
@radcortez can you please add a test?
Tests already exist:
- io.quarkus.opentelemetry.deployment.NonAppEndpointsDisabledTest
- io.quarkus.opentelemetry.deployment.NonAppEndpointsDisabledWithRootPathTest
- io.quarkus.opentelemetry.deployment.NonAppEndpointsEnabledTest
- io.quarkus.opentelemetry.deployment.NonAppEndpointsEqualRootPath
This changes the underlying implementation to use the http.target to match the uri instead of the name, because the name may not always be the uri
Failing Jobs - Building 9572d44e7261de7be027d4d45c7752d101e2685e
| Status | Name | Step | Failures | Logs | Raw logs |
|---|---|---|---|---|---|
| ✖ | Gradle Tests - JDK 11 | Build |
Failures | Logs | Raw logs |
| :heavy_check_mark: | Gradle Tests - JDK 11 Windows | ||||
| :heavy_check_mark: | JVM Tests - JDK 11 | ||||
| ✖ | JVM Tests - JDK 11 Windows | Build |
Failures | Logs | Raw logs |
| :heavy_check_mark: | JVM Tests - JDK 17 | ||||
| :heavy_check_mark: | JVM Tests - JDK 18 |
Full information is available in the Build summary check run.
Failures
:gear: Gradle Tests - JDK 11 #
- Failing: integration-tests/gradle
:package: integration-tests/gradle
✖ io.quarkus.gradle.devmode.CompositeBuildWithDependenciesDevModeTest.main line 24 - More details - Source on GitHub
java.lang.AssertionError:
Expecting actual:
:gear: JVM Tests - JDK 11 Windows #
- Failing: extensions/vertx-http/deployment
! Skipped: extensions/agroal/deployment extensions/amazon-lambda-http/deployment extensions/amazon-lambda-rest/deployment and 284 more
:package: extensions/vertx-http/deployment
✖ io.quarkus.vertx.http.http2.Http2Test.testHttp2EnabledSsl line 57 - More details - Source on GitHub
java.util.concurrent.ExecutionException: javax.net.ssl.SSLHandshakeException: Failed to create SSL connection
at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999)
@radcortez can you please add a test?
Tests already exist:
- io.quarkus.opentelemetry.deployment.NonAppEndpointsDisabledTest
- io.quarkus.opentelemetry.deployment.NonAppEndpointsDisabledWithRootPathTest
- io.quarkus.opentelemetry.deployment.NonAppEndpointsEnabledTest
- io.quarkus.opentelemetry.deployment.NonAppEndpointsEqualRootPath
This changes the underlying implementation to use the
http.targetto match theuriinstead of the name, because the name may not always be theuri
It's just because this behaviour seems not to be considered in the current tests... Something that will break if http.target usage is reverted.
It's just because this behaviour seems not to be considered in the current tests... Something that will break if
http.targetusage is reverted.
What do you mean?
The old implementation used the span name to drop the non-application uris (like health or the dev console). This was incorrect because it assumes that the span name for http is always the uri (and we were setting that up previously). Due to the high cardinality issues in #26776, #26216, and #26694, it is better to remove the route resolution for uri, which was setting the name, and just keep the OTel way to resolve the name (and update the route if available).
This means that the span name is not a reliable way to drop endpoints, so that is why we are changing the implementation to use http.target. All the relevant tests pass, so our new behavior is still the same. What other tests would you like to see?