Skip to content

Implement tests reordering for JUnit 4 #8650

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 14 commits into from
Apr 4, 2025

Conversation

daniel-mohedano
Copy link
Contributor

@daniel-mohedano daniel-mohedano commented Apr 1, 2025

What Does This Do

  • Implements fail fast tests ordering for JUnit 4 framework
  • As JUnit 4 doesn't have a test suite ordering mechanism, this is done in the maven-surefire plugin and the Gradle test running logic, theoretically allowing other frameworks that use the mechanism to benefit from the feature

Contributor Checklist

Jira ticket: SDTEST-1780

@pr-commenter
Copy link

pr-commenter bot commented Apr 1, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master daniel.mohedano/junit4-test-reordering
git_commit_date 1743705303 1743760278
git_commit_sha 8adba3f df417bd
release_version 1.48.0-SNAPSHOT~8adba3f8b4 1.48.0-SNAPSHOT~df417bd2cd
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1743763260 1743763260
ci_job_id 881083357 881083357
ci_pipeline_id 61079116 61079116
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-gtma1pc4-project-304-concurrent-6-kzvgqarv 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-gtma1pc4-project-304-concurrent-6-kzvgqarv 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 66 metrics, 5 unstable metrics.

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.48.0-SNAPSHOT~df417bd2cd, baseline=1.48.0-SNAPSHOT~8adba3f8b4

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.055 s) : 0, 1055409
Total [baseline] (8.686 s) : 0, 8686446
Agent [candidate] (1.066 s) : 0, 1065865
Total [candidate] (8.712 s) : 0, 8712375
section iast
Agent [baseline] (1.179 s) : 0, 1178571
Total [baseline] (9.241 s) : 0, 9241198
Agent [candidate] (1.19 s) : 0, 1190364
Total [candidate] (9.296 s) : 0, 9296486
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.182 s) : 0, 1181755
Total [baseline] (9.244 s) : 0, 9244199
Agent [candidate] (1.181 s) : 0, 1181182
Total [candidate] (9.214 s) : 0, 9213875
section iast_TELEMETRY_OFF
Agent [baseline] (1.184 s) : 0, 1184301
Total [baseline] (9.284 s) : 0, 9284035
Agent [candidate] (1.176 s) : 0, 1175914
Total [candidate] (9.247 s) : 0, 9246843
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.055 s -
Agent iast 1.179 s 123.162 ms (11.7%)
Agent iast_HARDCODED_SECRET_DISABLED 1.182 s 126.346 ms (12.0%)
Agent iast_TELEMETRY_OFF 1.184 s 128.892 ms (12.2%)
Total tracing 8.686 s -
Total iast 9.241 s 554.752 ms (6.4%)
Total iast_HARDCODED_SECRET_DISABLED 9.244 s 557.753 ms (6.4%)
Total iast_TELEMETRY_OFF 9.284 s 597.589 ms (6.9%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.066 s -
Agent iast 1.19 s 124.499 ms (11.7%)
Agent iast_HARDCODED_SECRET_DISABLED 1.181 s 115.317 ms (10.8%)
Agent iast_TELEMETRY_OFF 1.176 s 110.049 ms (10.3%)
Total tracing 8.712 s -
Total iast 9.296 s 584.112 ms (6.7%)
Total iast_HARDCODED_SECRET_DISABLED 9.214 s 501.5 ms (5.8%)
Total iast_TELEMETRY_OFF 9.247 s 534.469 ms (6.1%)
gantt
    title insecure-bank - break down per module: candidate=1.48.0-SNAPSHOT~df417bd2cd, baseline=1.48.0-SNAPSHOT~8adba3f8b4

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (720.14 ms) : 0, 720140
BytebuddyAgent [candidate] (729.919 ms) : 0, 729919
GlobalTracer [baseline] (239.724 ms) : 0, 239724
GlobalTracer [candidate] (242.427 ms) : 0, 242427
AppSec [baseline] (54.552 ms) : 0, 54552
AppSec [candidate] (56.702 ms) : 0, 56702
Debugger [baseline] (4.409 ms) : 0, 4409
Debugger [candidate] (4.472 ms) : 0, 4472
Remote Config [baseline] (692.452 µs) : 0, 692
Remote Config [candidate] (705.499 µs) : 0, 705
Telemetry [baseline] (15.29 ms) : 0, 15290
Telemetry [candidate] (10.861 ms) : 0, 10861
section iast
BytebuddyAgent [baseline] (837.549 ms) : 0, 837549
BytebuddyAgent [candidate] (846.651 ms) : 0, 846651
GlobalTracer [baseline] (228.919 ms) : 0, 228919
GlobalTracer [candidate] (230.522 ms) : 0, 230522
IAST [baseline] (22.635 ms) : 0, 22635
IAST [candidate] (23.655 ms) : 0, 23655
AppSec [baseline] (55.539 ms) : 0, 55539
AppSec [candidate] (55.306 ms) : 0, 55306
Debugger [baseline] (4.146 ms) : 0, 4146
Debugger [candidate] (4.208 ms) : 0, 4208
Remote Config [baseline] (625.529 µs) : 0, 626
Remote Config [candidate] (598.473 µs) : 0, 598
Telemetry [baseline] (8.705 ms) : 0, 8705
Telemetry [candidate] (8.841 ms) : 0, 8841
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (839.211 ms) : 0, 839211
BytebuddyAgent [candidate] (838.565 ms) : 0, 838565
GlobalTracer [baseline] (229.824 ms) : 0, 229824
GlobalTracer [candidate] (229.418 ms) : 0, 229418
IAST [baseline] (22.933 ms) : 0, 22933
IAST [candidate] (22.808 ms) : 0, 22808
AppSec [baseline] (55.842 ms) : 0, 55842
AppSec [candidate] (56.438 ms) : 0, 56438
Debugger [baseline] (4.129 ms) : 0, 4129
Debugger [candidate] (4.149 ms) : 0, 4149
Remote Config [baseline] (611.51 µs) : 0, 612
Remote Config [candidate] (610.329 µs) : 0, 610
Telemetry [baseline] (8.74 ms) : 0, 8740
Telemetry [candidate] (8.769 ms) : 0, 8769
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (840.643 ms) : 0, 840643
BytebuddyAgent [candidate] (835.644 ms) : 0, 835644
GlobalTracer [baseline] (230.77 ms) : 0, 230770
GlobalTracer [candidate] (228.598 ms) : 0, 228598
IAST [baseline] (22.635 ms) : 0, 22635
IAST [candidate] (22.125 ms) : 0, 22125
AppSec [baseline] (56.255 ms) : 0, 56255
AppSec [candidate] (55.898 ms) : 0, 55898
Debugger [baseline] (4.216 ms) : 0, 4216
Debugger [candidate] (4.11 ms) : 0, 4110
Remote Config [baseline] (607.918 µs) : 0, 608
Remote Config [candidate] (596.603 µs) : 0, 597
Telemetry [baseline] (8.652 ms) : 0, 8652
Telemetry [candidate] (8.55 ms) : 0, 8550
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.48.0-SNAPSHOT~df417bd2cd, baseline=1.48.0-SNAPSHOT~8adba3f8b4

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.068 s) : 0, 1067693
Total [baseline] (10.512 s) : 0, 10512123
Agent [candidate] (1.054 s) : 0, 1054229
Total [candidate] (10.452 s) : 0, 10452097
section appsec
Agent [baseline] (1.197 s) : 0, 1197329
Total [baseline] (10.774 s) : 0, 10773534
Agent [candidate] (1.194 s) : 0, 1193811
Total [candidate] (10.759 s) : 0, 10758771
section iast
Agent [baseline] (1.193 s) : 0, 1192755
Total [baseline] (11.096 s) : 0, 11095897
Agent [candidate] (1.184 s) : 0, 1183678
Total [candidate] (11.024 s) : 0, 11024015
section profiling
Agent [baseline] (1.276 s) : 0, 1275871
Total [baseline] (10.85 s) : 0, 10850308
Agent [candidate] (1.286 s) : 0, 1286116
Total [candidate] (10.895 s) : 0, 10895014
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.068 s -
Agent appsec 1.197 s 129.635 ms (12.1%)
Agent iast 1.193 s 125.062 ms (11.7%)
Agent profiling 1.276 s 208.177 ms (19.5%)
Total tracing 10.512 s -
Total appsec 10.774 s 261.412 ms (2.5%)
Total iast 11.096 s 583.774 ms (5.6%)
Total profiling 10.85 s 338.185 ms (3.2%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.054 s -
Agent appsec 1.194 s 139.582 ms (13.2%)
Agent iast 1.184 s 129.449 ms (12.3%)
Agent profiling 1.286 s 231.887 ms (22.0%)
Total tracing 10.452 s -
Total appsec 10.759 s 306.674 ms (2.9%)
Total iast 11.024 s 571.918 ms (5.5%)
Total profiling 10.895 s 442.918 ms (4.2%)
gantt
    title petclinic - break down per module: candidate=1.48.0-SNAPSHOT~df417bd2cd, baseline=1.48.0-SNAPSHOT~8adba3f8b4

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (729.113 ms) : 0, 729113
BytebuddyAgent [candidate] (719.875 ms) : 0, 719875
GlobalTracer [baseline] (242.52 ms) : 0, 242520
GlobalTracer [candidate] (239.239 ms) : 0, 239239
AppSec [baseline] (54.936 ms) : 0, 54936
AppSec [candidate] (54.943 ms) : 0, 54943
Debugger [baseline] (4.443 ms) : 0, 4443
Debugger [candidate] (4.435 ms) : 0, 4435
Remote Config [baseline] (699.141 µs) : 0, 699
Remote Config [candidate] (707.516 µs) : 0, 708
Telemetry [baseline] (15.127 ms) : 0, 15127
Telemetry [candidate] (14.57 ms) : 0, 14570
section appsec
BytebuddyAgent [baseline] (739.88 ms) : 0, 739880
BytebuddyAgent [candidate] (737.49 ms) : 0, 737490
GlobalTracer [baseline] (236.339 ms) : 0, 236339
GlobalTracer [candidate] (235.588 ms) : 0, 235588
AppSec [baseline] (176.436 ms) : 0, 176436
AppSec [candidate] (176.362 ms) : 0, 176362
Debugger [baseline] (4.278 ms) : 0, 4278
Debugger [candidate] (4.268 ms) : 0, 4268
Remote Config [baseline] (642.953 µs) : 0, 643
Remote Config [candidate] (661.781 µs) : 0, 662
Telemetry [baseline] (8.267 ms) : 0, 8267
Telemetry [candidate] (8.218 ms) : 0, 8218
IAST [baseline] (21.936 ms) : 0, 21936
IAST [candidate] (21.578 ms) : 0, 21578
section iast
BytebuddyAgent [baseline] (848.827 ms) : 0, 848827
BytebuddyAgent [candidate] (841.15 ms) : 0, 841150
GlobalTracer [baseline] (230.42 ms) : 0, 230420
GlobalTracer [candidate] (230.093 ms) : 0, 230093
AppSec [baseline] (56.185 ms) : 0, 56185
AppSec [candidate] (56.014 ms) : 0, 56014
Debugger [baseline] (4.177 ms) : 0, 4177
Debugger [candidate] (4.09 ms) : 0, 4090
Remote Config [baseline] (609.659 µs) : 0, 610
Remote Config [candidate] (599.4 µs) : 0, 599
Telemetry [baseline] (8.892 ms) : 0, 8892
Telemetry [candidate] (8.691 ms) : 0, 8691
IAST [baseline] (22.844 ms) : 0, 22844
IAST [candidate] (22.552 ms) : 0, 22552
section profiling
BytebuddyAgent [baseline] (711.073 ms) : 0, 711073
BytebuddyAgent [candidate] (717.554 ms) : 0, 717554
GlobalTracer [baseline] (348.785 ms) : 0, 348785
GlobalTracer [candidate] (351.832 ms) : 0, 351832
AppSec [baseline] (54.084 ms) : 0, 54084
AppSec [candidate] (53.45 ms) : 0, 53450
Debugger [baseline] (4.328 ms) : 0, 4328
Debugger [candidate] (4.342 ms) : 0, 4342
Remote Config [baseline] (695.303 µs) : 0, 695
Remote Config [candidate] (700.967 µs) : 0, 701
Telemetry [baseline] (9.017 ms) : 0, 9017
Telemetry [candidate] (9.005 ms) : 0, 9005
ProfilingAgent [baseline] (102.146 ms) : 0, 102146
ProfilingAgent [candidate] (103.191 ms) : 0, 103191
Profiling [baseline] (102.173 ms) : 0, 102173
Profiling [candidate] (103.218 ms) : 0, 103218
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-04-04T10:11:15 2025-04-04T10:19:00
git_branch master daniel.mohedano/junit4-test-reordering
git_commit_date 1743705303 1743760278
git_commit_sha 8adba3f df417bd
release_version 1.48.0-SNAPSHOT~8adba3f8b4 1.48.0-SNAPSHOT~df417bd2cd
start_time 2025-04-04T10:11:01 2025-04-04T10:18:46
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1743762339 1743762339
ci_job_id 881083358 881083358
ci_pipeline_id 61079116 61079116
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-gtma1pc4-project-304-concurrent-7-okscvdil 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-gtma1pc4-project-304-concurrent-7-okscvdil 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 14 metrics, 16 unstable metrics.

Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~df417bd2cd, baseline=1.48.0-SNAPSHOT~8adba3f8b4
    dateFormat X
    axisFormat %s
section baseline
no_agent (382.819 µs) : 362, 403
.   : milestone, 383,
iast (517.371 µs) : 495, 539
.   : milestone, 517,
iast_FULL (738.234 µs) : 716, 760
.   : milestone, 738,
iast_GLOBAL (567.592 µs) : 546, 589
.   : milestone, 568,
iast_HARDCODED_SECRET_DISABLED (515.158 µs) : 493, 537
.   : milestone, 515,
iast_INACTIVE (467.382 µs) : 446, 489
.   : milestone, 467,
iast_TELEMETRY_OFF (503.722 µs) : 482, 526
.   : milestone, 504,
tracing (465.637 µs) : 445, 487
.   : milestone, 466,
section candidate
no_agent (387.817 µs) : 366, 409
.   : milestone, 388,
iast (517.894 µs) : 496, 540
.   : milestone, 518,
iast_FULL (738.526 µs) : 716, 761
.   : milestone, 739,
iast_GLOBAL (560.534 µs) : 539, 582
.   : milestone, 561,
iast_HARDCODED_SECRET_DISABLED (517.177 µs) : 495, 539
.   : milestone, 517,
iast_INACTIVE (465.153 µs) : 444, 486
.   : milestone, 465,
iast_TELEMETRY_OFF (508.051 µs) : 486, 530
.   : milestone, 508,
tracing (455.258 µs) : 435, 476
.   : milestone, 455,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 382.819 µs [362.493 µs, 403.145 µs] -
iast 517.371 µs [495.498 µs, 539.244 µs] 134.552 µs (35.1%)
iast_FULL 738.234 µs [716.169 µs, 760.299 µs] 355.415 µs (92.8%)
iast_GLOBAL 567.592 µs [545.742 µs, 589.442 µs] 184.773 µs (48.3%)
iast_HARDCODED_SECRET_DISABLED 515.158 µs [493.12 µs, 537.196 µs] 132.339 µs (34.6%)
iast_INACTIVE 467.382 µs [445.83 µs, 488.934 µs] 84.563 µs (22.1%)
iast_TELEMETRY_OFF 503.722 µs [481.798 µs, 525.646 µs] 120.903 µs (31.6%)
tracing 465.637 µs [444.674 µs, 486.601 µs] 82.818 µs (21.6%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 387.817 µs [366.283 µs, 409.351 µs] -
iast 517.894 µs [495.905 µs, 539.883 µs] 130.077 µs (33.5%)
iast_FULL 738.526 µs [716.349 µs, 760.703 µs] 350.709 µs (90.4%)
iast_GLOBAL 560.534 µs [538.59 µs, 582.477 µs] 172.717 µs (44.5%)
iast_HARDCODED_SECRET_DISABLED 517.177 µs [495.242 µs, 539.111 µs] 129.36 µs (33.4%)
iast_INACTIVE 465.153 µs [443.975 µs, 486.33 µs] 77.336 µs (19.9%)
iast_TELEMETRY_OFF 508.051 µs [485.924 µs, 530.178 µs] 120.234 µs (31.0%)
tracing 455.258 µs [434.651 µs, 475.865 µs] 67.441 µs (17.4%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~df417bd2cd, baseline=1.48.0-SNAPSHOT~8adba3f8b4
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.339 ms) : 1319, 1358
.   : milestone, 1339,
appsec (1.74 ms) : 1717, 1763
.   : milestone, 1740,
appsec_no_iast (1.759 ms) : 1735, 1783
.   : milestone, 1759,
code_origins (1.667 ms) : 1639, 1694
.   : milestone, 1667,
iast (1.511 ms) : 1487, 1536
.   : milestone, 1511,
profiling (1.525 ms) : 1501, 1549
.   : milestone, 1525,
tracing (1.509 ms) : 1484, 1534
.   : milestone, 1509,
section candidate
no_agent (1.349 ms) : 1329, 1369
.   : milestone, 1349,
appsec (1.753 ms) : 1730, 1777
.   : milestone, 1753,
appsec_no_iast (1.751 ms) : 1727, 1774
.   : milestone, 1751,
code_origins (1.689 ms) : 1661, 1718
.   : milestone, 1689,
iast (1.522 ms) : 1498, 1545
.   : milestone, 1522,
profiling (1.508 ms) : 1485, 1532
.   : milestone, 1508,
tracing (1.519 ms) : 1494, 1543
.   : milestone, 1519,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.339 ms [1.319 ms, 1.358 ms] -
appsec 1.74 ms [1.717 ms, 1.763 ms] 401.187 µs (30.0%)
appsec_no_iast 1.759 ms [1.735 ms, 1.783 ms] 420.379 µs (31.4%)
code_origins 1.667 ms [1.639 ms, 1.694 ms] 327.892 µs (24.5%)
iast 1.511 ms [1.487 ms, 1.536 ms] 172.767 µs (12.9%)
profiling 1.525 ms [1.501 ms, 1.549 ms] 186.323 µs (13.9%)
tracing 1.509 ms [1.484 ms, 1.534 ms] 170.167 µs (12.7%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.349 ms [1.329 ms, 1.369 ms] -
appsec 1.753 ms [1.73 ms, 1.777 ms] 404.061 µs (29.9%)
appsec_no_iast 1.751 ms [1.727 ms, 1.774 ms] 401.155 µs (29.7%)
code_origins 1.689 ms [1.661 ms, 1.718 ms] 339.897 µs (25.2%)
iast 1.522 ms [1.498 ms, 1.545 ms] 172.485 µs (12.8%)
profiling 1.508 ms [1.485 ms, 1.532 ms] 158.947 µs (11.8%)
tracing 1.519 ms [1.494 ms, 1.543 ms] 169.13 µs (12.5%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master daniel.mohedano/junit4-test-reordering
git_commit_date 1743705303 1743760278
git_commit_sha 8adba3f df417bd
release_version 1.48.0-SNAPSHOT~8adba3f8b4 1.48.0-SNAPSHOT~df417bd2cd
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1743762818 1743762818
ci_job_id 881083359 881083359
ci_pipeline_id 61079116 61079116
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-gtma1pc4-project-304-concurrent-8-rdvakdgv 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-gtma1pc4-project-304-concurrent-8-rdvakdgv 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 11 metrics, 1 unstable metrics.

Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.48.0-SNAPSHOT~df417bd2cd, baseline=1.48.0-SNAPSHOT~8adba3f8b4
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.472 ms) : 1460, 1483
.   : milestone, 1472,
appsec (2.37 ms) : 2323, 2417
.   : milestone, 2370,
iast (3.254 ms) : 3033, 3475
.   : milestone, 3254,
iast_GLOBAL (2.19 ms) : 2131, 2249
.   : milestone, 2190,
profiling (2.018 ms) : 1970, 2066
.   : milestone, 2018,
tracing (1.97 ms) : 1925, 2015
.   : milestone, 1970,
section candidate
no_agent (1.472 ms) : 1460, 1483
.   : milestone, 1472,
appsec (2.362 ms) : 2315, 2408
.   : milestone, 2362,
iast (2.148 ms) : 2090, 2207
.   : milestone, 2148,
iast_GLOBAL (2.191 ms) : 2132, 2251
.   : milestone, 2191,
profiling (2.028 ms) : 1979, 2076
.   : milestone, 2028,
tracing (1.974 ms) : 1929, 2020
.   : milestone, 1974,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.472 ms [1.46 ms, 1.483 ms] -
appsec 2.37 ms [2.323 ms, 2.417 ms] 898.041 µs (61.0%)
iast 3.254 ms [3.033 ms, 3.475 ms] 1.782 ms (121.1%)
iast_GLOBAL 2.19 ms [2.131 ms, 2.249 ms] 717.906 µs (48.8%)
profiling 2.018 ms [1.97 ms, 2.066 ms] 546.153 µs (37.1%)
tracing 1.97 ms [1.925 ms, 2.015 ms] 498.172 µs (33.8%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.472 ms [1.46 ms, 1.483 ms] -
appsec 2.362 ms [2.315 ms, 2.408 ms] 890.107 µs (60.5%)
iast 2.148 ms [2.09 ms, 2.207 ms] 676.939 µs (46.0%)
iast_GLOBAL 2.191 ms [2.132 ms, 2.251 ms] 719.597 µs (48.9%)
profiling 2.028 ms [1.979 ms, 2.076 ms] 556.092 µs (37.8%)
tracing 1.974 ms [1.929 ms, 2.02 ms] 502.884 µs (34.2%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.48.0-SNAPSHOT~df417bd2cd, baseline=1.48.0-SNAPSHOT~8adba3f8b4
    dateFormat X
    axisFormat %s
section baseline
no_agent (14.949 s) : 14949000, 14949000
.   : milestone, 14949000,
appsec (15.132 s) : 15132000, 15132000
.   : milestone, 15132000,
iast (18.784 s) : 18784000, 18784000
.   : milestone, 18784000,
iast_GLOBAL (18.139 s) : 18139000, 18139000
.   : milestone, 18139000,
profiling (15.659 s) : 15659000, 15659000
.   : milestone, 15659000,
tracing (14.848 s) : 14848000, 14848000
.   : milestone, 14848000,
section candidate
no_agent (15.647 s) : 15647000, 15647000
.   : milestone, 15647000,
appsec (15.054 s) : 15054000, 15054000
.   : milestone, 15054000,
iast (18.432 s) : 18432000, 18432000
.   : milestone, 18432000,
iast_GLOBAL (17.748 s) : 17748000, 17748000
.   : milestone, 17748000,
profiling (15.077 s) : 15077000, 15077000
.   : milestone, 15077000,
tracing (14.527 s) : 14527000, 14527000
.   : milestone, 14527000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.949 s [14.949 s, 14.949 s] -
appsec 15.132 s [15.132 s, 15.132 s] 183.0 ms (1.2%)
iast 18.784 s [18.784 s, 18.784 s] 3.835 s (25.7%)
iast_GLOBAL 18.139 s [18.139 s, 18.139 s] 3.19 s (21.3%)
profiling 15.659 s [15.659 s, 15.659 s] 710.0 ms (4.7%)
tracing 14.848 s [14.848 s, 14.848 s] -101.0 ms (-0.7%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.647 s [15.647 s, 15.647 s] -
appsec 15.054 s [15.054 s, 15.054 s] -593.0 ms (-3.8%)
iast 18.432 s [18.432 s, 18.432 s] 2.785 s (17.8%)
iast_GLOBAL 17.748 s [17.748 s, 17.748 s] 2.101 s (13.4%)
profiling 15.077 s [15.077 s, 15.077 s] -570.0 ms (-3.6%)
tracing 14.527 s [14.527 s, 14.527 s] -1.12 s (-7.2%)

@@ -0,0 +1,16 @@
apply from: "$rootDir/gradle/java.gradle"

repositories {
Copy link
Contributor

Choose a reason for hiding this comment

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

I am not sure if the repositories block is needed here. It is there in the other Gradle instrumentations, but I think I just forgot to delete it from experimenting with trying to download a Gradle API for a specific version.
Could you please try removing it and seeing if things continue to work?

Copy link
Contributor

Choose a reason for hiding this comment

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

Let's rename the module to something more descriptive, like gradle-testing. Also, let's add this and the maven-surefire to CODEOWNERS

public class DDCollectAllTestClassesExecutor implements Action<String> {
private final List<Class<?>> testClasses = new ArrayList<>();
Action<String> delegate;
ClassLoader classLoader;
Copy link
Contributor

Choose a reason for hiding this comment

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

Can these fields be made private final?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Whoops, yes, nice catch


@Override
public int compare(Description o1, Description o2) {
return comparator.compare(o1, o2);
Copy link
Contributor

Choose a reason for hiding this comment

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

We could simply do executionPriority(o2) - executionPriority(o1) here and get rid of the nested comparator

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'll also update datadog.trace.instrumentation.junit4.order.JUnit4FailFastClassOrderer to implement Comparator<Class<?>> instead of just providing the classExecutionPriority method, I think it will be easier to follow the code that way

@AutoService(InstrumenterModule.class)
public class JUnit4TestOrdererInstrumentation extends InstrumenterModule.CiVisibility
implements Instrumenter.ForSingleType, Instrumenter.HasMethodAdvice {
private final String parentPackageName = Strings.getPackageName(JUnit4Utils.class.getName());
Copy link
Contributor

Choose a reason for hiding this comment

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

As we've seen recently it is best not to init injected classes in the tracer's classloader. Let's use an instrumentation class here instead

JUnit4Instrumentation.class.getPackage().getName() + ".TestEventsHandlerHolder",
JUnit4Instrumentation.class.getPackage().getName() + ".SkippedByDatadog",
JUnit4Instrumentation.class.getPackage().getName() + ".TracingListener",
JUnit4FailFastClassOrderer.class.getPackage().getName() + ".JUnit4FailFastClassOrderer",
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we use an instrumentation class here instead of the one we inject?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

There is no instrumentation class inside of the junit4.order package unfortunately, but we could do:

JUnit4Instrumentation.class.getPackage().getName() + ".order.JUnit4FailFastClassOrderer",

Copy link
Contributor

Choose a reason for hiding this comment

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

Yeah, let's do this. It's unlikely that we will rename the package, and if we do the smoke tests you added will catch the problem

JUnit4Instrumentation.class.getPackage().getName() + ".JUnit4Utils",
JUnit4Instrumentation.class.getPackage().getName() + ".TestEventsHandlerHolder",
JUnit4Instrumentation.class.getPackage().getName() + ".TracingListener",
JUnit4FailFastClassOrderer.class.getPackage().getName() + ".JUnit4FailFastClassOrderer",
Copy link
Contributor

Choose a reason for hiding this comment

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

Same here, can an instrumentation class be used to compute the package name?

return 0;
}

TestEventsHandler<TestSuiteDescriptor, TestDescriptor> testEventsHandler =
Copy link
Contributor

Choose a reason for hiding this comment

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

Let's move this variable declaration closer to the place where it is used to make the code easier to follow

Copy link
Contributor Author

Choose a reason for hiding this comment

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

When refactoring the class to implement Comparator<Class<?>> I added the handler as a field to the class, so it fixes this issue too

@daniel-mohedano daniel-mohedano marked this pull request as ready for review April 4, 2025 08:51
@daniel-mohedano daniel-mohedano requested review from a team as code owners April 4, 2025 08:51
@daniel-mohedano daniel-mohedano requested a review from mcculls April 4, 2025 08:51
@daniel-mohedano daniel-mohedano merged commit 3f78b01 into master Apr 4, 2025
244 of 249 checks passed
@daniel-mohedano daniel-mohedano deleted the daniel.mohedano/junit4-test-reordering branch April 4, 2025 15:28
@github-actions github-actions bot added this to the 1.48.0 milestone Apr 4, 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
comp: ci visibility Continuous Integration Visibility type: enhancement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants