Skip to content

Add smoke tests for java's concurrent API #8438

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 23 commits into from
Mar 12, 2025

Conversation

sarahchen6
Copy link
Contributor

@sarahchen6 sarahchen6 commented Feb 23, 2025

What Does This Do

Add concurrent smoketests for Java default concurrent mechanisms. This PR uses ExecutorService and ForkJoinPool to calculate fibonacci numbers and ensures that only one trace is created whether one or multiple concurrent mechanisms are used.

Motivation

When multiple instrumentations within the same app use the Java concurrency API, the trace context is not correctly propagated, leading to broken traces. This issue is affecting our customers and has caused support tickets such as https://datadoghq.atlassian.net/browse/APMS-14483. The goal is to first implement proper testing and then to resolve the broken traces.

Additional Notes

Contributor Checklist

Jira ticket: https://datadoghq.atlassian.net/browse/APMS-14483

@sarahchen6 sarahchen6 force-pushed the sarahchen6/add-concurrent-smoketests branch from 3032782 to 063e30c Compare February 23, 2025 21:42
@pr-commenter
Copy link

pr-commenter bot commented Feb 23, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master sarahchen6/add-concurrent-smoketests
git_commit_date 1741707364 1741715400
git_commit_sha f8c6b49 6a0fae5
release_version 1.48.0-SNAPSHOT~f8c6b49f18 1.47.0-SNAPSHOT~6a0fae5eef
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1741717857 1741717857
ci_job_id 842984727 842984727
ci_pipeline_id 58467192 58467192
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-2wkmbgws-project-304-concurrent-3-ieji34ec 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-2wkmbgws-project-304-concurrent-3-ieji34ec 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 1 performance improvements and 0 performance regressions! Performance is the same for 55 metrics, 7 unstable metrics.

