Skip to content

Add JDK built-in support for UDS on Java 16+ #8314

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 24 commits into from
Mar 17, 2025

Conversation

sarahchen6
Copy link
Contributor

@sarahchen6 sarahchen6 commented Jan 30, 2025

What Does This Do

This PR continues on #8197 to add support for timeouts. Instead of using Channels.newInputStream, we use NIO selectors so that we can read with a timeout. Also included is a test for timeout support.

Motivation

For Java 16+, we want to replace our use of the third party library jnr-unixsocket with JDK's built-in support for unix domain sockets (UDS).

Additional Notes

Run test with ./gradlew :utils:socket-utils:test -PtestJvm=17.

Contributor Checklist

Jira ticket: LANGPLAT-300

@pr-commenter
Copy link

pr-commenter bot commented Jan 30, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master sarahchen6/add-timeout-support
git_commit_date 1741806942 1741813893
git_commit_sha 0d9c7d2 37ca729
release_version 1.48.0-SNAPSHOT~0d9c7d2b08 1.47.0-SNAPSHOT~37ca729ec6
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1741816414 1741816414
ci_job_id 845601631 845601631
ci_pipeline_id 58642057 58642057
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-99grvqzx-project-304-concurrent-0-kzahq51n 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-99grvqzx-project-304-concurrent-0-kzahq51n 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 45 metrics, 18 unstable metrics.

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.47.0-SNAPSHOT~37ca729ec6, baseline=1.48.0-SNAPSHOT~0d9c7d2b08

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.062 s) : 0, 1062467
Total [baseline] (8.76 s) : 0, 8759888
Agent [candidate] (1.062 s) : 0, 1061916
Total [candidate] (8.719 s) : 0, 8719267
section iast
Agent [baseline] (1.216 s) : 0, 1216321
Total [baseline] (9.404 s) : 0, 9404172
Agent [candidate] (1.221 s) : 0, 1220997
Total [candidate] (9.441 s) : 0, 9440634
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.199 s) : 0, 1199420
Total [baseline] (9.313 s) : 0, 9313430
Agent [candidate] (1.205 s) : 0, 1205050
Total [candidate] (9.31 s) : 0, 9309760
section iast_TELEMETRY_OFF
Agent [baseline] (1.21 s) : 0, 1209509
Total [baseline] (9.375 s) : 0, 9374943
Agent [candidate] (1.192 s) : 0, 1192148
Total [candidate] (9.324 s) : 0, 9324134
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.062 s -
Agent iast 1.216 s 153.854 ms (14.5%)
Agent iast_HARDCODED_SECRET_DISABLED 1.199 s 136.954 ms (12.9%)
Agent iast_TELEMETRY_OFF 1.21 s 147.042 ms (13.8%)
Total tracing 8.76 s -
Total iast 9.404 s 644.284 ms (7.4%)
Total iast_HARDCODED_SECRET_DISABLED 9.313 s 553.542 ms (6.3%)
Total iast_TELEMETRY_OFF 9.375 s 615.055 ms (7.0%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.062 s -
Agent iast 1.221 s 159.081 ms (15.0%)
Agent iast_HARDCODED_SECRET_DISABLED 1.205 s 143.134 ms (13.5%)
Agent iast_TELEMETRY_OFF 1.192 s 130.232 ms (12.3%)
Total tracing 8.719 s -
Total iast 9.441 s 721.367 ms (8.3%)
Total iast_HARDCODED_SECRET_DISABLED 9.31 s 590.492 ms (6.8%)
Total iast_TELEMETRY_OFF 9.324 s 604.866 ms (6.9%)
gantt
    title insecure-bank - break down per module: candidate=1.47.0-SNAPSHOT~37ca729ec6, baseline=1.48.0-SNAPSHOT~0d9c7d2b08

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (732.948 ms) : 0, 732948
BytebuddyAgent [candidate] (724.094 ms) : 0, 724094
GlobalTracer [baseline] (244.912 ms) : 0, 244912
GlobalTracer [candidate] (247.449 ms) : 0, 247449
AppSec [baseline] (56.665 ms) : 0, 56665
AppSec [candidate] (58.052 ms) : 0, 58052
Remote Config [baseline] (695.068 µs) : 0, 695
Remote Config [candidate] (713.949 µs) : 0, 714
Telemetry [baseline] (12.084 ms) : 0, 12084
Telemetry [candidate] (16.418 ms) : 0, 16418
section iast
BytebuddyAgent [baseline] (866.723 ms) : 0, 866723
BytebuddyAgent [candidate] (868.283 ms) : 0, 868283
GlobalTracer [baseline] (239.511 ms) : 0, 239511
GlobalTracer [candidate] (240.367 ms) : 0, 240367
IAST [baseline] (24.931 ms) : 0, 24931
IAST [candidate] (27.756 ms) : 0, 27756
AppSec [baseline] (60.155 ms) : 0, 60155
AppSec [candidate] (59.713 ms) : 0, 59713
Remote Config [baseline] (627.549 µs) : 0, 628
Remote Config [candidate] (610.981 µs) : 0, 611
Telemetry [baseline] (8.902 ms) : 0, 8902
Telemetry [candidate] (8.836 ms) : 0, 8836
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (849.966 ms) : 0, 849966
BytebuddyAgent [candidate] (851.283 ms) : 0, 851283
GlobalTracer [baseline] (238.525 ms) : 0, 238525
GlobalTracer [candidate] (241.014 ms) : 0, 241014
IAST [baseline] (26.243 ms) : 0, 26243
IAST [candidate] (27.687 ms) : 0, 27687
AppSec [baseline] (59.164 ms) : 0, 59164
AppSec [candidate] (60.176 ms) : 0, 60176
Remote Config [baseline] (942.362 µs) : 0, 942
Remote Config [candidate] (664.707 µs) : 0, 665
Telemetry [baseline] (9.099 ms) : 0, 9099
Telemetry [candidate] (8.997 ms) : 0, 8997
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (854.19 ms) : 0, 854190
BytebuddyAgent [candidate] (844.889 ms) : 0, 844889
GlobalTracer [baseline] (243.493 ms) : 0, 243493
GlobalTracer [candidate] (237.816 ms) : 0, 237816
IAST [baseline] (24.251 ms) : 0, 24251
IAST [candidate] (23.548 ms) : 0, 23548
AppSec [baseline] (62.465 ms) : 0, 62465
AppSec [candidate] (61.213 ms) : 0, 61213
Remote Config [baseline] (864.052 µs) : 0, 864
Remote Config [candidate] (611.468 µs) : 0, 611
Telemetry [baseline] (8.899 ms) : 0, 8899
Telemetry [candidate] (8.893 ms) : 0, 8893
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.47.0-SNAPSHOT~37ca729ec6, baseline=1.48.0-SNAPSHOT~0d9c7d2b08

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.063 s) : 0, 1062965
Total [baseline] (10.558 s) : 0, 10557972
Agent [candidate] (1.072 s) : 0, 1072348
Total [candidate] (10.653 s) : 0, 10652591
section appsec
Agent [baseline] (1.221 s) : 0, 1220692
Total [baseline] (10.924 s) : 0, 10923711
Agent [candidate] (1.213 s) : 0, 1213407
Total [candidate] (10.905 s) : 0, 10905372
section iast
Agent [baseline] (1.206 s) : 0, 1205797
Total [baseline] (11.194 s) : 0, 11193663
Agent [candidate] (1.198 s) : 0, 1198487
Total [candidate] (11.036 s) : 0, 11035744
section profiling
Agent [baseline] (1.294 s) : 0, 1293866
Total [baseline] (11.092 s) : 0, 11091780
Agent [candidate] (1.313 s) : 0, 1312906
Total [candidate] (11.093 s) : 0, 11092625
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.063 s -
Agent appsec 1.221 s 157.727 ms (14.8%)
Agent iast 1.206 s 142.832 ms (13.4%)
Agent profiling 1.294 s 230.901 ms (21.7%)
Total tracing 10.558 s -
Total appsec 10.924 s 365.738 ms (3.5%)
Total iast 11.194 s 635.691 ms (6.0%)
Total profiling 11.092 s 533.808 ms (5.1%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.072 s -
Agent appsec 1.213 s 141.059 ms (13.2%)
Agent iast 1.198 s 126.139 ms (11.8%)
Agent profiling 1.313 s 240.558 ms (22.4%)
Total tracing 10.653 s -
Total appsec 10.905 s 252.781 ms (2.4%)
Total iast 11.036 s 383.153 ms (3.6%)
Total profiling 11.093 s 440.034 ms (4.1%)
gantt
    title petclinic - break down per module: candidate=1.47.0-SNAPSHOT~37ca729ec6, baseline=1.48.0-SNAPSHOT~0d9c7d2b08

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (726.255 ms) : 0, 726255
BytebuddyAgent [candidate] (730.777 ms) : 0, 730777
GlobalTracer [baseline] (246.63 ms) : 0, 246630
GlobalTracer [candidate] (248.831 ms) : 0, 248831
AppSec [baseline] (57.467 ms) : 0, 57467
AppSec [candidate] (59.846 ms) : 0, 59846
Remote Config [baseline] (1.095 ms) : 0, 1095
Remote Config [candidate] (694.05 µs) : 0, 694
Telemetry [baseline] (16.479 ms) : 0, 16479
Telemetry [candidate] (16.828 ms) : 0, 16828
section appsec
BytebuddyAgent [baseline] (753.875 ms) : 0, 753875
BytebuddyAgent [candidate] (749.032 ms) : 0, 749032
GlobalTracer [baseline] (247.323 ms) : 0, 247323
GlobalTracer [candidate] (245.193 ms) : 0, 245193
AppSec [baseline] (183.127 ms) : 0, 183127
AppSec [candidate] (182.919 ms) : 0, 182919
Remote Config [baseline] (694.402 µs) : 0, 694
Remote Config [candidate] (680.914 µs) : 0, 681
Telemetry [baseline] (8.542 ms) : 0, 8542
Telemetry [candidate] (8.501 ms) : 0, 8501
IAST [baseline] (23.643 ms) : 0, 23643
IAST [candidate] (23.714 ms) : 0, 23714
section iast
BytebuddyAgent [baseline] (858.461 ms) : 0, 858461
BytebuddyAgent [candidate] (849.981 ms) : 0, 849981
GlobalTracer [baseline] (238.364 ms) : 0, 238364
GlobalTracer [candidate] (237.792 ms) : 0, 237792
AppSec [baseline] (59.026 ms) : 0, 59026
AppSec [candidate] (61.197 ms) : 0, 61197
Remote Config [baseline] (678.412 µs) : 0, 678
Remote Config [candidate] (1.292 ms) : 0, 1292
Telemetry [baseline] (9.072 ms) : 0, 9072
Telemetry [candidate] (8.949 ms) : 0, 8949
IAST [baseline] (24.948 ms) : 0, 24948
IAST [candidate] (24.108 ms) : 0, 24108
section profiling
BytebuddyAgent [baseline] (719.099 ms) : 0, 719099
BytebuddyAgent [candidate] (737.905 ms) : 0, 737905
GlobalTracer [baseline] (366.632 ms) : 0, 366632
GlobalTracer [candidate] (367.094 ms) : 0, 367094
AppSec [baseline] (56.77 ms) : 0, 56770
AppSec [candidate] (57.415 ms) : 0, 57415
Remote Config [baseline] (1.059 ms) : 0, 1059
Remote Config [candidate] (901.218 µs) : 0, 901
Telemetry [baseline] (9.715 ms) : 0, 9715
Telemetry [candidate] (9.559 ms) : 0, 9559
ProfilingAgent [baseline] (99.299 ms) : 0, 99299
ProfilingAgent [candidate] (97.652 ms) : 0, 97652
Profiling [baseline] (99.324 ms) : 0, 99324
Profiling [candidate] (97.678 ms) : 0, 97678
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-03-12T21:23:19 2025-03-12T21:31:04
git_branch master sarahchen6/add-timeout-support
git_commit_date 1741806942 1741813893
git_commit_sha 0d9c7d2 37ca729
release_version 1.48.0-SNAPSHOT~0d9c7d2b08 1.47.0-SNAPSHOT~37ca729ec6
start_time 2025-03-12T21:23:05 2025-03-12T21:30:50
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1741815465 1741815465
ci_job_id 845601632 845601632
ci_pipeline_id 58642057 58642057
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-99grvqzx-project-304-concurrent-1-42s7smrp 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-99grvqzx-project-304-concurrent-1-42s7smrp 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.47.0-SNAPSHOT~37ca729ec6, baseline=1.48.0-SNAPSHOT~0d9c7d2b08
    dateFormat X
    axisFormat %s
section baseline
no_agent (380.087 µs) : 360, 400
.   : milestone, 380,
iast (512.053 µs) : 490, 534
.   : milestone, 512,
iast_FULL (735.825 µs) : 714, 758
.   : milestone, 736,
iast_GLOBAL (573.12 µs) : 551, 595
.   : milestone, 573,
iast_HARDCODED_SECRET_DISABLED (519.958 µs) : 498, 542
.   : milestone, 520,
iast_INACTIVE (471.344 µs) : 449, 494
.   : milestone, 471,
iast_TELEMETRY_OFF (501.543 µs) : 480, 523
.   : milestone, 502,
tracing (459.646 µs) : 439, 481
.   : milestone, 460,
section candidate
no_agent (380.227 µs) : 360, 400
.   : milestone, 380,
iast (515.888 µs) : 493, 539
.   : milestone, 516,
iast_FULL (731.016 µs) : 709, 753
.   : milestone, 731,
iast_GLOBAL (577.714 µs) : 553, 602
.   : milestone, 578,
iast_HARDCODED_SECRET_DISABLED (522.012 µs) : 500, 544
.   : milestone, 522,
iast_INACTIVE (471.827 µs) : 450, 494
.   : milestone, 472,
iast_TELEMETRY_OFF (504.305 µs) : 483, 526
.   : milestone, 504,
tracing (458.689 µs) : 438, 479
.   : milestone, 459,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 380.087 µs [360.165 µs, 400.008 µs] -
iast 512.053 µs [490.314 µs, 533.791 µs] 131.966 µs (34.7%)
iast_FULL 735.825 µs [713.865 µs, 757.785 µs] 355.738 µs (93.6%)
iast_GLOBAL 573.12 µs [551.205 µs, 595.035 µs] 193.033 µs (50.8%)
iast_HARDCODED_SECRET_DISABLED 519.958 µs [498.252 µs, 541.663 µs] 139.871 µs (36.8%)
iast_INACTIVE 471.344 µs [448.756 µs, 493.932 µs] 91.257 µs (24.0%)
iast_TELEMETRY_OFF 501.543 µs [479.802 µs, 523.284 µs] 121.456 µs (32.0%)
tracing 459.646 µs [438.767 µs, 480.525 µs] 79.559 µs (20.9%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 380.227 µs [360.213 µs, 400.241 µs] -
iast 515.888 µs [492.913 µs, 538.864 µs] 135.662 µs (35.7%)
iast_FULL 731.016 µs [709.068 µs, 752.965 µs] 350.789 µs (92.3%)
iast_GLOBAL 577.714 µs [553.43 µs, 601.998 µs] 197.487 µs (51.9%)
iast_HARDCODED_SECRET_DISABLED 522.012 µs [500.086 µs, 543.938 µs] 141.785 µs (37.3%)
iast_INACTIVE 471.827 µs [450.063 µs, 493.59 µs] 91.6 µs (24.1%)
iast_TELEMETRY_OFF 504.305 µs [482.508 µs, 526.102 µs] 124.078 µs (32.6%)
tracing 458.689 µs [438.078 µs, 479.3 µs] 78.462 µs (20.6%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.47.0-SNAPSHOT~37ca729ec6, baseline=1.48.0-SNAPSHOT~0d9c7d2b08
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.354 ms) : 1335, 1374
.   : milestone, 1354,
appsec (1.742 ms) : 1718, 1765
.   : milestone, 1742,
appsec_no_iast (1.751 ms) : 1727, 1775
.   : milestone, 1751,
code_origins (1.697 ms) : 1671, 1724
.   : milestone, 1697,
iast (1.514 ms) : 1490, 1538
.   : milestone, 1514,
profiling (1.526 ms) : 1503, 1549
.   : milestone, 1526,
tracing (1.495 ms) : 1471, 1519
.   : milestone, 1495,
section candidate
no_agent (1.365 ms) : 1346, 1385
.   : milestone, 1365,
appsec (1.757 ms) : 1733, 1781
.   : milestone, 1757,
appsec_no_iast (1.784 ms) : 1760, 1808
.   : milestone, 1784,
code_origins (1.685 ms) : 1652, 1718
.   : milestone, 1685,
iast (1.522 ms) : 1499, 1546
.   : milestone, 1522,
profiling (1.521 ms) : 1496, 1545
.   : milestone, 1521,
tracing (1.508 ms) : 1484, 1533
.   : milestone, 1508,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.354 ms [1.335 ms, 1.374 ms] -
appsec 1.742 ms [1.718 ms, 1.765 ms] 387.267 µs (28.6%)
appsec_no_iast 1.751 ms [1.727 ms, 1.775 ms] 396.309 µs (29.3%)
code_origins 1.697 ms [1.671 ms, 1.724 ms] 342.827 µs (25.3%)
iast 1.514 ms [1.49 ms, 1.538 ms] 159.467 µs (11.8%)
profiling 1.526 ms [1.503 ms, 1.549 ms] 171.309 µs (12.6%)
tracing 1.495 ms [1.471 ms, 1.519 ms] 140.819 µs (10.4%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.365 ms [1.346 ms, 1.385 ms] -
appsec 1.757 ms [1.733 ms, 1.781 ms] 391.368 µs (28.7%)
appsec_no_iast 1.784 ms [1.76 ms, 1.808 ms] 419.032 µs (30.7%)
code_origins 1.685 ms [1.652 ms, 1.718 ms] 319.8 µs (23.4%)
iast 1.522 ms [1.499 ms, 1.546 ms] 157.153 µs (11.5%)
profiling 1.521 ms [1.496 ms, 1.545 ms] 155.238 µs (11.4%)
tracing 1.508 ms [1.484 ms, 1.533 ms] 143.03 µs (10.5%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master sarahchen6/add-timeout-support
git_commit_date 1741806942 1741813893
git_commit_sha 0d9c7d2 37ca729
release_version 1.48.0-SNAPSHOT~0d9c7d2b08 1.47.0-SNAPSHOT~37ca729ec6
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1741815996 1741815996
ci_job_id 845601633 845601633
ci_pipeline_id 58642057 58642057
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-titz-rmh-project-304-concurrent-0-b7y9qq45 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-titz-rmh-project-304-concurrent-0-b7y9qq45 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 10 metrics, 2 unstable metrics.

Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.47.0-SNAPSHOT~37ca729ec6, baseline=1.48.0-SNAPSHOT~0d9c7d2b08
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.472 ms) : 1461, 1484
.   : milestone, 1472,
appsec (2.35 ms) : 2306, 2394
.   : milestone, 2350,
iast (2.132 ms) : 2076, 2188
.   : milestone, 2132,
iast_GLOBAL (2.169 ms) : 2112, 2225
.   : milestone, 2169,
profiling (1.974 ms) : 1931, 2018
.   : milestone, 1974,
tracing (1.955 ms) : 1913, 1998
.   : milestone, 1955,
section candidate
no_agent (1.475 ms) : 1463, 1486
.   : milestone, 1475,
appsec (2.36 ms) : 2317, 2403
.   : milestone, 2360,
iast (2.129 ms) : 2074, 2184
.   : milestone, 2129,
iast_GLOBAL (3.341 ms) : 3117, 3566
.   : milestone, 3341,
profiling (1.961 ms) : 1918, 2005
.   : milestone, 1961,
tracing (3.067 ms) : 2859, 3276
.   : milestone, 3067,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.472 ms [1.461 ms, 1.484 ms] -
appsec 2.35 ms [2.306 ms, 2.394 ms] 877.631 µs (59.6%)
iast 2.132 ms [2.076 ms, 2.188 ms] 660.223 µs (44.8%)
iast_GLOBAL 2.169 ms [2.112 ms, 2.225 ms] 696.417 µs (47.3%)
profiling 1.974 ms [1.931 ms, 2.018 ms] 502.229 µs (34.1%)
tracing 1.955 ms [1.913 ms, 1.998 ms] 483.371 µs (32.8%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.475 ms [1.463 ms, 1.486 ms] -
appsec 2.36 ms [2.317 ms, 2.403 ms] 885.154 µs (60.0%)
iast 2.129 ms [2.074 ms, 2.184 ms] 654.264 µs (44.4%)
iast_GLOBAL 3.341 ms [3.117 ms, 3.566 ms] 1.866 ms (126.5%)
profiling 1.961 ms [1.918 ms, 2.005 ms] 486.516 µs (33.0%)
tracing 3.067 ms [2.859 ms, 3.276 ms] 1.592 ms (108.0%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.47.0-SNAPSHOT~37ca729ec6, baseline=1.48.0-SNAPSHOT~0d9c7d2b08
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.492 s) : 15492000, 15492000
.   : milestone, 15492000,
appsec (14.993 s) : 14993000, 14993000
.   : milestone, 14993000,
iast (18.791 s) : 18791000, 18791000
.   : milestone, 18791000,
iast_GLOBAL (18.237 s) : 18237000, 18237000
.   : milestone, 18237000,
profiling (15.145 s) : 15145000, 15145000
.   : milestone, 15145000,
tracing (14.957 s) : 14957000, 14957000
.   : milestone, 14957000,
section candidate
no_agent (14.952 s) : 14952000, 14952000
.   : milestone, 14952000,
appsec (14.976 s) : 14976000, 14976000
.   : milestone, 14976000,
iast (18.879 s) : 18879000, 18879000
.   : milestone, 18879000,
iast_GLOBAL (17.715 s) : 17715000, 17715000
.   : milestone, 17715000,
profiling (14.977 s) : 14977000, 14977000
.   : milestone, 14977000,
tracing (15.069 s) : 15069000, 15069000
.   : milestone, 15069000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.492 s [15.492 s, 15.492 s] -
appsec 14.993 s [14.993 s, 14.993 s] -499.0 ms (-3.2%)
iast 18.791 s [18.791 s, 18.791 s] 3.299 s (21.3%)
iast_GLOBAL 18.237 s [18.237 s, 18.237 s] 2.745 s (17.7%)
profiling 15.145 s [15.145 s, 15.145 s] -347.0 ms (-2.2%)
tracing 14.957 s [14.957 s, 14.957 s] -535.0 ms (-3.5%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.952 s [14.952 s, 14.952 s] -
appsec 14.976 s [14.976 s, 14.976 s] 24.0 ms (0.2%)
iast 18.879 s [18.879 s, 18.879 s] 3.927 s (26.3%)
iast_GLOBAL 17.715 s [17.715 s, 17.715 s] 2.763 s (18.5%)
profiling 14.977 s [14.977 s, 14.977 s] 25.0 ms (0.2%)
tracing 15.069 s [15.069 s, 15.069 s] 117.0 ms (0.8%)

@sarahchen6 sarahchen6 force-pushed the sarahchen6/add-timeout-support branch 2 times, most recently from 75d65cd to c239caf Compare January 31, 2025 22:32
@sarahchen6 sarahchen6 force-pushed the sarahchen6/add-timeout-support branch from c239caf to eb44a61 Compare February 6, 2025 21:50
@DataDog DataDog deleted a comment from datadog-datadog-prod-us1 bot Feb 6, 2025
@sarahchen6 sarahchen6 changed the title Add timeout support to PoC for adding JDK's built-in support for Unix Domain Sockets on Java 16+ Add JDK built-in support for Unix Domain Sockets on Java 16+ Feb 6, 2025
@DataDog DataDog deleted a comment from datadog-datadog-prod-us1 bot Feb 6, 2025
@sarahchen6 sarahchen6 changed the title Add JDK built-in support for Unix Domain Sockets on Java 16+ Add JDK built-in support for UDS on Java 16+ Feb 6, 2025
@sarahchen6 sarahchen6 force-pushed the sarahchen6/add-timeout-support branch 4 times, most recently from fb5153f to d97d7cb Compare February 10, 2025 20:06
@sarahchen6 sarahchen6 force-pushed the sarahchen6/add-timeout-support branch 2 times, most recently from 0e2ae02 to f82795d Compare February 20, 2025 21:56
@sarahchen6 sarahchen6 force-pushed the sarahchen6/add-timeout-support branch 5 times, most recently from 38b9154 to 6ba9ab7 Compare February 25, 2025 23:01
@sarahchen6 sarahchen6 force-pushed the sarahchen6/add-timeout-support branch 2 times, most recently from 778dd3d to 412e4d3 Compare February 26, 2025 04:45
@sarahchen6 sarahchen6 force-pushed the sarahchen6/add-timeout-support branch from fb5eeaf to 305d9af Compare March 4, 2025 22:05
}

return new InputStream() {
private final ByteBuffer buffer = ByteBuffer.allocate(256);
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Is there a better number than 256 for allocation?

Copy link
Contributor

Choose a reason for hiding this comment

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

I would suggest 8192 as a reasonable default for the socket buffer size.

In a followup PR we can consider overriding the setSendBufferSize and setReceiveBufferSize Socket methods and map them to call setOption on the SocketChannel using SO_SNDBUF and SO_RCVBUF respectively.

If you save any set values as a class member then you could also implement the getReceiveBufferSize / getSendBufferSize Socket methods. That would also let you set the stream buffer size to the maximum of these two sizes (defaulting to 8192 if neither are set.)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Following up on this with #8692 :)

@sarahchen6 sarahchen6 marked this pull request as ready for review March 6, 2025 18:20
@sarahchen6 sarahchen6 requested a review from a team as a code owner March 6, 2025 18:20
@sarahchen6 sarahchen6 requested review from ygree and mcculls March 6, 2025 18:20
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 - just some minor comments

We should also do some benchmarking before merging

@sarahchen6 sarahchen6 requested a review from mcculls March 13, 2025 14:09
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.

Nice work!

@sarahchen6 sarahchen6 merged commit cbdc404 into master Mar 17, 2025
216 checks passed
@sarahchen6 sarahchen6 deleted the sarahchen6/add-timeout-support branch March 17, 2025 13:27
@github-actions github-actions bot added this to the 1.48.0 milestone Mar 17, 2025
mtoffl01 pushed a commit that referenced this pull request Mar 24, 2025
* Use the JDK's built-in support for Unix Domain Sockets on Java 16+

* First draft of timeout test.

* Add server to test.

* Fix build.gradle file.

* Add debugging statements.

* Second draft of timeout test.

* Update getInputStream to use a selector.

* Clean code.

* Adjust dd-java-agent build.gradle.

* Revert dd-java-agent build.gradle change

* Revert another build.gradle change.

* Try specifying setSrcDirs.

* Try changing compatibility version.

* Revert previous two changes.

* Avoid implementation dependency for Java17.

* Make gradle dependency more specific and add testImplementation to socket-utils.

* Add synchronization to ensure that server starts before client connects.

* Try this...

* Add print statements.

* Add catch statement.

* Refactor getInputStream and getOutputStream.

* Address PR comments.

* Add test for when timeout is 0.

* Add config option.

---------

Co-authored-by: Stuart McCulloch <[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