Skip to content

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

Merged
merged 4 commits into from
Apr 2, 2025

Conversation

amarziali
Copy link
Collaborator

@amarziali amarziali commented Apr 2, 2025

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:

@RestController
public class TestController {
  @GetMapping
  public CompletableFuture<String> test() {
    return CompletableFuture.supplyAsync(() -> {
        try {
            Thread.sleep(new Random().nextInt(3000));
        } catch (InterruptedException e) {
            Thread.currentThread().interrupt();
        }
        return "Hello World";
    });
  }
}

Before was producing that trace with wrong duration and double logged span:
image

Now it produces:

image

Motivation

Additional Notes

Solves #7825

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@amarziali amarziali requested review from a team as code owners April 2, 2025 06:05
Copy link
Contributor

github-actions bot commented Apr 2, 2025

Hi! 👋 Thanks for your pull request! 🎉

To help us review it, please make sure to:

  • Add at least one type, and one component or instrumentation label to the pull request

If you need help, please check our contributing guidelines.

@amarziali amarziali added type: bug inst: spring Spring instrumentation labels Apr 2, 2025
@pr-commenter
Copy link

pr-commenter bot commented Apr 2, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master andrea.marziali/spring-completablefuture
git_commit_date 1743601182 1743605042
git_commit_sha 089d1cc 904f3aa
release_version 1.48.0-SNAPSHOT~089d1cc0cb 1.48.0-SNAPSHOT~904f3aa084
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1743608166 1743608166
ci_job_id 877304716 877304716
ci_pipeline_id 60813296 60813296
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-pjtrxvqe-project-304-concurrent-0-5olgx8a5 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-pjtrxvqe-project-304-concurrent-0-5olgx8a5 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None
variant iast iast

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 65 metrics, 6 unstable metrics.

