Vert.x WebClient instrumentation#1824
Conversation
💚 Build Succeeded
Expand to view the summary
Build stats
Test stats 🧪
Trends 🧪💚 Flaky test reportTests succeeded. Expand to view the summary
Test stats 🧪
|
eyalkoren
left a comment
There was a problem hiding this comment.
I will take over from here, thanks @AlexanderWert!
...3-plugin/src/main/java/co/elastic/apm/agent/vertx/v3/webclient/WebClientInstrumentation.java
Outdated
Show resolved
Hide resolved
...4-plugin/src/main/java/co/elastic/apm/agent/vertx/v4/webclient/WebClientInstrumentation.java
Outdated
Show resolved
Hide resolved
.../apm-vertx-common/src/main/java/co/elastic/apm/agent/vertx/AbstractVertxWebClientHelper.java
Outdated
Show resolved
Hide resolved
...4-plugin/src/main/java/co/elastic/apm/agent/vertx/v4/webclient/WebClientInstrumentation.java
Outdated
Show resolved
Hide resolved
eyalkoren
left a comment
There was a problem hiding this comment.
@AlexanderWert it is ready as far as I am concerned.
Please go over the changes I've made to make sure they make sense.
I fixed the fail() API instrumentation (decrementing references for the parent span so that it can be reported) and added a test. In addition, I made sure that we at least capture an error for this scenario. Currently, a span is reported with all the details for failed requests only in Vert.x 3. We can add this capability to Vert.x 4 as well, but it will be messy - we will need to rely on internal fields for that (see details) so I decided an error will do for now 🙂 .
|
@eyalkoren: LGTM, I'm fine with merging! |
Extended Vert.x instrumentation with instrumentation for Vert.x Web Client.
Notes:
Didn't use the tracer approach for version 4 as this does not allow to handle instrumentation of redirects properly.
Instrumentation approach is similar for all versions
had to fix Vert.x core instrumentation for setTimer context propagation: avoid instrumentation of directly recursive setTimer invocations (as this is a common pattern for endless checks)
Added to CHANGELOG
Added to supported technologies page