-
Notifications
You must be signed in to change notification settings - Fork 300
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
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 45 metrics, 18 unstable metrics. Startup time reports for insecure-bankgantt
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
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
Startup time reports for petclinicgantt
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
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
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 13 metrics, 17 unstable metrics. Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.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,
Request duration reports for petclinicgantt
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,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 10 metrics, 2 unstable metrics. Execution time for tomcatgantt
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,
Execution time for biojavagantt
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,
|
75d65cd
to
c239caf
Compare
c239caf
to
eb44a61
Compare
utils/socket-utils/src/main/java17/datadog/common/socket/TunnelingJdkSocket.java
Outdated
Show resolved
Hide resolved
utils/socket-utils/src/main/java17/datadog/common/socket/TunnelingJdkSocket.java
Outdated
Show resolved
Hide resolved
utils/socket-utils/src/test/java/datadog/common/socket/TunnelingJdkSocketTest.java
Show resolved
Hide resolved
fb5153f
to
d97d7cb
Compare
0e2ae02
to
f82795d
Compare
38b9154
to
6ba9ab7
Compare
778dd3d
to
412e4d3
Compare
utils/socket-utils/src/main/java17/datadog/common/socket/TunnelingJdkSocket.java
Show resolved
Hide resolved
fb5eeaf
to
305d9af
Compare
} | ||
|
||
return new InputStream() { | ||
private final ByteBuffer buffer = ByteBuffer.allocate(256); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a better number than 256 for allocation?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Following up on this with #8692 :)
utils/socket-utils/src/main/java17/datadog/common/socket/TunnelingJdkSocket.java
Show resolved
Hide resolved
utils/socket-utils/src/main/java17/datadog/common/socket/TunnelingJdkSocket.java
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM - just some minor comments
We should also do some benchmarking before merging
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work!
* 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]>
| Package | Type | Package file | Manager | Update | Change | |---|---|---|---|---|---| | org.flywaydb.flyway | plugin | misk/gradle/libs.versions.toml | gradle | minor | `11.6.0` -> `11.7.0` | | [com.squareup.okio:okio-fakefilesystem](https://github.com/square/okio) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `3.10.2` -> `3.11.0` | | [com.squareup.okio:okio](https://github.com/square/okio) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `3.10.2` -> `3.11.0` | | [com.autonomousapps.dependency-analysis](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin) | plugin | misk/gradle/libs.versions.toml | gradle | minor | `2.15.0` -> `2.16.0` | | [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.47.3` -> `1.48.1` | | [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.47.3` -> `1.48.1` | | [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | --- ### Release Notes <details> <summary>square/okio (com.squareup.okio:okio-fakefilesystem)</summary> ### [`v3.11.0`](https://github.com/square/okio/blob/HEAD/CHANGELOG.md#Version-3110) *2025-04-09* - Fix: Clear the deflater's byte array reference - New: Faster implementation of `String.decodeHex()` on Kotlin/JS. - New: Declare `EXACTLY_ONCE` execution for blocks like `Closeable.use {}` and `FileSystem.read {}`. - Upgrade: \[Kotlin 2.1.20]\[kotlin\_2\_1\_20]. </details> <details> <summary>autonomousapps/dependency-analysis-android-gradle-plugin (com.autonomousapps.dependency-analysis)</summary> ### [`v2.16.0`](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/blob/HEAD/CHANGELOG.md#Version-2160) - \[Feat]: support `com.android.test` projects. - \[Feat]: support typesafe project accessors with opt-in. ```kotlin dependencyAnalysis { useTypesafeProjectAccessors(true) // false by default } ``` </details> <details> <summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary> ### [`v1.48.1`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.48.1): 1.48.1 ### Components #### Tracer internal logging - 🐛 Remove print line causing unnecessary logs ([#​8687](DataDog/dd-trace-java#8687) - [@​sarahchen6](https://github.com/sarahchen6)) ### [`v1.48.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.48.0): 1.48.0 ### Known Bugs > \[!NOTE] > If you are experiencing issues with spamming timeout logs, please update to the [latest version](https://github.com/DataDog/dd-trace-java/releases/latest) or set [JDK_SOCKET_ENABLED](https://github.com/DataDog/dd-trace-java/blob/33fc3c9a9b7cda3beda88b8b3e5224ae2b10764a/dd-trace-api/src/main/java/datadog/trace/api/config/GeneralConfig.java#L98) to false. ### Components #### Application Security Management (IAST) - ✨ Fix vulnerability location org.jose4j.lang.HashUtil ([#​8610](DataDog/dd-trace-java#8610) - [@​jandro996](https://github.com/jandro996)) - ✨ Fix weak randomness in oracle.ucp.util.OpaqueString ([#​8609](DataDog/dd-trace-java#8609) - [@​jandro996](https://github.com/jandro996)) - ✨ Fix weak hash false positive in oracle.security.o5logon.O5Logon ([#​8608](DataDog/dd-trace-java#8608) - [@​jandro996](https://github.com/jandro996)) - 🐛 Prevent before callsites targeting constructors in super calls ([#​8549](DataDog/dd-trace-java#8549) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### Application Security Management (WAF) - ✨ Update login events public SDK to V2 ([#​8620](DataDog/dd-trace-java#8620) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - 🐛 Send RASP LFI capability only when AppSec is statically enabled ([#​8573](DataDog/dd-trace-java#8573) - [@​jandro996](https://github.com/jandro996)) - ✨ Improve detection of missing request end events ([#​8510](DataDog/dd-trace-java#8510) - [@​smola](https://github.com/smola)) - 🧹 Remove remote configuration for API Security sampling rate ([#​8486](DataDog/dd-trace-java#8486) - [@​smola](https://github.com/smola)) - ✨ Add setUser to user monitoring SDK ([#​8482](DataDog/dd-trace-java#8482) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Add missing address for signup event ([#​8469](DataDog/dd-trace-java#8469) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Allow login events SDK to be used with appsec disabled ([#​8464](DataDog/dd-trace-java#8464) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Add support for endpoint discovery in spring mvc ([#​8352](DataDog/dd-trace-java#8352) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ New API Security sampling algorithm ([#​8178](DataDog/dd-trace-java#8178) - [@​ValentinZakharov](https://github.com/ValentinZakharov)) #### Build & Tooling - ✨ Add buffer size customizability to JDK UDS support ([#​8629](DataDog/dd-trace-java#8629) - [@​sarahchen6](https://github.com/sarahchen6)) - ✨ Add JDK built-in support for UDS on Java 16+ ([#​8314](DataDog/dd-trace-java#8314) - [@​sarahchen6](https://github.com/sarahchen6)) #### Configuration at Runtime - 🐛 Send RASP LFI capability only when AppSec is statically enabled ([#​8573](DataDog/dd-trace-java#8573) - [@​jandro996](https://github.com/jandro996)) #### Continuous Integration Visibility - 🐛 Prevent double reporting of Scalatest events when using SBT with test forking ([#​8682](DataDog/dd-trace-java#8682) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Shutdown CI Visibility test event handlers before tracer ([#​8677](DataDog/dd-trace-java#8677) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Do not apply JUnit 4 instrumentation to MUnit runners ([#​8675](DataDog/dd-trace-java#8675), [#​8683](DataDog/dd-trace-java#8683) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Remove error log when source path resolution fails on isModified check ([#​8663](DataDog/dd-trace-java#8663) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Implement tests reordering for JUnit 4 ([#​8650](DataDog/dd-trace-java#8650) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - 🐛 Set default Attempt to Fix retries if none provided from the backend ([#​8615](DataDog/dd-trace-java#8615) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Allow to manually set PR info ([#​8566](DataDog/dd-trace-java#8566) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Fix Test Optimization init when repo root cannot be determined ([#​8533](DataDog/dd-trace-java#8533) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Add capabilities tagging ([#​8499](DataDog/dd-trace-java#8499), [#​8540](DataDog/dd-trace-java#8540) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) #### Crash tracking - 🐛 Remove dependency on bash from crash/oome uploder scripts ([#​8652](DataDog/dd-trace-java#8652) - [@​jbachorik](https://github.com/jbachorik)) #### Data Streams Monitoring - ✨ e2e pipeline configuration when data jobs is enabled ([#​8553](DataDog/dd-trace-java#8553) - [@​kr-igor](https://github.com/kr-igor)) #### Dynamic Instrumentation - 🐛 Fix In-Product when config is empty ([#​8679](DataDog/dd-trace-java#8679) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Add support for filtering shaded third-party libs ([#​8612](DataDog/dd-trace-java#8612) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Add In-Product Enablement ([#​8587](DataDog/dd-trace-java#8587) - [@​jpbempel](https://github.com/jpbempel)) - ✨⚡ Reduce footprint of SourceFile tracking ([#​8524](DataDog/dd-trace-java#8524) - [@​jpbempel](https://github.com/jpbempel)) - ✨⚡ Optimize the SourceFile tracking ([#​8520](DataDog/dd-trace-java#8520) - [@​jpbempel](https://github.com/jpbempel)) #### OpenTracing - 🧹 Remove activeScope() use in OpenTracing shim ([#​8478](DataDog/dd-trace-java#8478) - [@​mcculls](https://github.com/mcculls)) #### Profiling - ✨ Add profiler env check command to AgentCLI ([#​8671](DataDog/dd-trace-java#8671) - [@​jbachorik](https://github.com/jbachorik)) - ✨ Bump ddprof to 1.23.0 ([#​8668](DataDog/dd-trace-java#8668) - [@​jbachorik](https://github.com/jbachorik)) - Fix a crash related to ElfParser::loadSymbolTable ([#​191](DataDog/dd-trace-java#191)) by [@​yanglong1010](https://github.com/yanglong1010) in DataDog/java-profiler#192 - Unwind String.indexOf intrinsic on AArch64 by [@​MattAlp](https://github.com/MattAlp) in DataDog/java-profiler#193 - Fix Java 24 support by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#194 - A set of fixes related to clang, aarch64 and musl pecularities of vmstructs stack unwinder by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#199 - 🐛 Remove process information from JFR recording ([#​8661](DataDog/dd-trace-java#8661) - [@​r1viollet](https://github.com/r1viollet)) - 🐛 Make TempLocationManager USER aware ([#​8605](DataDog/dd-trace-java#8605) - [@​jbachorik](https://github.com/jbachorik)) - ✨ Extract git tags from embedded git.properties and datadog_git.properties ([#​8561](DataDog/dd-trace-java#8561) - [@​wmouchere](https://github.com/wmouchere)) #### Telemetry - 🐛 Fix appsec.rasp.error and appsec.waf.error telemetry metrics ([#​8624](DataDog/dd-trace-java#8624) - [@​jandro996](https://github.com/jandro996)) - ✨ Create metric: appsec.rasp.rule.skipped ([#​8618](DataDog/dd-trace-java#8618) - [@​jandro996](https://github.com/jandro996)) - ✨ Extract git tags from embedded git.properties and datadog_git.properties ([#​8561](DataDog/dd-trace-java#8561) - [@​wmouchere](https://github.com/wmouchere)) #### Testing - 🧹 Simplify ssi tests one-pipeline ([#​8558](DataDog/dd-trace-java#8558) - [@​robertomonteromiguel](https://github.com/robertomonteromiguel)) - ✨ Add smoke tests for java's concurrent API ([#​8438](DataDog/dd-trace-java#8438) - [@​sarahchen6](https://github.com/sarahchen6)) #### Trace context propagation - ✨ Adding Support for `TRACE_PROPAGATION_BEHAVIOR_EXTRACT` ([#​8535](DataDog/dd-trace-java#8535) - [@​mhlidd](https://github.com/mhlidd)) #### Tracer core - 🐛 Ensure shaded helpers have unique names ([#​8559](DataDog/dd-trace-java#8559) - [@​amarziali](https://github.com/amarziali)) - ✨ Support common config sources for user-provided git info ([#​8547](DataDog/dd-trace-java#8547) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Make the default config sources more robust when a security manager is installed ([#​8544](DataDog/dd-trace-java#8544) - [@​mcculls](https://github.com/mcculls)) - ✨ Support targeting services with configurations in stable configuration file ([#​8526](DataDog/dd-trace-java#8526) - [@​mtoffl01](https://github.com/mtoffl01)) - ✨ Add new parser for `DD_TAGS` and prioritizing `DD_SERVICE` ([#​8296](DataDog/dd-trace-java#8296) - [@​mhlidd](https://github.com/mhlidd)) #### Tracer internal logging - 🐛 Add missing debug log for the cloudPayloadTaggingServices config ([#​8600](DataDog/dd-trace-java#8600) - [@​ygree](https://github.com/ygree)) - ✨ Add the possibility to output the logs of the Java tracer in JSON ([#​8083](DataDog/dd-trace-java#8083) - [@​cecile75](https://github.com/cecile75)) #### Tracer public API - ✨ Introducing `DD_TRACE_EXPERIMENTAL_FEATURES_ENABLED` Config ([#​8536](DataDog/dd-trace-java#8536) - [@​mhlidd](https://github.com/mhlidd)) - ✨ Config Consistency Round 2 ([#​8489](DataDog/dd-trace-java#8489) - [@​mhlidd](https://github.com/mhlidd)) ### Instrumentations #### - 🐛 Fix NPE in getMdcCopy of LoggingEventInstrumentation ([#​8599](DataDog/dd-trace-java#8599) - [@​ygree](https://github.com/ygree)) #### Apache Spark instrumentation - ✨ Instrument Runtime.exit() to finish spark application spans ([#​8572](DataDog/dd-trace-java#8572) - [@​paul-laffon-dd](https://github.com/paul-laffon-dd)) - ✨ Configure OpenLineage if present in Spark instrumentation ([#​8541](DataDog/dd-trace-java#8541) - [@​mobuchowski](https://github.com/mobuchowski)) #### Armeria Instrumentation - ✨ Support armeria grpc 1.32.3 ([#​8606](DataDog/dd-trace-java#8606) - [@​github-actions](https://github.com/github-actions)\[bot]) #### AWS DynamoDB Instrumentation - ✨ Create DynamoDB instrumentation + add span pointers for `updateItem` and `deleteItem` ([#​8490](DataDog/dd-trace-java#8490) - [@​nhulston](https://github.com/nhulston)) #### AWS SDK instrumentation - ✨ Add DynamoDB in DEFAULT_TRACE_CLOUD_PAYLOAD_TAGGING_SERVICES ([#​8595](DataDog/dd-trace-java#8595) - [@​joeyzhao2018](https://github.com/joeyzhao2018)) #### Azure Functions instrumentation - ✨ Enable tracer computed trace metrics by default for Azure Functions ([#​8518](DataDog/dd-trace-java#8518) - [@​duncanpharvey](https://github.com/duncanpharvey)) - 💡 Add azure-functions instrumentation ([#​8432](DataDog/dd-trace-java#8432) - [@​duncanpharvey](https://github.com/duncanpharvey)) #### Core Java language instrumentation - 🐛 Fix ForkJoinPool.execute() instrumentation on Java 21+ ([#​8560](DataDog/dd-trace-java#8560) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) #### Eclipse Vert.x instrumentation - ✨ Add vertx postgresql client instrumentation ([#​8471](DataDog/dd-trace-java#8471) - [@​vandonr](https://github.com/vandonr) - thanks for the contribution!) #### Kafka instrumentation - ✨ Support and test kafka-clients 4 ([#​8581](DataDog/dd-trace-java#8581) - [@​amarziali](https://github.com/amarziali)) #### Kotlin instrumentation - ✨ Avoid disconnected traces when using Kotlin flowOn ([#​8651](DataDog/dd-trace-java#8651) - [@​mcculls](https://github.com/mcculls)) #### OpenTelemetry instrumentation - 🧹 Migrate OtelContext wrapper to new internal Context API ([#​8645](DataDog/dd-trace-java#8645) - [@​mcculls](https://github.com/mcculls)) #### Spring instrumentation - 🐛 Support CompletableFuture on spring webmvc controllers ([#​8659](DataDog/dd-trace-java#8659) - [@​amarziali](https://github.com/amarziali)) - ✨ Add support for endpoint discovery in spring mvc ([#​8352](DataDog/dd-trace-java#8352) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### WebSocket Instrumentation - ✨ Instrument Jetty websocket pojo ([#​8562](DataDog/dd-trace-java#8562) - [@​amarziali](https://github.com/amarziali)) - 💡 Instrument Java Websocket API (JSR356) ([#​8440](DataDog/dd-trace-java#8440) - [@​amarziali](https://github.com/amarziali)) #### All other instrumentations - ✨ Introduce cache for peer.hostname lookup ([#​8601](DataDog/dd-trace-java#8601) - [@​mcculls](https://github.com/mcculls)) - ✨ Support pekko http 1.1 ([#​8532](DataDog/dd-trace-java#8532) - [@​amarziali](https://github.com/amarziali)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am every weekday" in timezone Australia/Melbourne, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). GitOrigin-RevId: 331314f71acaced3adc75ea5d7e855c248d593fc
What Does This Do
This PR 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
type:
and (comp:
orinst:
) labels in addition to any usefull labelsclose
,fix
or any linking keywords when referencing an issue.Use
solves
instead, and assign the PR milestone to the issueJira ticket: LANGPLAT-300