Startup time reports for petclinic
gantt
    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
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.053 s -
Agent appsec 1.194 s 141.343 ms (13.4%)
Agent iast 1.179 s 126.15 ms (12.0%)
Agent profiling 1.285 s 232.151 ms (22.0%)
Total tracing 10.547 s -
Total appsec 10.741 s 194.552 ms (1.8%)
Total iast 11.014 s 467.363 ms (4.4%)
Total profiling 10.884 s 337.721 ms (3.2%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.056 s -
Agent appsec 1.197 s 141.775 ms (13.4%)
Agent iast 1.179 s 123.695 ms (11.7%)
Agent profiling 1.277 s 220.861 ms (20.9%)
Total tracing 10.48 s -
Total appsec 10.748 s 268.729 ms (2.6%)
Total iast 11.058 s 577.847 ms (5.5%)
Total profiling 10.872 s 392.62 ms (3.7%)
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
Loading
Startup time reports for insecure-bank
gantt
    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
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.069 s -
Agent iast 1.179 s 110.124 ms (10.3%)
Agent iast_HARDCODED_SECRET_DISABLED 1.181 s 111.482 ms (10.4%)
Agent iast_TELEMETRY_OFF 1.178 s 108.582 ms (10.2%)
Total tracing 8.743 s -
Total iast 9.265 s 522.736 ms (6.0%)
Total iast_HARDCODED_SECRET_DISABLED 9.232 s 489.672 ms (5.6%)
Total iast_TELEMETRY_OFF 9.248 s 505.67 ms (5.8%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.061 s -
Agent iast 1.189 s 128.779 ms (12.1%)
Agent iast_HARDCODED_SECRET_DISABLED 1.18 s 119.6 ms (11.3%)
Agent iast_TELEMETRY_OFF 1.184 s 123.29 ms (11.6%)
Total tracing 8.674 s -
Total iast 9.264 s 590.134 ms (6.8%)
Total iast_HARDCODED_SECRET_DISABLED 9.224 s 549.416 ms (6.3%)
Total iast_TELEMETRY_OFF 9.269 s 594.211 ms (6.9%)
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
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-04-02T15:06:21 2025-04-02T15:14:03
git_branch master andrea.marziali/spring-completablefuture
git_commit_date 1743601182 1743605042
git_commit_sha 089d1cc 904f3aa
release_version 1.48.0-SNAPSHOT~089d1cc0cb 1.48.0-SNAPSHOT~904f3aa084
start_time 2025-04-02T15:06:08 2025-04-02T15:13:50
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1743607242 1743607242
ci_job_id 877304717 877304717
ci_pipeline_id 60813296 60813296
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-pjtrxvqe-project-304-concurrent-1-dvk9wovm 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-pjtrxvqe-project-304-concurrent-1-dvk9wovm 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
variant iast iast

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 13 metrics, 17 unstable metrics.

Request duration reports for insecure-bank
gantt
    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,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 385.3 µs [364.845 µs, 405.754 µs] -
iast 506.146 µs [484.371 µs, 527.921 µs] 120.846 µs (31.4%)
iast_FULL 728.189 µs [706.224 µs, 750.154 µs] 342.889 µs (89.0%)
iast_GLOBAL 562.623 µs [539.825 µs, 585.421 µs] 177.323 µs (46.0%)
iast_HARDCODED_SECRET_DISABLED 508.4 µs [486.521 µs, 530.279 µs] 123.1 µs (31.9%)
iast_INACTIVE 465.516 µs [443.021 µs, 488.012 µs] 80.217 µs (20.8%)
iast_TELEMETRY_OFF 499.23 µs [477.357 µs, 521.102 µs] 113.93 µs (29.6%)
tracing 458.655 µs [437.757 µs, 479.553 µs] 73.355 µs (19.0%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 385.016 µs [364.318 µs, 405.713 µs] -
iast 506.92 µs [485.317 µs, 528.522 µs] 121.904 µs (31.7%)
iast_FULL 729.99 µs [707.828 µs, 752.151 µs] 344.974 µs (89.6%)
iast_GLOBAL 556.82 µs [534.738 µs, 578.901 µs] 171.804 µs (44.6%)
iast_HARDCODED_SECRET_DISABLED 510.078 µs [488.496 µs, 531.659 µs] 125.062 µs (32.5%)
iast_INACTIVE 468.604 µs [445.9 µs, 491.309 µs] 83.589 µs (21.7%)
iast_TELEMETRY_OFF 501.292 µs [478.974 µs, 523.61 µs] 116.277 µs (30.2%)
tracing 461.34 µs [440.224 µs, 482.455 µs] 76.324 µs (19.8%)
Request duration reports for petclinic
gantt
    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,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.345 ms [1.325 ms, 1.366 ms] -
appsec 1.719 ms [1.695 ms, 1.744 ms] 374.032 µs (27.8%)
appsec_no_iast 1.712 ms [1.688 ms, 1.736 ms] 366.811 µs (27.3%)
code_origins 1.659 ms [1.632 ms, 1.687 ms] 314.096 µs (23.3%)
iast 1.513 ms [1.489 ms, 1.537 ms] 167.673 µs (12.5%)
profiling 1.526 ms [1.504 ms, 1.549 ms] 181.066 µs (13.5%)
tracing 1.477 ms [1.452 ms, 1.502 ms] 131.931 µs (9.8%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.349 ms [1.329 ms, 1.369 ms] -
appsec 1.729 ms [1.706 ms, 1.753 ms] 380.476 µs (28.2%)
appsec_no_iast 1.739 ms [1.715 ms, 1.763 ms] 390.16 µs (28.9%)
code_origins 1.693 ms [1.666 ms, 1.719 ms] 343.895 µs (25.5%)
iast 1.511 ms [1.487 ms, 1.535 ms] 161.883 µs (12.0%)
profiling 1.548 ms [1.523 ms, 1.573 ms] 199.346 µs (14.8%)
tracing 1.507 ms [1.484 ms, 1.531 ms] 158.614 µs (11.8%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master andrea.marziali/spring-completablefuture
git_commit_date 1743601182 1743605042
git_commit_sha 089d1cc 904f3aa
release_version 1.48.0-SNAPSHOT~089d1cc0cb 1.48.0-SNAPSHOT~904f3aa084
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1743607702 1743607702
ci_job_id 877304718 877304718
ci_pipeline_id 60813296 60813296
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-pjtrxvqe-project-304-concurrent-2-l49owprl 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-pjtrxvqe-project-304-concurrent-2-l49owprl 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
variant appsec appsec

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics.

Execution time for tomcat
gantt
    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,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.484 ms [1.472 ms, 1.496 ms] -
appsec 2.382 ms [2.336 ms, 2.429 ms] 898.382 µs (60.5%)
iast 2.167 ms [2.108 ms, 2.226 ms] 683.139 µs (46.0%)
iast_GLOBAL 2.2 ms [2.141 ms, 2.26 ms] 716.476 µs (48.3%)
profiling 2.003 ms [1.956 ms, 2.049 ms] 518.871 µs (35.0%)
tracing 1.982 ms [1.936 ms, 2.027 ms] 497.803 µs (33.5%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.477 ms [1.465 ms, 1.488 ms] -
appsec 2.374 ms [2.327 ms, 2.42 ms] 897.079 µs (60.8%)
iast 2.155 ms [2.097 ms, 2.214 ms] 678.622 µs (46.0%)
iast_GLOBAL 2.202 ms [2.143 ms, 2.261 ms] 725.682 µs (49.1%)
profiling 1.996 ms [1.95 ms, 2.042 ms] 519.242 µs (35.2%)
tracing 1.985 ms [1.939 ms, 2.03 ms] 508.227 µs (34.4%)
Execution time for biojava
gantt
    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,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.949 s [14.949 s, 14.949 s] -
appsec 14.949 s [14.949 s, 14.949 s] 0.0 µs (0.0%)
iast 18.857 s [18.857 s, 18.857 s] 3.908 s (26.1%)
iast_GLOBAL 18.094 s [18.094 s, 18.094 s] 3.145 s (21.0%)
profiling 15.162 s [15.162 s, 15.162 s] 213.0 ms (1.4%)
tracing 15.048 s [15.048 s, 15.048 s] 99.0 ms (0.7%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.508 s [15.508 s, 15.508 s] -
appsec 15.183 s [15.183 s, 15.183 s] -325.0 ms (-2.1%)
iast 18.593 s [18.593 s, 18.593 s] 3.085 s (19.9%)
iast_GLOBAL 18.241 s [18.241 s, 18.241 s] 2.733 s (17.6%)
profiling 15.588 s [15.588 s, 15.588 s] 80.0 ms (0.5%)
tracing 15.066 s [15.066 s, 15.066 s] -442.0 ms (-2.9%)

@amarziali amarziali requested a review from mcculls April 2, 2025 07:19
Copy link
Contributor

@mcculls mcculls left a comment

Choose a reason for hiding this comment

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

LGTM, nice improvement!

@amarziali amarziali enabled auto-merge (squash) April 2, 2025 09:30
amarziali and others added 4 commits April 2, 2025 16:34
…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]>
@amarziali amarziali force-pushed the andrea.marziali/spring-completablefuture branch from 2de8a73 to 904f3aa Compare April 2, 2025 14:44
@amarziali amarziali merged commit 09b7c65 into master Apr 2, 2025
250 of 252 checks passed
@amarziali amarziali deleted the andrea.marziali/spring-completablefuture branch April 2, 2025 16:14
@github-actions github-actions bot added this to the 1.48.0 milestone Apr 2, 2025
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Apr 11, 2025
| 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
([#&#8203;8687](DataDog/dd-trace-java#8687) -
[@&#8203;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
([#&#8203;8610](DataDog/dd-trace-java#8610) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Fix weak randomness in oracle.ucp.util.OpaqueString
([#&#8203;8609](DataDog/dd-trace-java#8609) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Fix weak hash false positive in
oracle.security.o5logon.O5Logon
([#&#8203;8608](DataDog/dd-trace-java#8608) -
[@&#8203;jandro996](https://github.com/jandro996))
- 🐛 Prevent before callsites targeting constructors in super calls
([#&#8203;8549](DataDog/dd-trace-java#8549) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))

#### Application Security Management (WAF)

- ✨ Update login events public SDK to V2
([#&#8203;8620](DataDog/dd-trace-java#8620) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- 🐛 Send RASP LFI capability only when AppSec is statically enabled
([#&#8203;8573](DataDog/dd-trace-java#8573) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Improve detection of missing request end events
([#&#8203;8510](DataDog/dd-trace-java#8510) -
[@&#8203;smola](https://github.com/smola))
- 🧹 Remove remote configuration for API Security sampling rate
([#&#8203;8486](DataDog/dd-trace-java#8486) -
[@&#8203;smola](https://github.com/smola))
- ✨ Add setUser to user monitoring SDK
([#&#8203;8482](DataDog/dd-trace-java#8482) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Add missing address for signup event
([#&#8203;8469](DataDog/dd-trace-java#8469) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Allow login events SDK to be used with appsec disabled
([#&#8203;8464](DataDog/dd-trace-java#8464) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Add support for endpoint discovery in spring mvc
([#&#8203;8352](DataDog/dd-trace-java#8352) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ New API Security sampling algorithm
([#&#8203;8178](DataDog/dd-trace-java#8178) -
[@&#8203;ValentinZakharov](https://github.com/ValentinZakharov))

#### Build & Tooling

- ✨ Add buffer size customizability to JDK UDS support
([#&#8203;8629](DataDog/dd-trace-java#8629) -
[@&#8203;sarahchen6](https://github.com/sarahchen6))
- ✨ Add JDK built-in support for UDS on Java 16+
([#&#8203;8314](DataDog/dd-trace-java#8314) -
[@&#8203;sarahchen6](https://github.com/sarahchen6))

#### Configuration at Runtime

- 🐛 Send RASP LFI capability only when AppSec is statically enabled
([#&#8203;8573](DataDog/dd-trace-java#8573) -
[@&#8203;jandro996](https://github.com/jandro996))

#### Continuous Integration Visibility

- 🐛 Prevent double reporting of Scalatest events when using SBT with
test forking
([#&#8203;8682](DataDog/dd-trace-java#8682) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Shutdown CI Visibility test event handlers before tracer
([#&#8203;8677](DataDog/dd-trace-java#8677) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Do not apply JUnit 4 instrumentation to MUnit runners
([#&#8203;8675](DataDog/dd-trace-java#8675),
[#&#8203;8683](DataDog/dd-trace-java#8683) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Remove error log when source path resolution fails on
isModified check
([#&#8203;8663](DataDog/dd-trace-java#8663) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Implement tests reordering for JUnit 4
([#&#8203;8650](DataDog/dd-trace-java#8650) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- 🐛 Set default Attempt to Fix retries if none provided from the
backend
([#&#8203;8615](DataDog/dd-trace-java#8615) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Allow to manually set PR info
([#&#8203;8566](DataDog/dd-trace-java#8566) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Fix Test Optimization init when repo root cannot be determined
([#&#8203;8533](DataDog/dd-trace-java#8533) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Add capabilities tagging
([#&#8203;8499](DataDog/dd-trace-java#8499),
[#&#8203;8540](DataDog/dd-trace-java#8540) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))

#### Crash tracking

- 🐛 Remove dependency on bash from crash/oome uploder scripts
([#&#8203;8652](DataDog/dd-trace-java#8652) -
[@&#8203;jbachorik](https://github.com/jbachorik))

#### Data Streams Monitoring

- ✨ e2e pipeline configuration when data jobs is enabled
([#&#8203;8553](DataDog/dd-trace-java#8553) -
[@&#8203;kr-igor](https://github.com/kr-igor))

#### Dynamic Instrumentation

- 🐛 Fix In-Product when config is empty
([#&#8203;8679](DataDog/dd-trace-java#8679) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Add support for filtering shaded third-party libs
([#&#8203;8612](DataDog/dd-trace-java#8612) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Add In-Product Enablement
([#&#8203;8587](DataDog/dd-trace-java#8587) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨⚡ Reduce footprint of SourceFile tracking
([#&#8203;8524](DataDog/dd-trace-java#8524) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨⚡ Optimize the SourceFile tracking
([#&#8203;8520](DataDog/dd-trace-java#8520) -
[@&#8203;jpbempel](https://github.com/jpbempel))

#### OpenTracing

- 🧹 Remove activeScope() use in OpenTracing shim
([#&#8203;8478](DataDog/dd-trace-java#8478) -
[@&#8203;mcculls](https://github.com/mcculls))

#### Profiling

- ✨ Add profiler env check command to AgentCLI
([#&#8203;8671](DataDog/dd-trace-java#8671) -
[@&#8203;jbachorik](https://github.com/jbachorik))

- ✨ Bump ddprof to 1.23.0
([#&#8203;8668](DataDog/dd-trace-java#8668) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- Fix a crash related to ElfParser::loadSymbolTable
([#&#8203;191](DataDog/dd-trace-java#191)) by
[@&#8203;yanglong1010](https://github.com/yanglong1010) in
DataDog/java-profiler#192
- Unwind String.indexOf intrinsic on AArch64 by
[@&#8203;MattAlp](https://github.com/MattAlp) in
DataDog/java-profiler#193
- Fix Java 24 support by
[@&#8203;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
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#199

- 🐛 Remove process information from JFR recording
([#&#8203;8661](DataDog/dd-trace-java#8661) -
[@&#8203;r1viollet](https://github.com/r1viollet))

- 🐛 Make TempLocationManager USER aware
([#&#8203;8605](DataDog/dd-trace-java#8605) -
[@&#8203;jbachorik](https://github.com/jbachorik))

- ✨ Extract git tags from embedded git.properties and
datadog_git.properties
([#&#8203;8561](DataDog/dd-trace-java#8561) -
[@&#8203;wmouchere](https://github.com/wmouchere))

#### Telemetry

- 🐛 Fix appsec.rasp.error and appsec.waf.error telemetry metrics
([#&#8203;8624](DataDog/dd-trace-java#8624) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Create metric: appsec.rasp.rule.skipped
([#&#8203;8618](DataDog/dd-trace-java#8618) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Extract git tags from embedded git.properties and
datadog_git.properties
([#&#8203;8561](DataDog/dd-trace-java#8561) -
[@&#8203;wmouchere](https://github.com/wmouchere))

#### Testing

- 🧹 Simplify ssi tests one-pipeline
([#&#8203;8558](DataDog/dd-trace-java#8558) -
[@&#8203;robertomonteromiguel](https://github.com/robertomonteromiguel))
- ✨ Add smoke tests for java's concurrent API
([#&#8203;8438](DataDog/dd-trace-java#8438) -
[@&#8203;sarahchen6](https://github.com/sarahchen6))

#### Trace context propagation

- ✨ Adding Support for `TRACE_PROPAGATION_BEHAVIOR_EXTRACT`
([#&#8203;8535](DataDog/dd-trace-java#8535) -
[@&#8203;mhlidd](https://github.com/mhlidd))

#### Tracer core

- 🐛 Ensure shaded helpers have unique names
([#&#8203;8559](DataDog/dd-trace-java#8559) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Support common config sources for user-provided git info
([#&#8203;8547](DataDog/dd-trace-java#8547) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Make the default config sources more robust when a security
manager is installed
([#&#8203;8544](DataDog/dd-trace-java#8544) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Support targeting services with configurations in stable
configuration file
([#&#8203;8526](DataDog/dd-trace-java#8526) -
[@&#8203;mtoffl01](https://github.com/mtoffl01))
- ✨ Add new parser for `DD_TAGS` and prioritizing `DD_SERVICE`
([#&#8203;8296](DataDog/dd-trace-java#8296) -
[@&#8203;mhlidd](https://github.com/mhlidd))

#### Tracer internal logging

- 🐛 Add missing debug log for the cloudPayloadTaggingServices config
([#&#8203;8600](DataDog/dd-trace-java#8600) -
[@&#8203;ygree](https://github.com/ygree))
- ✨ Add the possibility to output the logs of the Java tracer
in JSON
([#&#8203;8083](DataDog/dd-trace-java#8083) -
[@&#8203;cecile75](https://github.com/cecile75))

#### Tracer public API

- ✨ Introducing `DD_TRACE_EXPERIMENTAL_FEATURES_ENABLED` Config
([#&#8203;8536](DataDog/dd-trace-java#8536) -
[@&#8203;mhlidd](https://github.com/mhlidd))
- ✨ Config Consistency Round 2
([#&#8203;8489](DataDog/dd-trace-java#8489) -
[@&#8203;mhlidd](https://github.com/mhlidd))

### Instrumentations

####

- 🐛 Fix NPE in getMdcCopy of LoggingEventInstrumentation
([#&#8203;8599](DataDog/dd-trace-java#8599) -
[@&#8203;ygree](https://github.com/ygree))

#### Apache Spark instrumentation

- ✨ Instrument Runtime.exit() to finish spark application spans
([#&#8203;8572](DataDog/dd-trace-java#8572) -
[@&#8203;paul-laffon-dd](https://github.com/paul-laffon-dd))
- ✨ Configure OpenLineage if present in Spark instrumentation
([#&#8203;8541](DataDog/dd-trace-java#8541) -
[@&#8203;mobuchowski](https://github.com/mobuchowski))

#### Armeria Instrumentation

- ✨ Support armeria grpc 1.32.3
([#&#8203;8606](DataDog/dd-trace-java#8606) -
[@&#8203;github-actions](https://github.com/github-actions)\[bot])

#### AWS DynamoDB Instrumentation

- ✨ Create DynamoDB instrumentation + add span pointers for
`updateItem` and `deleteItem`
([#&#8203;8490](DataDog/dd-trace-java#8490) -
[@&#8203;nhulston](https://github.com/nhulston))

#### AWS SDK instrumentation

- ✨ Add DynamoDB in
DEFAULT_TRACE_CLOUD_PAYLOAD_TAGGING_SERVICES
([#&#8203;8595](DataDog/dd-trace-java#8595) -
[@&#8203;joeyzhao2018](https://github.com/joeyzhao2018))

#### Azure Functions instrumentation

- ✨ Enable tracer computed trace metrics by default for Azure
Functions
([#&#8203;8518](DataDog/dd-trace-java#8518) -
[@&#8203;duncanpharvey](https://github.com/duncanpharvey))
- 💡 Add azure-functions instrumentation
([#&#8203;8432](DataDog/dd-trace-java#8432) -
[@&#8203;duncanpharvey](https://github.com/duncanpharvey))

#### Core Java language instrumentation

- 🐛 Fix ForkJoinPool.execute() instrumentation on Java 21+
([#&#8203;8560](DataDog/dd-trace-java#8560) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

#### Eclipse Vert.x instrumentation

- ✨ Add vertx postgresql client instrumentation
([#&#8203;8471](DataDog/dd-trace-java#8471) -
[@&#8203;vandonr](https://github.com/vandonr) - thanks for the
contribution!)

#### Kafka instrumentation

- ✨ Support and test kafka-clients 4
([#&#8203;8581](DataDog/dd-trace-java#8581) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Kotlin instrumentation

- ✨ Avoid disconnected traces when using Kotlin flowOn
([#&#8203;8651](DataDog/dd-trace-java#8651) -
[@&#8203;mcculls](https://github.com/mcculls))

#### OpenTelemetry instrumentation

- 🧹 Migrate OtelContext wrapper to new internal Context API
([#&#8203;8645](DataDog/dd-trace-java#8645) -
[@&#8203;mcculls](https://github.com/mcculls))

#### Spring instrumentation

- 🐛 Support CompletableFuture on spring webmvc controllers
([#&#8203;8659](DataDog/dd-trace-java#8659) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Add support for endpoint discovery in spring mvc
([#&#8203;8352](DataDog/dd-trace-java#8352) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))

#### WebSocket Instrumentation

- ✨ Instrument Jetty websocket pojo
([#&#8203;8562](DataDog/dd-trace-java#8562) -
[@&#8203;amarziali](https://github.com/amarziali))
- 💡 Instrument Java Websocket API (JSR356)
([#&#8203;8440](DataDog/dd-trace-java#8440) -
[@&#8203;amarziali](https://github.com/amarziali))

#### All other instrumentations

- ✨ Introduce cache for peer.hostname lookup
([#&#8203;8601](DataDog/dd-trace-java#8601) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Support pekko http 1.1
([#&#8203;8532](DataDog/dd-trace-java#8532) -
[@&#8203;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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
inst: spring Spring instrumentation type: bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants