-
Notifications
You must be signed in to change notification settings - Fork 304
Support CompletableFuture on spring webmvc controllers #8659
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
Conversation
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 65 metrics, 6 unstable metrics. Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.48.0-SNAPSHOT~904f3aa084, baseline=1.48.0-SNAPSHOT~089d1cc0cb
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.053 s) : 0, 1052898
Total [baseline] (10.547 s) : 0, 10546767
Agent [candidate] (1.056 s) : 0, 1055709
Total [candidate] (10.48 s) : 0, 10479698
section appsec
Agent [baseline] (1.194 s) : 0, 1194241
Total [baseline] (10.741 s) : 0, 10741319
Agent [candidate] (1.197 s) : 0, 1197484
Total [candidate] (10.748 s) : 0, 10748427
section iast
Agent [baseline] (1.179 s) : 0, 1179048
Total [baseline] (11.014 s) : 0, 11014131
Agent [candidate] (1.179 s) : 0, 1179403
Total [candidate] (11.058 s) : 0, 11057545
section profiling
Agent [baseline] (1.285 s) : 0, 1285049
Total [baseline] (10.884 s) : 0, 10884488
Agent [candidate] (1.277 s) : 0, 1276570
Total [candidate] (10.872 s) : 0, 10872318
gantt
title petclinic - break down per module: candidate=1.48.0-SNAPSHOT~904f3aa084, baseline=1.48.0-SNAPSHOT~089d1cc0cb
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (717.689 ms) : 0, 717689
BytebuddyAgent [candidate] (719.809 ms) : 0, 719809
GlobalTracer [baseline] (238.886 ms) : 0, 238886
GlobalTracer [candidate] (239.786 ms) : 0, 239786
AppSec [baseline] (54.901 ms) : 0, 54901
AppSec [candidate] (54.615 ms) : 0, 54615
Debugger [baseline] (4.436 ms) : 0, 4436
Debugger [candidate] (4.408 ms) : 0, 4408
Remote Config [baseline] (692.773 µs) : 0, 693
Remote Config [candidate] (693.455 µs) : 0, 693
Telemetry [baseline] (15.754 ms) : 0, 15754
Telemetry [candidate] (15.808 ms) : 0, 15808
section appsec
BytebuddyAgent [baseline] (738.561 ms) : 0, 738561
BytebuddyAgent [candidate] (740.276 ms) : 0, 740276
GlobalTracer [baseline] (235.686 ms) : 0, 235686
GlobalTracer [candidate] (236.451 ms) : 0, 236451
IAST [baseline] (21.612 ms) : 0, 21612
IAST [candidate] (21.684 ms) : 0, 21684
AppSec [baseline] (175.706 ms) : 0, 175706
AppSec [candidate] (176.275 ms) : 0, 176275
Debugger [baseline] (4.306 ms) : 0, 4306
Debugger [candidate] (4.288 ms) : 0, 4288
Remote Config [baseline] (643.07 µs) : 0, 643
Remote Config [candidate] (637.405 µs) : 0, 637
Telemetry [baseline] (8.209 ms) : 0, 8209
Telemetry [candidate] (8.217 ms) : 0, 8217
section iast
BytebuddyAgent [baseline] (836.513 ms) : 0, 836513
BytebuddyAgent [candidate] (838.063 ms) : 0, 838063
GlobalTracer [baseline] (229.459 ms) : 0, 229459
GlobalTracer [candidate] (229.261 ms) : 0, 229261
IAST [baseline] (22.947 ms) : 0, 22947
IAST [candidate] (22.677 ms) : 0, 22677
AppSec [baseline] (56.163 ms) : 0, 56163
AppSec [candidate] (55.559 ms) : 0, 55559
Debugger [baseline] (4.158 ms) : 0, 4158
Debugger [candidate] (4.111 ms) : 0, 4111
Remote Config [baseline] (636.765 µs) : 0, 637
Remote Config [candidate] (605.458 µs) : 0, 605
Telemetry [baseline] (8.77 ms) : 0, 8770
Telemetry [candidate] (8.657 ms) : 0, 8657
section profiling
BytebuddyAgent [baseline] (715.832 ms) : 0, 715832
BytebuddyAgent [candidate] (711.427 ms) : 0, 711427
GlobalTracer [baseline] (351.306 ms) : 0, 351306
GlobalTracer [candidate] (349.1 ms) : 0, 349100
AppSec [baseline] (54.496 ms) : 0, 54496
AppSec [candidate] (53.156 ms) : 0, 53156
Debugger [baseline] (4.306 ms) : 0, 4306
Debugger [candidate] (4.314 ms) : 0, 4314
Remote Config [baseline] (704.912 µs) : 0, 705
Remote Config [candidate] (685.78 µs) : 0, 686
Telemetry [baseline] (9.063 ms) : 0, 9063
Telemetry [candidate] (8.999 ms) : 0, 8999
ProfilingAgent [baseline] (103.365 ms) : 0, 103365
ProfilingAgent [candidate] (103.123 ms) : 0, 103123
Profiling [baseline] (103.391 ms) : 0, 103391
Profiling [candidate] (103.15 ms) : 0, 103150
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.48.0-SNAPSHOT~904f3aa084, baseline=1.48.0-SNAPSHOT~089d1cc0cb
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.069 s) : 0, 1069110
Total [baseline] (8.743 s) : 0, 8742673
Agent [candidate] (1.061 s) : 0, 1060616
Total [candidate] (8.674 s) : 0, 8674303
section iast
Agent [baseline] (1.179 s) : 0, 1179234
Total [baseline] (9.265 s) : 0, 9265410
Agent [candidate] (1.189 s) : 0, 1189395
Total [candidate] (9.264 s) : 0, 9264437
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.181 s) : 0, 1180592
Total [baseline] (9.232 s) : 0, 9232346
Agent [candidate] (1.18 s) : 0, 1180217
Total [candidate] (9.224 s) : 0, 9223719
section iast_TELEMETRY_OFF
Agent [baseline] (1.178 s) : 0, 1177692
Total [baseline] (9.248 s) : 0, 9248343
Agent [candidate] (1.184 s) : 0, 1183907
Total [candidate] (9.269 s) : 0, 9268514
gantt
title insecure-bank - break down per module: candidate=1.48.0-SNAPSHOT~904f3aa084, baseline=1.48.0-SNAPSHOT~089d1cc0cb
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (729.56 ms) : 0, 729560
BytebuddyAgent [candidate] (727.135 ms) : 0, 727135
GlobalTracer [baseline] (242.009 ms) : 0, 242009
GlobalTracer [candidate] (240.618 ms) : 0, 240618
AppSec [baseline] (56.56 ms) : 0, 56560
AppSec [candidate] (54.655 ms) : 0, 54655
Debugger [baseline] (4.489 ms) : 0, 4489
Debugger [candidate] (4.436 ms) : 0, 4436
Remote Config [baseline] (701.502 µs) : 0, 702
Remote Config [candidate] (693.978 µs) : 0, 694
Telemetry [baseline] (14.951 ms) : 0, 14951
Telemetry [candidate] (12.353 ms) : 0, 12353
section iast
BytebuddyAgent [baseline] (837.06 ms) : 0, 837060
BytebuddyAgent [candidate] (845.744 ms) : 0, 845744
GlobalTracer [baseline] (229.406 ms) : 0, 229406
GlobalTracer [candidate] (230.739 ms) : 0, 230739
IAST [baseline] (22.73 ms) : 0, 22730
IAST [candidate] (22.831 ms) : 0, 22831
AppSec [baseline] (56.058 ms) : 0, 56058
AppSec [candidate] (55.894 ms) : 0, 55894
Debugger [baseline] (4.129 ms) : 0, 4129
Debugger [candidate] (4.173 ms) : 0, 4173
Remote Config [baseline] (616.529 µs) : 0, 617
Remote Config [candidate] (637.067 µs) : 0, 637
Telemetry [baseline] (8.723 ms) : 0, 8723
Telemetry [candidate] (8.762 ms) : 0, 8762
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (837.332 ms) : 0, 837332
BytebuddyAgent [candidate] (837.613 ms) : 0, 837613
GlobalTracer [baseline] (229.614 ms) : 0, 229614
GlobalTracer [candidate] (229.919 ms) : 0, 229919
IAST [baseline] (23.773 ms) : 0, 23773
IAST [candidate] (22.774 ms) : 0, 22774
AppSec [baseline] (55.8 ms) : 0, 55800
AppSec [candidate] (55.994 ms) : 0, 55994
Debugger [baseline] (4.189 ms) : 0, 4189
Debugger [candidate] (4.156 ms) : 0, 4156
Remote Config [baseline] (615.815 µs) : 0, 616
Remote Config [candidate] (605.63 µs) : 0, 606
Telemetry [baseline] (8.833 ms) : 0, 8833
Telemetry [candidate] (8.804 ms) : 0, 8804
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (835.871 ms) : 0, 835871
BytebuddyAgent [candidate] (841.172 ms) : 0, 841172
GlobalTracer [baseline] (229.352 ms) : 0, 229352
GlobalTracer [candidate] (230.431 ms) : 0, 230431
IAST [baseline] (23.14 ms) : 0, 23140
IAST [candidate] (22.524 ms) : 0, 22524
AppSec [baseline] (55.354 ms) : 0, 55354
AppSec [candidate] (55.999 ms) : 0, 55999
Debugger [baseline] (4.188 ms) : 0, 4188
Debugger [candidate] (4.157 ms) : 0, 4157
Remote Config [baseline] (606.192 µs) : 0, 606
Remote Config [candidate] (594.085 µs) : 0, 594
Telemetry [baseline] (8.735 ms) : 0, 8735
Telemetry [candidate] (8.514 ms) : 0, 8514
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 13 metrics, 17 unstable metrics. Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~904f3aa084, baseline=1.48.0-SNAPSHOT~089d1cc0cb
dateFormat X
axisFormat %s
section baseline
no_agent (385.3 µs) : 365, 406
. : milestone, 385,
iast (506.146 µs) : 484, 528
. : milestone, 506,
iast_FULL (728.189 µs) : 706, 750
. : milestone, 728,
iast_GLOBAL (562.623 µs) : 540, 585
. : milestone, 563,
iast_HARDCODED_SECRET_DISABLED (508.4 µs) : 487, 530
. : milestone, 508,
iast_INACTIVE (465.516 µs) : 443, 488
. : milestone, 466,
iast_TELEMETRY_OFF (499.23 µs) : 477, 521
. : milestone, 499,
tracing (458.655 µs) : 438, 480
. : milestone, 459,
section candidate
no_agent (385.016 µs) : 364, 406
. : milestone, 385,
iast (506.92 µs) : 485, 529
. : milestone, 507,
iast_FULL (729.99 µs) : 708, 752
. : milestone, 730,
iast_GLOBAL (556.82 µs) : 535, 579
. : milestone, 557,
iast_HARDCODED_SECRET_DISABLED (510.078 µs) : 488, 532
. : milestone, 510,
iast_INACTIVE (468.604 µs) : 446, 491
. : milestone, 469,
iast_TELEMETRY_OFF (501.292 µs) : 479, 524
. : milestone, 501,
tracing (461.34 µs) : 440, 482
. : milestone, 461,
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~904f3aa084, baseline=1.48.0-SNAPSHOT~089d1cc0cb
dateFormat X
axisFormat %s
section baseline
no_agent (1.345 ms) : 1325, 1366
. : milestone, 1345,
appsec (1.719 ms) : 1695, 1744
. : milestone, 1719,
appsec_no_iast (1.712 ms) : 1688, 1736
. : milestone, 1712,
code_origins (1.659 ms) : 1632, 1687
. : milestone, 1659,
iast (1.513 ms) : 1489, 1537
. : milestone, 1513,
profiling (1.526 ms) : 1504, 1549
. : milestone, 1526,
tracing (1.477 ms) : 1452, 1502
. : milestone, 1477,
section candidate
no_agent (1.349 ms) : 1329, 1369
. : milestone, 1349,
appsec (1.729 ms) : 1706, 1753
. : milestone, 1729,
appsec_no_iast (1.739 ms) : 1715, 1763
. : milestone, 1739,
code_origins (1.693 ms) : 1666, 1719
. : milestone, 1693,
iast (1.511 ms) : 1487, 1535
. : milestone, 1511,
profiling (1.548 ms) : 1523, 1573
. : milestone, 1548,
tracing (1.507 ms) : 1484, 1531
. : milestone, 1507,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics. Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.48.0-SNAPSHOT~904f3aa084, baseline=1.48.0-SNAPSHOT~089d1cc0cb
dateFormat X
axisFormat %s
section baseline
no_agent (1.484 ms) : 1472, 1496
. : milestone, 1484,
appsec (2.382 ms) : 2336, 2429
. : milestone, 2382,
iast (2.167 ms) : 2108, 2226
. : milestone, 2167,
iast_GLOBAL (2.2 ms) : 2141, 2260
. : milestone, 2200,
profiling (2.003 ms) : 1956, 2049
. : milestone, 2003,
tracing (1.982 ms) : 1936, 2027
. : milestone, 1982,
section candidate
no_agent (1.477 ms) : 1465, 1488
. : milestone, 1477,
appsec (2.374 ms) : 2327, 2420
. : milestone, 2374,
iast (2.155 ms) : 2097, 2214
. : milestone, 2155,
iast_GLOBAL (2.202 ms) : 2143, 2261
. : milestone, 2202,
profiling (1.996 ms) : 1950, 2042
. : milestone, 1996,
tracing (1.985 ms) : 1939, 2030
. : milestone, 1985,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.48.0-SNAPSHOT~904f3aa084, baseline=1.48.0-SNAPSHOT~089d1cc0cb
dateFormat X
axisFormat %s
section baseline
no_agent (14.949 s) : 14949000, 14949000
. : milestone, 14949000,
appsec (14.949 s) : 14949000, 14949000
. : milestone, 14949000,
iast (18.857 s) : 18857000, 18857000
. : milestone, 18857000,
iast_GLOBAL (18.094 s) : 18094000, 18094000
. : milestone, 18094000,
profiling (15.162 s) : 15162000, 15162000
. : milestone, 15162000,
tracing (15.048 s) : 15048000, 15048000
. : milestone, 15048000,
section candidate
no_agent (15.508 s) : 15508000, 15508000
. : milestone, 15508000,
appsec (15.183 s) : 15183000, 15183000
. : milestone, 15183000,
iast (18.593 s) : 18593000, 18593000
. : milestone, 18593000,
iast_GLOBAL (18.241 s) : 18241000, 18241000
. : milestone, 18241000,
profiling (15.588 s) : 15588000, 15588000
. : milestone, 15588000,
tracing (15.066 s) : 15066000, 15066000
. : milestone, 15066000,
|
...-3.1/src/main/java/datadog/trace/instrumentation/springweb/SpringWebHttpServerDecorator.java
Outdated
Show resolved
Hide resolved
...0/src/main/java17/datadog/trace/instrumentation/springweb6/SpringWebHttpServerDecorator.java
Outdated
Show resolved
Hide resolved
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.
LGTM, nice improvement!
...main/java/datadog/trace/instrumentation/springweb/InvocableHandlerMethodInstrumentation.java
Show resolved
Hide resolved
…datadog/trace/instrumentation/springweb/SpringWebHttpServerDecorator.java Co-authored-by: Stuart McCulloch <[email protected]>
…7/datadog/trace/instrumentation/springweb6/SpringWebHttpServerDecorator.java Co-authored-by: Stuart McCulloch <[email protected]>
2de8a73
to
904f3aa
Compare
| Package | Type | Package file | Manager | Update | Change | |---|---|---|---|---|---| | org.flywaydb.flyway | plugin | misk/gradle/libs.versions.toml | gradle | minor | `11.6.0` -> `11.7.0` | | [com.squareup.okio:okio-fakefilesystem](https://github.com/square/okio) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `3.10.2` -> `3.11.0` | | [com.squareup.okio:okio](https://github.com/square/okio) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `3.10.2` -> `3.11.0` | | [com.autonomousapps.dependency-analysis](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin) | plugin | misk/gradle/libs.versions.toml | gradle | minor | `2.15.0` -> `2.16.0` | | [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.47.3` -> `1.48.1` | | [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.47.3` -> `1.48.1` | | [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | --- ### Release Notes <details> <summary>square/okio (com.squareup.okio:okio-fakefilesystem)</summary> ### [`v3.11.0`](https://github.com/square/okio/blob/HEAD/CHANGELOG.md#Version-3110) *2025-04-09* - Fix: Clear the deflater's byte array reference - New: Faster implementation of `String.decodeHex()` on Kotlin/JS. - New: Declare `EXACTLY_ONCE` execution for blocks like `Closeable.use {}` and `FileSystem.read {}`. - Upgrade: \[Kotlin 2.1.20]\[kotlin\_2\_1\_20]. </details> <details> <summary>autonomousapps/dependency-analysis-android-gradle-plugin (com.autonomousapps.dependency-analysis)</summary> ### [`v2.16.0`](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/blob/HEAD/CHANGELOG.md#Version-2160) - \[Feat]: support `com.android.test` projects. - \[Feat]: support typesafe project accessors with opt-in. ```kotlin dependencyAnalysis { useTypesafeProjectAccessors(true) // false by default } ``` </details> <details> <summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary> ### [`v1.48.1`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.48.1): 1.48.1 ### Components #### Tracer internal logging - 🐛 Remove print line causing unnecessary logs ([#​8687](DataDog/dd-trace-java#8687) - [@​sarahchen6](https://github.com/sarahchen6)) ### [`v1.48.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.48.0): 1.48.0 ### Known Bugs > \[!NOTE] > If you are experiencing issues with spamming timeout logs, please update to the [latest version](https://github.com/DataDog/dd-trace-java/releases/latest) or set [JDK_SOCKET_ENABLED](https://github.com/DataDog/dd-trace-java/blob/33fc3c9a9b7cda3beda88b8b3e5224ae2b10764a/dd-trace-api/src/main/java/datadog/trace/api/config/GeneralConfig.java#L98) to false. ### Components #### Application Security Management (IAST) - ✨ Fix vulnerability location org.jose4j.lang.HashUtil ([#​8610](DataDog/dd-trace-java#8610) - [@​jandro996](https://github.com/jandro996)) - ✨ Fix weak randomness in oracle.ucp.util.OpaqueString ([#​8609](DataDog/dd-trace-java#8609) - [@​jandro996](https://github.com/jandro996)) - ✨ Fix weak hash false positive in oracle.security.o5logon.O5Logon ([#​8608](DataDog/dd-trace-java#8608) - [@​jandro996](https://github.com/jandro996)) - 🐛 Prevent before callsites targeting constructors in super calls ([#​8549](DataDog/dd-trace-java#8549) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### Application Security Management (WAF) - ✨ Update login events public SDK to V2 ([#​8620](DataDog/dd-trace-java#8620) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - 🐛 Send RASP LFI capability only when AppSec is statically enabled ([#​8573](DataDog/dd-trace-java#8573) - [@​jandro996](https://github.com/jandro996)) - ✨ Improve detection of missing request end events ([#​8510](DataDog/dd-trace-java#8510) - [@​smola](https://github.com/smola)) - 🧹 Remove remote configuration for API Security sampling rate ([#​8486](DataDog/dd-trace-java#8486) - [@​smola](https://github.com/smola)) - ✨ Add setUser to user monitoring SDK ([#​8482](DataDog/dd-trace-java#8482) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Add missing address for signup event ([#​8469](DataDog/dd-trace-java#8469) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Allow login events SDK to be used with appsec disabled ([#​8464](DataDog/dd-trace-java#8464) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Add support for endpoint discovery in spring mvc ([#​8352](DataDog/dd-trace-java#8352) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ New API Security sampling algorithm ([#​8178](DataDog/dd-trace-java#8178) - [@​ValentinZakharov](https://github.com/ValentinZakharov)) #### Build & Tooling - ✨ Add buffer size customizability to JDK UDS support ([#​8629](DataDog/dd-trace-java#8629) - [@​sarahchen6](https://github.com/sarahchen6)) - ✨ Add JDK built-in support for UDS on Java 16+ ([#​8314](DataDog/dd-trace-java#8314) - [@​sarahchen6](https://github.com/sarahchen6)) #### Configuration at Runtime - 🐛 Send RASP LFI capability only when AppSec is statically enabled ([#​8573](DataDog/dd-trace-java#8573) - [@​jandro996](https://github.com/jandro996)) #### Continuous Integration Visibility - 🐛 Prevent double reporting of Scalatest events when using SBT with test forking ([#​8682](DataDog/dd-trace-java#8682) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Shutdown CI Visibility test event handlers before tracer ([#​8677](DataDog/dd-trace-java#8677) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Do not apply JUnit 4 instrumentation to MUnit runners ([#​8675](DataDog/dd-trace-java#8675), [#​8683](DataDog/dd-trace-java#8683) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Remove error log when source path resolution fails on isModified check ([#​8663](DataDog/dd-trace-java#8663) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Implement tests reordering for JUnit 4 ([#​8650](DataDog/dd-trace-java#8650) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - 🐛 Set default Attempt to Fix retries if none provided from the backend ([#​8615](DataDog/dd-trace-java#8615) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Allow to manually set PR info ([#​8566](DataDog/dd-trace-java#8566) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Fix Test Optimization init when repo root cannot be determined ([#​8533](DataDog/dd-trace-java#8533) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Add capabilities tagging ([#​8499](DataDog/dd-trace-java#8499), [#​8540](DataDog/dd-trace-java#8540) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) #### Crash tracking - 🐛 Remove dependency on bash from crash/oome uploder scripts ([#​8652](DataDog/dd-trace-java#8652) - [@​jbachorik](https://github.com/jbachorik)) #### Data Streams Monitoring - ✨ e2e pipeline configuration when data jobs is enabled ([#​8553](DataDog/dd-trace-java#8553) - [@​kr-igor](https://github.com/kr-igor)) #### Dynamic Instrumentation - 🐛 Fix In-Product when config is empty ([#​8679](DataDog/dd-trace-java#8679) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Add support for filtering shaded third-party libs ([#​8612](DataDog/dd-trace-java#8612) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Add In-Product Enablement ([#​8587](DataDog/dd-trace-java#8587) - [@​jpbempel](https://github.com/jpbempel)) - ✨⚡ Reduce footprint of SourceFile tracking ([#​8524](DataDog/dd-trace-java#8524) - [@​jpbempel](https://github.com/jpbempel)) - ✨⚡ Optimize the SourceFile tracking ([#​8520](DataDog/dd-trace-java#8520) - [@​jpbempel](https://github.com/jpbempel)) #### OpenTracing - 🧹 Remove activeScope() use in OpenTracing shim ([#​8478](DataDog/dd-trace-java#8478) - [@​mcculls](https://github.com/mcculls)) #### Profiling - ✨ Add profiler env check command to AgentCLI ([#​8671](DataDog/dd-trace-java#8671) - [@​jbachorik](https://github.com/jbachorik)) - ✨ Bump ddprof to 1.23.0 ([#​8668](DataDog/dd-trace-java#8668) - [@​jbachorik](https://github.com/jbachorik)) - Fix a crash related to ElfParser::loadSymbolTable ([#​191](DataDog/dd-trace-java#191)) by [@​yanglong1010](https://github.com/yanglong1010) in DataDog/java-profiler#192 - Unwind String.indexOf intrinsic on AArch64 by [@​MattAlp](https://github.com/MattAlp) in DataDog/java-profiler#193 - Fix Java 24 support by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#194 - A set of fixes related to clang, aarch64 and musl pecularities of vmstructs stack unwinder by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#199 - 🐛 Remove process information from JFR recording ([#​8661](DataDog/dd-trace-java#8661) - [@​r1viollet](https://github.com/r1viollet)) - 🐛 Make TempLocationManager USER aware ([#​8605](DataDog/dd-trace-java#8605) - [@​jbachorik](https://github.com/jbachorik)) - ✨ Extract git tags from embedded git.properties and datadog_git.properties ([#​8561](DataDog/dd-trace-java#8561) - [@​wmouchere](https://github.com/wmouchere)) #### Telemetry - 🐛 Fix appsec.rasp.error and appsec.waf.error telemetry metrics ([#​8624](DataDog/dd-trace-java#8624) - [@​jandro996](https://github.com/jandro996)) - ✨ Create metric: appsec.rasp.rule.skipped ([#​8618](DataDog/dd-trace-java#8618) - [@​jandro996](https://github.com/jandro996)) - ✨ Extract git tags from embedded git.properties and datadog_git.properties ([#​8561](DataDog/dd-trace-java#8561) - [@​wmouchere](https://github.com/wmouchere)) #### Testing - 🧹 Simplify ssi tests one-pipeline ([#​8558](DataDog/dd-trace-java#8558) - [@​robertomonteromiguel](https://github.com/robertomonteromiguel)) - ✨ Add smoke tests for java's concurrent API ([#​8438](DataDog/dd-trace-java#8438) - [@​sarahchen6](https://github.com/sarahchen6)) #### Trace context propagation - ✨ Adding Support for `TRACE_PROPAGATION_BEHAVIOR_EXTRACT` ([#​8535](DataDog/dd-trace-java#8535) - [@​mhlidd](https://github.com/mhlidd)) #### Tracer core - 🐛 Ensure shaded helpers have unique names ([#​8559](DataDog/dd-trace-java#8559) - [@​amarziali](https://github.com/amarziali)) - ✨ Support common config sources for user-provided git info ([#​8547](DataDog/dd-trace-java#8547) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Make the default config sources more robust when a security manager is installed ([#​8544](DataDog/dd-trace-java#8544) - [@​mcculls](https://github.com/mcculls)) - ✨ Support targeting services with configurations in stable configuration file ([#​8526](DataDog/dd-trace-java#8526) - [@​mtoffl01](https://github.com/mtoffl01)) - ✨ Add new parser for `DD_TAGS` and prioritizing `DD_SERVICE` ([#​8296](DataDog/dd-trace-java#8296) - [@​mhlidd](https://github.com/mhlidd)) #### Tracer internal logging - 🐛 Add missing debug log for the cloudPayloadTaggingServices config ([#​8600](DataDog/dd-trace-java#8600) - [@​ygree](https://github.com/ygree)) - ✨ Add the possibility to output the logs of the Java tracer in JSON ([#​8083](DataDog/dd-trace-java#8083) - [@​cecile75](https://github.com/cecile75)) #### Tracer public API - ✨ Introducing `DD_TRACE_EXPERIMENTAL_FEATURES_ENABLED` Config ([#​8536](DataDog/dd-trace-java#8536) - [@​mhlidd](https://github.com/mhlidd)) - ✨ Config Consistency Round 2 ([#​8489](DataDog/dd-trace-java#8489) - [@​mhlidd](https://github.com/mhlidd)) ### Instrumentations #### - 🐛 Fix NPE in getMdcCopy of LoggingEventInstrumentation ([#​8599](DataDog/dd-trace-java#8599) - [@​ygree](https://github.com/ygree)) #### Apache Spark instrumentation - ✨ Instrument Runtime.exit() to finish spark application spans ([#​8572](DataDog/dd-trace-java#8572) - [@​paul-laffon-dd](https://github.com/paul-laffon-dd)) - ✨ Configure OpenLineage if present in Spark instrumentation ([#​8541](DataDog/dd-trace-java#8541) - [@​mobuchowski](https://github.com/mobuchowski)) #### Armeria Instrumentation - ✨ Support armeria grpc 1.32.3 ([#​8606](DataDog/dd-trace-java#8606) - [@​github-actions](https://github.com/github-actions)\[bot]) #### AWS DynamoDB Instrumentation - ✨ Create DynamoDB instrumentation + add span pointers for `updateItem` and `deleteItem` ([#​8490](DataDog/dd-trace-java#8490) - [@​nhulston](https://github.com/nhulston)) #### AWS SDK instrumentation - ✨ Add DynamoDB in DEFAULT_TRACE_CLOUD_PAYLOAD_TAGGING_SERVICES ([#​8595](DataDog/dd-trace-java#8595) - [@​joeyzhao2018](https://github.com/joeyzhao2018)) #### Azure Functions instrumentation - ✨ Enable tracer computed trace metrics by default for Azure Functions ([#​8518](DataDog/dd-trace-java#8518) - [@​duncanpharvey](https://github.com/duncanpharvey)) - 💡 Add azure-functions instrumentation ([#​8432](DataDog/dd-trace-java#8432) - [@​duncanpharvey](https://github.com/duncanpharvey)) #### Core Java language instrumentation - 🐛 Fix ForkJoinPool.execute() instrumentation on Java 21+ ([#​8560](DataDog/dd-trace-java#8560) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) #### Eclipse Vert.x instrumentation - ✨ Add vertx postgresql client instrumentation ([#​8471](DataDog/dd-trace-java#8471) - [@​vandonr](https://github.com/vandonr) - thanks for the contribution!) #### Kafka instrumentation - ✨ Support and test kafka-clients 4 ([#​8581](DataDog/dd-trace-java#8581) - [@​amarziali](https://github.com/amarziali)) #### Kotlin instrumentation - ✨ Avoid disconnected traces when using Kotlin flowOn ([#​8651](DataDog/dd-trace-java#8651) - [@​mcculls](https://github.com/mcculls)) #### OpenTelemetry instrumentation - 🧹 Migrate OtelContext wrapper to new internal Context API ([#​8645](DataDog/dd-trace-java#8645) - [@​mcculls](https://github.com/mcculls)) #### Spring instrumentation - 🐛 Support CompletableFuture on spring webmvc controllers ([#​8659](DataDog/dd-trace-java#8659) - [@​amarziali](https://github.com/amarziali)) - ✨ Add support for endpoint discovery in spring mvc ([#​8352](DataDog/dd-trace-java#8352) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### WebSocket Instrumentation - ✨ Instrument Jetty websocket pojo ([#​8562](DataDog/dd-trace-java#8562) - [@​amarziali](https://github.com/amarziali)) - 💡 Instrument Java Websocket API (JSR356) ([#​8440](DataDog/dd-trace-java#8440) - [@​amarziali](https://github.com/amarziali)) #### All other instrumentations - ✨ Introduce cache for peer.hostname lookup ([#​8601](DataDog/dd-trace-java#8601) - [@​mcculls](https://github.com/mcculls)) - ✨ Support pekko http 1.1 ([#​8532](DataDog/dd-trace-java#8532) - [@​amarziali](https://github.com/amarziali)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am every weekday" in timezone Australia/Melbourne, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). GitOrigin-RevId: 331314f71acaced3adc75ea5d7e855c248d593fc
What Does This Do
This PR allows tracking the right span duration when
CompletableFuture
are returned on spring controllers.In fact, we were just finishing the span right after the controller calls returned instead of waiting that the future completed.
It also avoids async controllers to be traced twice since the advices was kicking in the first time when the handler was called and the second time when the future is resolved. (see the linked issue below in which we can see that the controller span twice).
Note: this PR will then change the duration of impacted controller span hence also their metrics. However, those spans are not entry point hence service RED metrics will not be impacted.
Now the duration looks more realistic.
Given that code:
Before was producing that trace with wrong duration and double logged span:

Now it produces:
Motivation
Additional Notes
Solves #7825
Contributor Checklist
type:
and (comp:
orinst:
) labels in addition to any usefull labelsclose
,fix
or any linking keywords when referencing an issue.Use
solves
instead, and assign the PR milestone to the issueJira ticket: [PROJ-IDENT]