scenario Δ mean execution_time candidate mean execution_time baseline mean execution_time
scenario:startup:insecure-bank:iast_TELEMETRY_OFF:AppSec better
[-6.735ms; -1.190ms] or [-11.967%; -2.115%]
52.319ms 56.282ms
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.47.0-SNAPSHOT~6a0fae5eef, baseline=1.48.0-SNAPSHOT~f8c6b49f18

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.038 s) : 0, 1038486
Total [baseline] (10.417 s) : 0, 10417050
Agent [candidate] (1.064 s) : 0, 1063676
Total [candidate] (10.419 s) : 0, 10419479
section appsec
Agent [baseline] (1.181 s) : 0, 1181489
Total [baseline] (10.714 s) : 0, 10713770
Agent [candidate] (1.181 s) : 0, 1180640
Total [candidate] (10.705 s) : 0, 10704882
section iast
Agent [baseline] (1.169 s) : 0, 1168736
Total [baseline] (10.999 s) : 0, 10998730
Agent [candidate] (1.17 s) : 0, 1169707
Total [candidate] (10.924 s) : 0, 10923714
section profiling
Agent [baseline] (1.275 s) : 0, 1274881
Total [baseline] (10.877 s) : 0, 10876554
Agent [candidate] (1.265 s) : 0, 1264749
Total [candidate] (10.865 s) : 0, 10865133
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.038 s -
Agent appsec 1.181 s 143.004 ms (13.8%)
Agent iast 1.169 s 130.25 ms (12.5%)
Agent profiling 1.275 s 236.395 ms (22.8%)
Total tracing 10.417 s -
Total appsec 10.714 s 296.72 ms (2.8%)
Total iast 10.999 s 581.68 ms (5.6%)
Total profiling 10.877 s 459.504 ms (4.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.064 s -
Agent appsec 1.181 s 116.964 ms (11.0%)
Agent iast 1.17 s 106.031 ms (10.0%)
Agent profiling 1.265 s 201.072 ms (18.9%)
Total tracing 10.419 s -
Total appsec 10.705 s 285.402 ms (2.7%)
Total iast 10.924 s 504.235 ms (4.8%)
Total profiling 10.865 s 445.654 ms (4.3%)
gantt
    title petclinic - break down per module: candidate=1.47.0-SNAPSHOT~6a0fae5eef, baseline=1.48.0-SNAPSHOT~f8c6b49f18

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (716.07 ms) : 0, 716070
BytebuddyAgent [candidate] (733.875 ms) : 0, 733875
GlobalTracer [baseline] (238.786 ms) : 0, 238786
GlobalTracer [candidate] (244.321 ms) : 0, 244321
AppSec [baseline] (55.184 ms) : 0, 55184
AppSec [candidate] (56.835 ms) : 0, 56835
Remote Config [baseline] (702.247 µs) : 0, 702
Remote Config [candidate] (716.163 µs) : 0, 716
Telemetry [baseline] (12.867 ms) : 0, 12867
Telemetry [candidate] (12.474 ms) : 0, 12474
section appsec
BytebuddyAgent [baseline] (735.366 ms) : 0, 735366
BytebuddyAgent [candidate] (733.829 ms) : 0, 733829
GlobalTracer [baseline] (235.692 ms) : 0, 235692
GlobalTracer [candidate] (235.848 ms) : 0, 235848
IAST [baseline] (21.415 ms) : 0, 21415
IAST [candidate] (21.309 ms) : 0, 21309
AppSec [baseline] (175.974 ms) : 0, 175974
AppSec [candidate] (176.181 ms) : 0, 176181
Remote Config [baseline] (661.549 µs) : 0, 662
Remote Config [candidate] (662.316 µs) : 0, 662
Telemetry [baseline] (8.286 ms) : 0, 8286
Telemetry [candidate] (8.244 ms) : 0, 8244
section iast
BytebuddyAgent [baseline] (835.417 ms) : 0, 835417
BytebuddyAgent [candidate] (835.666 ms) : 0, 835666
GlobalTracer [baseline] (229.621 ms) : 0, 229621
GlobalTracer [candidate] (229.658 ms) : 0, 229658
IAST [baseline] (22.777 ms) : 0, 22777
IAST [candidate] (22.869 ms) : 0, 22869
AppSec [baseline] (56.726 ms) : 0, 56726
AppSec [candidate] (56.946 ms) : 0, 56946
Remote Config [baseline] (623.593 µs) : 0, 624
Remote Config [candidate] (620.716 µs) : 0, 621
Telemetry [baseline] (8.708 ms) : 0, 8708
Telemetry [candidate] (8.693 ms) : 0, 8693
section profiling
BytebuddyAgent [baseline] (718.724 ms) : 0, 718724
BytebuddyAgent [candidate] (711.575 ms) : 0, 711575
GlobalTracer [baseline] (352.704 ms) : 0, 352704
GlobalTracer [candidate] (350.207 ms) : 0, 350207
AppSec [baseline] (55.295 ms) : 0, 55295
AppSec [candidate] (54.384 ms) : 0, 54384
Remote Config [baseline] (692.217 µs) : 0, 692
Remote Config [candidate] (657.909 µs) : 0, 658
Telemetry [baseline] (9.03 ms) : 0, 9030
Telemetry [candidate] (8.911 ms) : 0, 8911
ProfilingAgent [baseline] (97.617 ms) : 0, 97617
ProfilingAgent [candidate] (96.497 ms) : 0, 96497
Profiling [baseline] (97.642 ms) : 0, 97642
Profiling [candidate] (96.523 ms) : 0, 96523
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.47.0-SNAPSHOT~6a0fae5eef, baseline=1.48.0-SNAPSHOT~f8c6b49f18

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.04 s) : 0, 1040173
Total [baseline] (8.69 s) : 0, 8689657
Agent [candidate] (1.051 s) : 0, 1051157
Total [candidate] (8.688 s) : 0, 8687989
section iast
Agent [baseline] (1.174 s) : 0, 1173850
Total [baseline] (9.242 s) : 0, 9241836
Agent [candidate] (1.171 s) : 0, 1170951
Total [candidate] (9.2 s) : 0, 9199724
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.169 s) : 0, 1168951
Total [baseline] (9.163 s) : 0, 9162757
Agent [candidate] (1.172 s) : 0, 1172014
Total [candidate] (9.198 s) : 0, 9198317
section iast_TELEMETRY_OFF
Agent [baseline] (1.168 s) : 0, 1168252
Total [baseline] (9.25 s) : 0, 9250203
Agent [candidate] (1.167 s) : 0, 1167236
Total [candidate] (9.217 s) : 0, 9217225
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.04 s -
Agent iast 1.174 s 133.677 ms (12.9%)
Agent iast_HARDCODED_SECRET_DISABLED 1.169 s 128.778 ms (12.4%)
Agent iast_TELEMETRY_OFF 1.168 s 128.079 ms (12.3%)
Total tracing 8.69 s -
Total iast 9.242 s 552.178 ms (6.4%)
Total iast_HARDCODED_SECRET_DISABLED 9.163 s 473.1 ms (5.4%)
Total iast_TELEMETRY_OFF 9.25 s 560.546 ms (6.5%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.051 s -
Agent iast 1.171 s 119.794 ms (11.4%)
Agent iast_HARDCODED_SECRET_DISABLED 1.172 s 120.857 ms (11.5%)
Agent iast_TELEMETRY_OFF 1.167 s 116.079 ms (11.0%)
Total tracing 8.688 s -
Total iast 9.2 s 511.736 ms (5.9%)
Total iast_HARDCODED_SECRET_DISABLED 9.198 s 510.328 ms (5.9%)
Total iast_TELEMETRY_OFF 9.217 s 529.236 ms (6.1%)
gantt
    title insecure-bank - break down per module: candidate=1.47.0-SNAPSHOT~6a0fae5eef, baseline=1.48.0-SNAPSHOT~f8c6b49f18

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (717.541 ms) : 0, 717541
BytebuddyAgent [candidate] (725.238 ms) : 0, 725238
GlobalTracer [baseline] (238.667 ms) : 0, 238667
GlobalTracer [candidate] (241.459 ms) : 0, 241459
AppSec [baseline] (55.014 ms) : 0, 55014
AppSec [candidate] (56.168 ms) : 0, 56168
Remote Config [baseline] (684.696 µs) : 0, 685
Remote Config [candidate] (719.338 µs) : 0, 719
Telemetry [baseline] (13.427 ms) : 0, 13427
Telemetry [candidate] (12.305 ms) : 0, 12305
section iast
BytebuddyAgent [baseline] (839.692 ms) : 0, 839692
BytebuddyAgent [candidate] (836.237 ms) : 0, 836237
GlobalTracer [baseline] (230.517 ms) : 0, 230517
GlobalTracer [candidate] (229.901 ms) : 0, 229901
IAST [baseline] (23.603 ms) : 0, 23603
IAST [candidate] (22.754 ms) : 0, 22754
AppSec [baseline] (55.865 ms) : 0, 55865
AppSec [candidate] (57.525 ms) : 0, 57525
Remote Config [baseline] (603.777 µs) : 0, 604
Remote Config [candidate] (616.404 µs) : 0, 616
Telemetry [baseline] (8.696 ms) : 0, 8696
Telemetry [candidate] (8.683 ms) : 0, 8683
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (835.688 ms) : 0, 835688
BytebuddyAgent [candidate] (836.958 ms) : 0, 836958
GlobalTracer [baseline] (229.868 ms) : 0, 229868
GlobalTracer [candidate] (230.514 ms) : 0, 230514
IAST [baseline] (22.755 ms) : 0, 22755
IAST [candidate] (22.778 ms) : 0, 22778
AppSec [baseline] (56.443 ms) : 0, 56443
AppSec [candidate] (57.068 ms) : 0, 57068
Remote Config [baseline] (617.847 µs) : 0, 618
Remote Config [candidate] (627.458 µs) : 0, 627
Telemetry [baseline] (8.661 ms) : 0, 8661
Telemetry [candidate] (8.783 ms) : 0, 8783
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (835.242 ms) : 0, 835242
BytebuddyAgent [candidate] (833.095 ms) : 0, 833095
GlobalTracer [baseline] (230.563 ms) : 0, 230563
GlobalTracer [candidate] (230.491 ms) : 0, 230491
IAST [baseline] (22.089 ms) : 0, 22089
IAST [candidate] (26.872 ms) : 0, 26872
AppSec [baseline] (56.282 ms) : 0, 56282
AppSec [candidate] (52.319 ms) : 0, 52319
Remote Config [baseline] (617.709 µs) : 0, 618
Remote Config [candidate] (609.398 µs) : 0, 609
Telemetry [baseline] (8.567 ms) : 0, 8567
Telemetry [candidate] (8.626 ms) : 0, 8626
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-03-11T18:01:26 2025-03-11T18:09:13
git_branch master sarahchen6/add-concurrent-smoketests
git_commit_date 1741707364 1741715400
git_commit_sha f8c6b49 6a0fae5
release_version 1.48.0-SNAPSHOT~f8c6b49f18 1.47.0-SNAPSHOT~6a0fae5eef
start_time 2025-03-11T18:01:12 2025-03-11T18:08:59
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1741716954 1741716954
ci_job_id 842984728 842984728
ci_pipeline_id 58467192 58467192
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-2wkmbgws-project-304-concurrent-4-npzvvet8 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-2wkmbgws-project-304-concurrent-4-npzvvet8 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 1 performance regressions! Performance is the same for 13 metrics, 16 unstable metrics.

scenario Δ mean http_req_duration Δ mean throughput candidate mean http_req_duration candidate mean throughput baseline mean http_req_duration baseline mean throughput
scenario:load:petclinic:appsec_no_iast worse
[+41.288µs; +93.869µs] or [+2.406%; +5.469%]
unstable
[-606.685op/s; +250.734op/s] or [-21.992%; +9.089%]
1.784ms 2580.645op/s 1.716ms 2758.621op/s
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.47.0-SNAPSHOT~6a0fae5eef, baseline=1.48.0-SNAPSHOT~f8c6b49f18
    dateFormat X
    axisFormat %s
section baseline
no_agent (385.124 µs) : 365, 405
.   : milestone, 385,
iast (527.106 µs) : 505, 549
.   : milestone, 527,
iast_FULL (734.756 µs) : 713, 757
.   : milestone, 735,
iast_GLOBAL (564.48 µs) : 543, 586
.   : milestone, 564,
iast_HARDCODED_SECRET_DISABLED (523.483 µs) : 502, 545
.   : milestone, 523,
iast_INACTIVE (474.067 µs) : 452, 496
.   : milestone, 474,
iast_TELEMETRY_OFF (510.43 µs) : 488, 532
.   : milestone, 510,
tracing (463.672 µs) : 443, 485
.   : milestone, 464,
section candidate
no_agent (392.362 µs) : 372, 412
.   : milestone, 392,
iast (521.351 µs) : 499, 543
.   : milestone, 521,
iast_FULL (741.232 µs) : 719, 763
.   : milestone, 741,
iast_GLOBAL (564.718 µs) : 542, 587
.   : milestone, 565,
iast_HARDCODED_SECRET_DISABLED (519.72 µs) : 497, 542
.   : milestone, 520,
iast_INACTIVE (471.824 µs) : 450, 493
.   : milestone, 472,
iast_TELEMETRY_OFF (509.582 µs) : 486, 533
.   : milestone, 510,
tracing (470.518 µs) : 450, 491
.   : milestone, 471,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 385.124 µs [365.201 µs, 405.048 µs] -
iast 527.106 µs [504.866 µs, 549.346 µs] 141.982 µs (36.9%)
iast_FULL 734.756 µs [712.786 µs, 756.727 µs] 349.632 µs (90.8%)
iast_GLOBAL 564.48 µs [542.646 µs, 586.314 µs] 179.355 µs (46.6%)
iast_HARDCODED_SECRET_DISABLED 523.483 µs [501.609 µs, 545.358 µs] 138.359 µs (35.9%)
iast_INACTIVE 474.067 µs [452.389 µs, 495.744 µs] 88.942 µs (23.1%)
iast_TELEMETRY_OFF 510.43 µs [488.483 µs, 532.376 µs] 125.305 µs (32.5%)
tracing 463.672 µs [442.776 µs, 484.568 µs] 78.548 µs (20.4%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 392.362 µs [372.477 µs, 412.246 µs] -
iast 521.351 µs [499.289 µs, 543.413 µs] 128.99 µs (32.9%)
iast_FULL 741.232 µs [719.347 µs, 763.116 µs] 348.87 µs (88.9%)
iast_GLOBAL 564.718 µs [542.361 µs, 587.076 µs] 172.357 µs (43.9%)
iast_HARDCODED_SECRET_DISABLED 519.72 µs [496.993 µs, 542.447 µs] 127.358 µs (32.5%)
iast_INACTIVE 471.824 µs [450.398 µs, 493.249 µs] 79.462 µs (20.3%)
iast_TELEMETRY_OFF 509.582 µs [486.476 µs, 532.687 µs] 117.22 µs (29.9%)
tracing 470.518 µs [449.907 µs, 491.128 µs] 78.156 µs (19.9%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.47.0-SNAPSHOT~6a0fae5eef, baseline=1.48.0-SNAPSHOT~f8c6b49f18
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.374 ms) : 1355, 1394
.   : milestone, 1374,
appsec (1.746 ms) : 1722, 1769
.   : milestone, 1746,
appsec_no_iast (1.716 ms) : 1690, 1742
.   : milestone, 1716,
code_origins (1.698 ms) : 1671, 1726
.   : milestone, 1698,
iast (1.534 ms) : 1510, 1558
.   : milestone, 1534,
profiling (1.521 ms) : 1498, 1545
.   : milestone, 1521,
tracing (1.5 ms) : 1475, 1525
.   : milestone, 1500,
section candidate
no_agent (1.36 ms) : 1340, 1380
.   : milestone, 1360,
appsec (1.763 ms) : 1739, 1787
.   : milestone, 1763,
appsec_no_iast (1.784 ms) : 1761, 1807
.   : milestone, 1784,
code_origins (1.691 ms) : 1657, 1724
.   : milestone, 1691,
iast (1.538 ms) : 1514, 1562
.   : milestone, 1538,
profiling (1.536 ms) : 1513, 1560
.   : milestone, 1536,
tracing (1.495 ms) : 1471, 1519
.   : milestone, 1495,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.374 ms [1.355 ms, 1.394 ms] -
appsec 1.746 ms [1.722 ms, 1.769 ms] 371.327 µs (27.0%)
appsec_no_iast 1.716 ms [1.69 ms, 1.742 ms] 342.222 µs (24.9%)
code_origins 1.698 ms [1.671 ms, 1.726 ms] 324.235 µs (23.6%)
iast 1.534 ms [1.51 ms, 1.558 ms] 159.605 µs (11.6%)
profiling 1.521 ms [1.498 ms, 1.545 ms] 147.216 µs (10.7%)
tracing 1.5 ms [1.475 ms, 1.525 ms] 125.898 µs (9.2%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.36 ms [1.34 ms, 1.38 ms] -
appsec 1.763 ms [1.739 ms, 1.787 ms] 403.152 µs (29.6%)
appsec_no_iast 1.784 ms [1.761 ms, 1.807 ms] 424.027 µs (31.2%)
code_origins 1.691 ms [1.657 ms, 1.724 ms] 330.906 µs (24.3%)
iast 1.538 ms [1.514 ms, 1.562 ms] 178.365 µs (13.1%)
profiling 1.536 ms [1.513 ms, 1.56 ms] 176.307 µs (13.0%)
tracing 1.495 ms [1.471 ms, 1.519 ms] 135.275 µs (9.9%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master sarahchen6/add-concurrent-smoketests
git_commit_date 1741707364 1741715400
git_commit_sha f8c6b49 6a0fae5
release_version 1.48.0-SNAPSHOT~f8c6b49f18 1.47.0-SNAPSHOT~6a0fae5eef
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1741717392 1741717392
ci_job_id 842984729 842984729
ci_pipeline_id 58467192 58467192
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-2wkmbgws-project-304-concurrent-5-1i718pyt 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-2wkmbgws-project-304-concurrent-5-1i718pyt 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.47.0-SNAPSHOT~6a0fae5eef, baseline=1.48.0-SNAPSHOT~f8c6b49f18
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.47 ms) : 1459, 1482
.   : milestone, 1470,
appsec (2.338 ms) : 2294, 2382
.   : milestone, 2338,
iast (2.117 ms) : 2061, 2172
.   : milestone, 2117,
iast_GLOBAL (2.16 ms) : 2104, 2216
.   : milestone, 2160,
profiling (2.44 ms) : 2258, 2622
.   : milestone, 2440,
tracing (1.951 ms) : 1908, 1994
.   : milestone, 1951,
section candidate
no_agent (1.468 ms) : 1456, 1479
.   : milestone, 1468,
appsec (2.347 ms) : 2304, 2390
.   : milestone, 2347,
iast (2.102 ms) : 2047, 2156
.   : milestone, 2102,
iast_GLOBAL (2.147 ms) : 2092, 2202
.   : milestone, 2147,
profiling (1.966 ms) : 1923, 2010
.   : milestone, 1966,
tracing (1.944 ms) : 1902, 1986
.   : milestone, 1944,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.47 ms [1.459 ms, 1.482 ms] -
appsec 2.338 ms [2.294 ms, 2.382 ms] 867.804 µs (59.0%)
iast 2.117 ms [2.061 ms, 2.172 ms] 646.253 µs (44.0%)
iast_GLOBAL 2.16 ms [2.104 ms, 2.216 ms] 689.84 µs (46.9%)
profiling 2.44 ms [2.258 ms, 2.622 ms] 969.843 µs (66.0%)
tracing 1.951 ms [1.908 ms, 1.994 ms] 480.775 µs (32.7%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.468 ms [1.456 ms, 1.479 ms] -
appsec 2.347 ms [2.304 ms, 2.39 ms] 879.604 µs (59.9%)
iast 2.102 ms [2.047 ms, 2.156 ms] 634.283 µs (43.2%)
iast_GLOBAL 2.147 ms [2.092 ms, 2.202 ms] 679.865 µs (46.3%)
profiling 1.966 ms [1.923 ms, 2.01 ms] 498.815 µs (34.0%)
tracing 1.944 ms [1.902 ms, 1.986 ms] 476.279 µs (32.5%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.47.0-SNAPSHOT~6a0fae5eef, baseline=1.48.0-SNAPSHOT~f8c6b49f18
    dateFormat X
    axisFormat %s
section baseline
no_agent (14.921 s) : 14921000, 14921000
.   : milestone, 14921000,
appsec (15.051 s) : 15051000, 15051000
.   : milestone, 15051000,
iast (19.02 s) : 19020000, 19020000
.   : milestone, 19020000,
iast_GLOBAL (18.105 s) : 18105000, 18105000
.   : milestone, 18105000,
profiling (15.454 s) : 15454000, 15454000
.   : milestone, 15454000,
tracing (14.829 s) : 14829000, 14829000
.   : milestone, 14829000,
section candidate
no_agent (14.893 s) : 14893000, 14893000
.   : milestone, 14893000,
appsec (14.962 s) : 14962000, 14962000
.   : milestone, 14962000,
iast (18.166 s) : 18166000, 18166000
.   : milestone, 18166000,
iast_GLOBAL (17.891 s) : 17891000, 17891000
.   : milestone, 17891000,
profiling (15.21 s) : 15210000, 15210000
.   : milestone, 15210000,
tracing (15.042 s) : 15042000, 15042000
.   : milestone, 15042000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.921 s [14.921 s, 14.921 s] -
appsec 15.051 s [15.051 s, 15.051 s] 130.0 ms (0.9%)
iast 19.02 s [19.02 s, 19.02 s] 4.099 s (27.5%)
iast_GLOBAL 18.105 s [18.105 s, 18.105 s] 3.184 s (21.3%)
profiling 15.454 s [15.454 s, 15.454 s] 533.0 ms (3.6%)
tracing 14.829 s [14.829 s, 14.829 s] -92.0 ms (-0.6%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.893 s [14.893 s, 14.893 s] -
appsec 14.962 s [14.962 s, 14.962 s] 69.0 ms (0.5%)
iast 18.166 s [18.166 s, 18.166 s] 3.273 s (22.0%)
iast_GLOBAL 17.891 s [17.891 s, 17.891 s] 2.998 s (20.1%)
profiling 15.21 s [15.21 s, 15.21 s] 317.0 ms (2.1%)
tracing 15.042 s [15.042 s, 15.042 s] 149.0 ms (1.0%)

@sarahchen6 sarahchen6 changed the title [DRAFT] Add concurrent smoke tests Add smoke tests for java's concurrent API Mar 6, 2025
@sarahchen6 sarahchen6 marked this pull request as ready for review March 6, 2025 23:34
@sarahchen6 sarahchen6 requested a review from a team as a code owner March 6, 2025 23:34
@sarahchen6 sarahchen6 requested a review from dougqh March 6, 2025 23:34
Copy link
Contributor

github-actions bot commented Mar 6, 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.

Copy link
Contributor

@PerfectSlayer PerfectSlayer left a comment

Choose a reason for hiding this comment

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

Looking good! Only minor comments. The main ones are about the demo thread clean up, and if we can assert the trace structure at all or not?

Copy link
Contributor

@PerfectSlayer PerfectSlayer left a comment

Choose a reason for hiding this comment

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

Interesting refactoring / deduplication under AbstractDemoTest. Getting closer!
Left few comments :)

Copy link
Contributor

@PerfectSlayer PerfectSlayer left a comment

Choose a reason for hiding this comment

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

Looking good! 🙌 Thanks for keeping iterating over my comments 👍

@sarahchen6 sarahchen6 merged commit 1a0dcdf into master Mar 12, 2025
216 checks passed
@sarahchen6 sarahchen6 deleted the sarahchen6/add-concurrent-smoketests branch March 12, 2025 14:23
@github-actions github-actions bot added this to the 1.48.0 milestone Mar 12, 2025
mtoffl01 pushed a commit that referenced this pull request Mar 24, 2025
* Create initial app and ExecutorService demo.

* Add ForkJoin demo.

* Start writing tests.

* Add simple OTel spans for now.

* Add FibonacciCalculator interface and adjust tests and demos accordingly.

* Change trace expectations to reality.

* Extract calculations to helper function and update tests.

* Check that span name is as expected.

* Clean PR.

* Update settings.gradle

Co-authored-by: Bruce Bujon <[email protected]>

* Update dd-smoke-tests/concurrent/src/main/java/datadog/smoketest/concurrent/demoExecutorService.java

Co-authored-by: Bruce Bujon <[email protected]>

* Update dd-smoke-tests/concurrent/src/main/java/datadog/smoketest/concurrent/demoForkJoin.java

Co-authored-by: Bruce Bujon <[email protected]>

* Update names.

* Clean build.gradle.

* Format tests.

* Implement close method.

* Organize methods in demo classes and add child span tests (but no child spans right now??).

* Edit tests.

* feat: Update executor app and checks

* Propagate changes.

* Refactor tests.

* Fix variable name.

* Adjust tests again.

---------

Co-authored-by: Bruce Bujon <[email protected]>
Co-authored-by: Bruce Bujon <[email protected]>
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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants