Skip to content

Conversation

amarziali
Copy link
Contributor

@amarziali amarziali commented Feb 24, 2025

What Does This Do

Instrumenter module for javax.websocket and jakarta.websocket APIs. Supports both client and server API.

Provides spans for:

  • Message send (websocket.send)
  • Message receive (websocket.receive)
  • Connection close (websocket.close)

Tested with

  • Tyrus (reference implementation)
  • Tomcat 8+
  • Jetty 9+
  • Undertow
  • Spring boot via WebsocketHandler (tomcat based. netty websockets are not yet implemented since not implementing this API)

Limitations

  • POJO based endpoints are not supported in jetty since jetty does not build adapters on top of Endpoint class but direct calls annotated methods via MethodHandler. An additional work is still needed to support them
  • Client API implementations not completely tested

Motivation

Additional Notes

Contributor Checklist

Jira ticket: AIDM-535

@pr-commenter
Copy link

pr-commenter bot commented Feb 24, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master andrea.marziali/jsr356
git_commit_date 1741601078 1741602010
git_commit_sha 01d3277 978afb6
release_version 1.48.0-SNAPSHOT~01d3277601 1.48.0-SNAPSHOT~978afb6bc8
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1741604454 1741604454
ci_job_id 839711790 839711790
ci_pipeline_id 58248718 58248718
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zhk6exes-project-304-concurrent-0-8ycdqizx 6.8.0-1023-aws #25~22.04.1-Ubuntu SMP Tue Jan 28 12:51:22 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zhk6exes-project-304-concurrent-0-8ycdqizx 6.8.0-1023-aws #25~22.04.1-Ubuntu SMP Tue Jan 28 12:51:22 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 56 metrics, 7 unstable metrics.

Startup time reports for petclinic
gantt title petclinic - global startup overhead: candidate=1.48.0-SNAPSHOT~978afb6bc8, baseline=1.48.0-SNAPSHOT~01d3277601 dateFormat X axisFormat %s section tracing Agent [baseline] (1.049 s) : 0, 1049328 Total [baseline] (10.492 s) : 0, 10492142 Agent [candidate] (1.046 s) : 0, 1046224 Total [candidate] (10.429 s) : 0, 10428702 section appsec Agent [baseline] (1.188 s) : 0, 1188332 Total [baseline] (10.716 s) : 0, 10715651 Agent [candidate] (1.186 s) : 0, 1185783 Total [candidate] (10.735 s) : 0, 10734597 section iast Agent [baseline] (1.194 s) : 0, 1193895 Total [baseline] (10.973 s) : 0, 10973498 Agent [candidate] (1.171 s) : 0, 1171062 Total [candidate] (11.078 s) : 0, 11078275 section profiling Agent [baseline] (1.263 s) : 0, 1262744 Total [baseline] (10.844 s) : 0, 10844474 Agent [candidate] (1.265 s) : 0, 1265263 Total [candidate] (10.81 s) : 0, 10809511 
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.049 s -
Agent appsec 1.188 s 139.004 ms (13.2%)
Agent iast 1.194 s 144.567 ms (13.8%)
Agent profiling 1.263 s 213.416 ms (20.3%)
Total tracing 10.492 s -
Total appsec 10.716 s 223.509 ms (2.1%)
Total iast 10.973 s 481.356 ms (4.6%)
Total profiling 10.844 s 352.332 ms (3.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.046 s -
Agent appsec 1.186 s 139.559 ms (13.3%)
Agent iast 1.171 s 124.838 ms (11.9%)
Agent profiling 1.265 s 219.039 ms (20.9%)
Total tracing 10.429 s -
Total appsec 10.735 s 305.895 ms (2.9%)
Total iast 11.078 s 649.573 ms (6.2%)
Total profiling 10.81 s 380.809 ms (3.7%)
gantt title petclinic - break down per module: candidate=1.48.0-SNAPSHOT~978afb6bc8, baseline=1.48.0-SNAPSHOT~01d3277601 dateFormat X axisFormat %s section tracing BytebuddyAgent [baseline] (723.37 ms) : 0, 723370 BytebuddyAgent [candidate] (723.217 ms) : 0, 723217 GlobalTracer [baseline] (240.971 ms) : 0, 240971 GlobalTracer [candidate] (239.704 ms) : 0, 239704 AppSec [baseline] (55.333 ms) : 0, 55333 AppSec [candidate] (55.422 ms) : 0, 55422 Remote Config [baseline] (716.565 µs) : 0, 717 Remote Config [candidate] (703.652 µs) : 0, 704 Telemetry [baseline] (13.944 ms) : 0, 13944 Telemetry [candidate] (12.231 ms) : 0, 12231 section appsec BytebuddyAgent [baseline] (738.995 ms) : 0, 738995 BytebuddyAgent [candidate] (738.375 ms) : 0, 738375 GlobalTracer [baseline] (237.366 ms) : 0, 237366 GlobalTracer [candidate] (236.553 ms) : 0, 236553 AppSec [baseline] (176.939 ms) : 0, 176939 AppSec [candidate] (176.113 ms) : 0, 176113 Remote Config [baseline] (670.97 µs) : 0, 671 Remote Config [candidate] (682.14 µs) : 0, 682 Telemetry [baseline] (8.665 ms) : 0, 8665 Telemetry [candidate] (8.38 ms) : 0, 8380 IAST [baseline] (21.606 ms) : 0, 21606 IAST [candidate] (21.475 ms) : 0, 21475 section iast BytebuddyAgent [baseline] (855.13 ms) : 0, 855130 BytebuddyAgent [candidate] (837.088 ms) : 0, 837088 GlobalTracer [baseline] (233.431 ms) : 0, 233431 GlobalTracer [candidate] (230.387 ms) : 0, 230387 AppSec [baseline] (57.283 ms) : 0, 57283 AppSec [candidate] (55.888 ms) : 0, 55888 Remote Config [baseline] (629.959 µs) : 0, 630 Remote Config [candidate] (631.118 µs) : 0, 631 Telemetry [baseline] (8.833 ms) : 0, 8833 Telemetry [candidate] (8.768 ms) : 0, 8768 IAST [baseline] (23.365 ms) : 0, 23365 IAST [candidate] (23.383 ms) : 0, 23383 section profiling ProfilingAgent [baseline] (97.28 ms) : 0, 97280 ProfilingAgent [candidate] (96.65 ms) : 0, 96650 BytebuddyAgent [baseline] (709.767 ms) : 0, 709767 BytebuddyAgent [candidate] (712.628 ms) : 0, 712628 GlobalTracer [baseline] (350.423 ms) : 0, 350423 GlobalTracer [candidate] (351.717 ms) : 0, 351717 AppSec [baseline] (55.1 ms) : 0, 55100 AppSec [candidate] (54.081 ms) : 0, 54081 Remote Config [baseline] (688.02 µs) : 0, 688 Remote Config [candidate] (672.501 µs) : 0, 673 Telemetry [baseline] (9.001 ms) : 0, 9001 Telemetry [candidate] (8.954 ms) : 0, 8954 Profiling [baseline] (97.305 ms) : 0, 97305 Profiling [candidate] (96.677 ms) : 0, 96677 
Loading
Startup time reports for insecure-bank
gantt title insecure-bank - global startup overhead: candidate=1.48.0-SNAPSHOT~978afb6bc8, baseline=1.48.0-SNAPSHOT~01d3277601 dateFormat X axisFormat %s section tracing Agent [baseline] (1.04 s) : 0, 1039824 Total [baseline] (8.662 s) : 0, 8661913 Agent [candidate] (1.046 s) : 0, 1046273 Total [candidate] (8.697 s) : 0, 8696938 section iast Agent [baseline] (1.173 s) : 0, 1172608 Total [baseline] (9.221 s) : 0, 9220718 Agent [candidate] (1.177 s) : 0, 1176620 Total [candidate] (9.26 s) : 0, 9259802 section iast_HARDCODED_SECRET_DISABLED Agent [baseline] (1.175 s) : 0, 1174887 Total [baseline] (9.221 s) : 0, 9221237 Agent [candidate] (1.173 s) : 0, 1173015 Total [candidate] (9.152 s) : 0, 9151745 section iast_TELEMETRY_OFF Agent [baseline] (1.176 s) : 0, 1176153 Total [baseline] (9.239 s) : 0, 9238611 Agent [candidate] (1.176 s) : 0, 1175518 Total [candidate] (9.257 s) : 0, 9256836 
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.04 s -
Agent iast 1.173 s 132.784 ms (12.8%)
Agent iast_HARDCODED_SECRET_DISABLED 1.175 s 135.063 ms (13.0%)
Agent iast_TELEMETRY_OFF 1.176 s 136.329 ms (13.1%)
Total tracing 8.662 s -
Total iast 9.221 s 558.805 ms (6.5%)
Total iast_HARDCODED_SECRET_DISABLED 9.221 s 559.325 ms (6.5%)
Total iast_TELEMETRY_OFF 9.239 s 576.699 ms (6.7%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.046 s -
Agent iast 1.177 s 130.347 ms (12.5%)
Agent iast_HARDCODED_SECRET_DISABLED 1.173 s 126.742 ms (12.1%)
Agent iast_TELEMETRY_OFF 1.176 s 129.245 ms (12.4%)
Total tracing 8.697 s -
Total iast 9.26 s 562.864 ms (6.5%)
Total iast_HARDCODED_SECRET_DISABLED 9.152 s 454.807 ms (5.2%)
Total iast_TELEMETRY_OFF 9.257 s 559.898 ms (6.4%)
gantt title insecure-bank - break down per module: candidate=1.48.0-SNAPSHOT~978afb6bc8, baseline=1.48.0-SNAPSHOT~01d3277601 dateFormat X axisFormat %s section tracing BytebuddyAgent [baseline] (717.941 ms) : 0, 717941 BytebuddyAgent [candidate] (722.869 ms) : 0, 722869 GlobalTracer [baseline] (239.692 ms) : 0, 239692 GlobalTracer [candidate] (239.184 ms) : 0, 239184 AppSec [baseline] (55.373 ms) : 0, 55373 AppSec [candidate] (55.074 ms) : 0, 55074 Remote Config [baseline] (700.15 µs) : 0, 700 Remote Config [candidate] (696.743 µs) : 0, 697 Telemetry [baseline] (11.331 ms) : 0, 11331 Telemetry [candidate] (13.523 ms) : 0, 13523 section iast BytebuddyAgent [baseline] (838.149 ms) : 0, 838149 BytebuddyAgent [candidate] (841.495 ms) : 0, 841495 GlobalTracer [baseline] (230.583 ms) : 0, 230583 GlobalTracer [candidate] (231.352 ms) : 0, 231352 IAST [baseline] (22.82 ms) : 0, 22820 IAST [candidate] (23.568 ms) : 0, 23568 AppSec [baseline] (56.804 ms) : 0, 56804 AppSec [candidate] (56.015 ms) : 0, 56015 Remote Config [baseline] (616.007 µs) : 0, 616 Remote Config [candidate] (625.884 µs) : 0, 626 Telemetry [baseline] (8.726 ms) : 0, 8726 Telemetry [candidate] (8.716 ms) : 0, 8716 section iast_HARDCODED_SECRET_DISABLED BytebuddyAgent [baseline] (837.443 ms) : 0, 837443 BytebuddyAgent [candidate] (838.654 ms) : 0, 838654 GlobalTracer [baseline] (232.264 ms) : 0, 232264 GlobalTracer [candidate] (230.689 ms) : 0, 230689 IAST [baseline] (23.353 ms) : 0, 23353 IAST [candidate] (22.966 ms) : 0, 22966 AppSec [baseline] (57.444 ms) : 0, 57444 AppSec [candidate] (56.396 ms) : 0, 56396 Remote Config [baseline] (631.919 µs) : 0, 632 Remote Config [candidate] (605.039 µs) : 0, 605 Telemetry [baseline] (8.88 ms) : 0, 8880 Telemetry [candidate] (8.71 ms) : 0, 8710 section iast_TELEMETRY_OFF BytebuddyAgent [baseline] (840.273 ms) : 0, 840273 BytebuddyAgent [candidate] (840.591 ms) : 0, 840591 GlobalTracer [baseline] (231.724 ms) : 0, 231724 GlobalTracer [candidate] (231.041 ms) : 0, 231041 IAST [baseline] (22.767 ms) : 0, 22767 IAST [candidate] (22.552 ms) : 0, 22552 AppSec [baseline] (56.928 ms) : 0, 56928 AppSec [candidate] (56.998 ms) : 0, 56998 Remote Config [baseline] (634.544 µs) : 0, 635 Remote Config [candidate] (632.776 µs) : 0, 633 Telemetry [baseline] (8.722 ms) : 0, 8722 Telemetry [candidate] (8.68 ms) : 0, 8680 
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-03-10T10:31:11 2025-03-10T10:38:56
git_branch master andrea.marziali/jsr356
git_commit_date 1741601078 1741602010
git_commit_sha 01d3277 978afb6
release_version 1.48.0-SNAPSHOT~01d3277601 1.48.0-SNAPSHOT~978afb6bc8
start_time 2025-03-10T10:30:57 2025-03-10T10:38:42
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1741603533 1741603533
ci_job_id 839711791 839711791
ci_pipeline_id 58248718 58248718
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-jboiwnx-project-304-concurrent-0-juaql6uw 6.8.0-1023-aws #25~22.04.1-Ubuntu SMP Tue Jan 28 12:51:22 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-jboiwnx-project-304-concurrent-0-juaql6uw 6.8.0-1023-aws #25~22.04.1-Ubuntu SMP Tue Jan 28 12:51:22 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
variant iast iast

Summary

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

Request duration reports for insecure-bank
gantt title insecure-bank - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~978afb6bc8, baseline=1.48.0-SNAPSHOT~01d3277601 dateFormat X axisFormat %s section baseline no_agent (382.209 µs) : 362, 402 . : milestone, 382, iast (512.257 µs) : 490, 534 . : milestone, 512, iast_FULL (728.815 µs) : 707, 751 . : milestone, 729, iast_GLOBAL (552.886 µs) : 531, 575 . : milestone, 553, iast_HARDCODED_SECRET_DISABLED (512.166 µs) : 490, 534 . : milestone, 512, iast_INACTIVE (458.394 µs) : 438, 479 . : milestone, 458, iast_TELEMETRY_OFF (494.238 µs) : 472, 517 . : milestone, 494, tracing (460.098 µs) : 439, 481 . : milestone, 460, section candidate no_agent (384.529 µs) : 365, 405 . : milestone, 385, iast (512.229 µs) : 490, 534 . : milestone, 512, iast_FULL (729.069 µs) : 707, 751 . : milestone, 729, iast_GLOBAL (551.716 µs) : 530, 573 . : milestone, 552, iast_HARDCODED_SECRET_DISABLED (516.784 µs) : 494, 539 . : milestone, 517, iast_INACTIVE (458.071 µs) : 437, 479 . : milestone, 458, iast_TELEMETRY_OFF (497.255 µs) : 476, 519 . : milestone, 497, tracing (461.793 µs) : 441, 483 . : milestone, 462, 
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 382.209 µs [362.163 µs, 402.255 µs] -
iast 512.257 µs [490.096 µs, 534.418 µs] 130.048 µs (34.0%)
iast_FULL 728.815 µs [706.743 µs, 750.887 µs] 346.606 µs (90.7%)
iast_GLOBAL 552.886 µs [530.997 µs, 574.775 µs] 170.677 µs (44.7%)
iast_HARDCODED_SECRET_DISABLED 512.166 µs [490.217 µs, 534.115 µs] 129.956 µs (34.0%)
iast_INACTIVE 458.394 µs [437.672 µs, 479.117 µs] 76.185 µs (19.9%)
iast_TELEMETRY_OFF 494.238 µs [471.789 µs, 516.688 µs] 112.029 µs (29.3%)
tracing 460.098 µs [438.818 µs, 481.378 µs] 77.889 µs (20.4%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 384.529 µs [364.53 µs, 404.528 µs] -
iast 512.229 µs [490.088 µs, 534.37 µs] 127.7 µs (33.2%)
iast_FULL 729.069 µs [707.148 µs, 750.99 µs] 344.54 µs (89.6%)
iast_GLOBAL 551.716 µs [530.003 µs, 573.43 µs] 167.187 µs (43.5%)
iast_HARDCODED_SECRET_DISABLED 516.784 µs [494.426 µs, 539.142 µs] 132.255 µs (34.4%)
iast_INACTIVE 458.071 µs [437.121 µs, 479.02 µs] 73.542 µs (19.1%)
iast_TELEMETRY_OFF 497.255 µs [475.8 µs, 518.71 µs] 112.726 µs (29.3%)
tracing 461.793 µs [440.785 µs, 482.801 µs] 77.264 µs (20.1%)
Request duration reports for petclinic
gantt title petclinic - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~978afb6bc8, baseline=1.48.0-SNAPSHOT~01d3277601 dateFormat X axisFormat %s section baseline no_agent (1.355 ms) : 1335, 1376 . : milestone, 1355, appsec (1.733 ms) : 1710, 1757 . : milestone, 1733, appsec_no_iast (1.746 ms) : 1720, 1771 . : milestone, 1746, code_origins (1.69 ms) : 1658, 1723 . : milestone, 1690, iast (1.5 ms) : 1476, 1525 . : milestone, 1500, profiling (1.496 ms) : 1472, 1520 . : milestone, 1496, tracing (1.508 ms) : 1483, 1533 . : milestone, 1508, section candidate no_agent (1.34 ms) : 1320, 1360 . : milestone, 1340, appsec (1.731 ms) : 1708, 1755 . : milestone, 1731, appsec_no_iast (1.742 ms) : 1716, 1767 . : milestone, 1742, code_origins (1.673 ms) : 1640, 1707 . : milestone, 1673, iast (1.514 ms) : 1490, 1538 . : milestone, 1514, profiling (1.505 ms) : 1481, 1529 . : milestone, 1505, tracing (1.486 ms) : 1461, 1512 . : milestone, 1486, 
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.355 ms [1.335 ms, 1.376 ms] -
appsec 1.733 ms [1.71 ms, 1.757 ms] 378.007 µs (27.9%)
appsec_no_iast 1.746 ms [1.72 ms, 1.771 ms] 390.229 µs (28.8%)
code_origins 1.69 ms [1.658 ms, 1.723 ms] 335.17 µs (24.7%)
iast 1.5 ms [1.476 ms, 1.525 ms] 144.872 µs (10.7%)
profiling 1.496 ms [1.472 ms, 1.52 ms] 140.652 µs (10.4%)
tracing 1.508 ms [1.483 ms, 1.533 ms] 152.653 µs (11.3%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.34 ms [1.32 ms, 1.36 ms] -
appsec 1.731 ms [1.708 ms, 1.755 ms] 391.395 µs (29.2%)
appsec_no_iast 1.742 ms [1.716 ms, 1.767 ms] 401.767 µs (30.0%)
code_origins 1.673 ms [1.64 ms, 1.707 ms] 333.643 µs (24.9%)
iast 1.514 ms [1.49 ms, 1.538 ms] 173.92 µs (13.0%)
profiling 1.505 ms [1.481 ms, 1.529 ms] 165.261 µs (12.3%)
tracing 1.486 ms [1.461 ms, 1.512 ms] 146.68 µs (10.9%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master andrea.marziali/jsr356
git_commit_date 1741601078 1741602010
git_commit_sha 01d3277 978afb6
release_version 1.48.0-SNAPSHOT~01d3277601 1.48.0-SNAPSHOT~978afb6bc8
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1741604120 1741604120
ci_job_id 839711792 839711792
ci_pipeline_id 58248718 58248718
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zhk6exes-project-304-concurrent-2-0hiicjuf 6.8.0-1023-aws #25~22.04.1-Ubuntu SMP Tue Jan 28 12:51:22 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zhk6exes-project-304-concurrent-2-0hiicjuf 6.8.0-1023-aws #25~22.04.1-Ubuntu SMP Tue Jan 28 12:51:22 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
variant appsec appsec

Summary

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

Execution time for tomcat
gantt title tomcat - execution time [CI 0.99] : candidate=1.48.0-SNAPSHOT~978afb6bc8, baseline=1.48.0-SNAPSHOT~01d3277601 dateFormat X axisFormat %s section baseline no_agent (1.478 ms) : 1466, 1489 . : milestone, 1478, appsec (2.355 ms) : 2311, 2399 . : milestone, 2355, iast (2.126 ms) : 2070, 2182 . : milestone, 2126, iast_GLOBAL (2.167 ms) : 2111, 2223 . : milestone, 2167, profiling (1.98 ms) : 1937, 2024 . : milestone, 1980, tracing (1.953 ms) : 1911, 1996 . : milestone, 1953, section candidate no_agent (1.476 ms) : 1465, 1488 . : milestone, 1476, appsec (2.354 ms) : 2310, 2398 . : milestone, 2354, iast (2.128 ms) : 2071, 2184 . : milestone, 2128, iast_GLOBAL (2.169 ms) : 2113, 2225 . : milestone, 2169, profiling (1.989 ms) : 1944, 2035 . : milestone, 1989, tracing (1.954 ms) : 1911, 1996 . : milestone, 1954, 
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.478 ms [1.466 ms, 1.489 ms] -
appsec 2.355 ms [2.311 ms, 2.399 ms] 877.049 µs (59.4%)
iast 2.126 ms [2.07 ms, 2.182 ms] 648.425 µs (43.9%)
iast_GLOBAL 2.167 ms [2.111 ms, 2.223 ms] 689.173 µs (46.6%)
profiling 1.98 ms [1.937 ms, 2.024 ms] 502.897 µs (34.0%)
tracing 1.953 ms [1.911 ms, 1.996 ms] 475.777 µs (32.2%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.476 ms [1.465 ms, 1.488 ms] -
appsec 2.354 ms [2.31 ms, 2.398 ms] 877.23 µs (59.4%)
iast 2.128 ms [2.071 ms, 2.184 ms] 651.23 µs (44.1%)
iast_GLOBAL 2.169 ms [2.113 ms, 2.225 ms] 692.761 µs (46.9%)
profiling 1.989 ms [1.944 ms, 2.035 ms] 513.168 µs (34.8%)
tracing 1.954 ms [1.911 ms, 1.996 ms] 477.293 µs (32.3%)
Execution time for biojava
gantt title biojava - execution time [CI 0.99] : candidate=1.48.0-SNAPSHOT~978afb6bc8, baseline=1.48.0-SNAPSHOT~01d3277601 dateFormat X axisFormat %s section baseline no_agent (14.883 s) : 14883000, 14883000 . : milestone, 14883000, appsec (14.939 s) : 14939000, 14939000 . : milestone, 14939000, iast (18.908 s) : 18908000, 18908000 . : milestone, 18908000, iast_GLOBAL (18.104 s) : 18104000, 18104000 . : milestone, 18104000, profiling (15.626 s) : 15626000, 15626000 . : milestone, 15626000, tracing (15.004 s) : 15004000, 15004000 . : milestone, 15004000, section candidate no_agent (14.893 s) : 14893000, 14893000 . : milestone, 14893000, appsec (15.027 s) : 15027000, 15027000 . : milestone, 15027000, iast (18.564 s) : 18564000, 18564000 . : milestone, 18564000, iast_GLOBAL (18.04 s) : 18040000, 18040000 . : milestone, 18040000, profiling (15.011 s) : 15011000, 15011000 . : milestone, 15011000, tracing (15.115 s) : 15115000, 15115000 . : milestone, 15115000, 
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.883 s [14.883 s, 14.883 s] -
appsec 14.939 s [14.939 s, 14.939 s] 56.0 ms (0.4%)
iast 18.908 s [18.908 s, 18.908 s] 4.025 s (27.0%)
iast_GLOBAL 18.104 s [18.104 s, 18.104 s] 3.221 s (21.6%)
profiling 15.626 s [15.626 s, 15.626 s] 743.0 ms (5.0%)
tracing 15.004 s [15.004 s, 15.004 s] 121.0 ms (0.8%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.893 s [14.893 s, 14.893 s] -
appsec 15.027 s [15.027 s, 15.027 s] 134.0 ms (0.9%)
iast 18.564 s [18.564 s, 18.564 s] 3.671 s (24.6%)
iast_GLOBAL 18.04 s [18.04 s, 18.04 s] 3.147 s (21.1%)
profiling 15.011 s [15.011 s, 15.011 s] 118.0 ms (0.8%)
tracing 15.115 s [15.115 s, 15.115 s] 222.0 ms (1.5%)
@amarziali amarziali force-pushed the andrea.marziali/jsr356 branch 4 times, most recently from b017c7b to 52d9691 Compare March 3, 2025 13:38
@amarziali amarziali marked this pull request as ready for review March 3, 2025 13:39
@amarziali amarziali requested review from a team as code owners March 3, 2025 13:39
@amarziali amarziali requested a review from ygree March 3, 2025 13:39
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.

There are a lot of changes in this PR 😅
I will have a closer look the public and internal API later this week.

@amarziali amarziali force-pushed the andrea.marziali/jsr356 branch from 542304a to ab80d28 Compare March 4, 2025 09:34
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.

Reviewed the API part and left some comments :)
Let me know if you need help with the OTel part.

private final Set<AgentSpanLink> assertedLinks = []

private LinksAssert(DDSpan span) {
this.links = span.links // this is class protected but for the moment groovy can access it
Copy link
Contributor

Choose a reason for hiding this comment

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

Can it be left private? Can’t groovy access them when private too?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

let me check it.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Now I remember why. It does not work: (see that CI run)

It fails for

Caused by: groovy.lang.MissingPropertyException: No such property: links for class: datadog.trace.core.DDSpan$SpockMock$863262640 

because that span it's got spied and then cannot be accessed if private. Any advice for it?

Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe just leave it as a comment with this reason.

private volatile int longRunningVersion = 0;

private final List<AgentSpanLink> links;
protected final List<AgentSpanLink> links;
Copy link
Contributor

Choose a reason for hiding this comment

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

Can it stay private? -- see related comment in SpanLinkTest

assertTraces(1) {
trace(1) {
span {
ignoreSpanLinks() // check is done on the content of the tag below
Copy link
Contributor

Choose a reason for hiding this comment

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

Do you need some help porting those checks?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks for proposing I don't refuse it :) I did this way mostly because here we wanted to check the serialized form so I just decided to skip them. Would you like to add the links part on this test?

assert span.tags.containsKey(DDTags.SPAN_LINKS)
assert span.tags[DDTags.SPAN_LINKS] != null
links({
link(DDTraceId.from((long)12052652441736835200), (long)-6394091631972716416)
Copy link
Contributor

Choose a reason for hiding this comment

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

Magic numbers?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I don't know where they come from 🤷 That trace ID is hardcoded somwhere so I had to hardcode it as well

Copy link
Contributor

@ygree ygree left a comment

Choose a reason for hiding this comment

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

Congratulations on putting it all together! That's a big one! Great to see a lot of tests as well. Overall looks solid. I left a few notes for clarification.

@amarziali amarziali force-pushed the andrea.marziali/jsr356 branch 2 times, most recently from cbd26e7 to 99e400b Compare March 5, 2025 09:55
@amarziali amarziali requested a review from ygree March 5, 2025 09:58
@amarziali amarziali force-pushed the andrea.marziali/jsr356 branch 2 times, most recently from a947aef to 700b1c3 Compare March 5, 2025 16:21
Copy link
Contributor

@ygree ygree left a comment

Choose a reason for hiding this comment

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

Looks good to me!

return s;
}
final CharSequence ret = s.subSequence(idx + 1, s.length());
if (ret.length() == 0) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Can this case happen if idx == s.length() - 1 is already filtered above?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yep right I can simplify

import jakarta.websocket.server.ServerEndpointConfig
import java.nio.ByteBuffer

class WebsocketTest extends AgentTestRunner {
Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks for excluding random data from test case name! 🙇

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 from the platform / api side! 🙌

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

Labels

3 participants