Skip to content

Add setUser to user monitoring SDK #8482

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 2 commits into from
Mar 19, 2025

Conversation

manuel-alvarez-alvarez
Copy link
Member

@manuel-alvarez-alvarez manuel-alvarez-alvarez commented Mar 3, 2025

What Does This Do

Adds a public API for customers to set user related data in the spans aligned with what other tracers are doing.

Before:

import io.opentracing.Span;
import io.opentracing.util.GlobalTracer;
import datadog.appsec.api.blocking.Blocking;
import datadog.trace.api.interceptor.MutableSpan;

// Get the active span
final Span span = GlobalTracer.get().activeSpan();
if ((span instanceof MutableSpan)) {
   MutableSpan localRootSpan = ((MutableSpan) span).getLocalRootSpan();
   // Setting the mandatory user id tag
   localRootSpan.setTag("usr.id", "d131dd02c56eec4");
   // Setting optional user monitoring tags
   localRootSpan.setTag("usr.name", "Jean Example");
   localRootSpan.setTag("usr.email", "[email protected]");
   localRootSpan.setTag("usr.session_id", "987654321");
   localRootSpan.setTag("usr.role", "admin");
   localRootSpan.setTag("usr.scope", "read:message, write:files");
}

Blocking
    .forUser("d131dd02c56eec4")
    .blockIfMatch();

After:

import static datadog.appsec.api.user.User.setUser;

final Map<String, String> metadata = new HashMap<>();
metadata.put("name", "Jean Example");
metadata.put("email", "[email protected]");
metadata.put("session_id", "987654321");
metadata.put("role", "admin");
metadata.put("scope", "read:message, write:files");

setUser("d131dd02c56eec4", metadata);

Motivation

Additional Notes

Contributor Checklist

Jira ticket: APPSEC-56436

@manuel-alvarez-alvarez manuel-alvarez-alvarez added type: enhancement comp: asm waf Application Security Management (WAF) labels Mar 3, 2025
@manuel-alvarez-alvarez manuel-alvarez-alvarez force-pushed the malvarez/waf-set-user-sdk branch 2 times, most recently from 5eaffba to b3dcd02 Compare March 3, 2025 09:31
@pr-commenter
Copy link

pr-commenter bot commented Mar 3, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master malvarez/waf-set-user-sdk
git_commit_date 1742373861 1742376802
git_commit_sha b1d7def d51ce62
release_version 1.48.0-SNAPSHOT~b1d7defba6 1.48.0-SNAPSHOT~d51ce62aae
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1742379362 1742379362
ci_job_id 854363605 854363605
ci_pipeline_id 59285560 59285560
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-kucxac5a-project-304-concurrent-0-l3muw2sh 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-kucxac5a-project-304-concurrent-0-l3muw2sh 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 55 metrics, 8 unstable metrics.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.48.0-SNAPSHOT~d51ce62aae, baseline=1.48.0-SNAPSHOT~b1d7defba6

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.05 s) : 0, 1049805
Total [baseline] (10.442 s) : 0, 10442404
Agent [candidate] (1.053 s) : 0, 1052583
Total [candidate] (10.478 s) : 0, 10478398
section appsec
Agent [baseline] (1.194 s) : 0, 1194096
Total [baseline] (10.733 s) : 0, 10733061
Agent [candidate] (1.188 s) : 0, 1188342
Total [candidate] (10.751 s) : 0, 10751041
section iast
Agent [baseline] (1.184 s) : 0, 1183676
Total [baseline] (10.98 s) : 0, 10980049
Agent [candidate] (1.179 s) : 0, 1178706
Total [candidate] (10.992 s) : 0, 10992327
section profiling
Agent [baseline] (1.272 s) : 0, 1271937
Total [baseline] (10.939 s) : 0, 10939133
Agent [candidate] (1.264 s) : 0, 1264026
Total [candidate] (10.839 s) : 0, 10839153
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.05 s -
Agent appsec 1.194 s 144.29 ms (13.7%)
Agent iast 1.184 s 133.87 ms (12.8%)
Agent profiling 1.272 s 222.132 ms (21.2%)
Total tracing 10.442 s -
Total appsec 10.733 s 290.656 ms (2.8%)
Total iast 10.98 s 537.644 ms (5.1%)
Total profiling 10.939 s 496.729 ms (4.8%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.053 s -
Agent appsec 1.188 s 135.759 ms (12.9%)
Agent iast 1.179 s 126.123 ms (12.0%)
Agent profiling 1.264 s 211.443 ms (20.1%)
Total tracing 10.478 s -
Total appsec 10.751 s 272.643 ms (2.6%)
Total iast 10.992 s 513.928 ms (4.9%)
Total profiling 10.839 s 360.755 ms (3.4%)
gantt
    title petclinic - break down per module: candidate=1.48.0-SNAPSHOT~d51ce62aae, baseline=1.48.0-SNAPSHOT~b1d7defba6

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (722.833 ms) : 0, 722833
BytebuddyAgent [candidate] (725.616 ms) : 0, 725616
GlobalTracer [baseline] (241.081 ms) : 0, 241081
GlobalTracer [candidate] (241.41 ms) : 0, 241410
AppSec [baseline] (54.946 ms) : 0, 54946
AppSec [candidate] (54.819 ms) : 0, 54819
Remote Config [baseline] (704.889 µs) : 0, 705
Remote Config [candidate] (716.922 µs) : 0, 717
Telemetry [baseline] (14.992 ms) : 0, 14992
Telemetry [candidate] (13.843 ms) : 0, 13843
section appsec
BytebuddyAgent [baseline] (744.094 ms) : 0, 744094
BytebuddyAgent [candidate] (739.793 ms) : 0, 739793
GlobalTracer [baseline] (238.53 ms) : 0, 238530
GlobalTracer [candidate] (236.769 ms) : 0, 236769
AppSec [baseline] (176.234 ms) : 0, 176234
AppSec [candidate] (175.823 ms) : 0, 175823
Remote Config [baseline] (655.371 µs) : 0, 655
Remote Config [candidate] (663.307 µs) : 0, 663
Telemetry [baseline] (8.286 ms) : 0, 8286
Telemetry [candidate] (8.334 ms) : 0, 8334
IAST [baseline] (21.807 ms) : 0, 21807
IAST [candidate] (21.836 ms) : 0, 21836
section iast
BytebuddyAgent [baseline] (847.463 ms) : 0, 847463
BytebuddyAgent [candidate] (844.31 ms) : 0, 844310
GlobalTracer [baseline] (231.737 ms) : 0, 231737
GlobalTracer [candidate] (230.082 ms) : 0, 230082
AppSec [baseline] (56.809 ms) : 0, 56809
AppSec [candidate] (56.24 ms) : 0, 56240
Remote Config [baseline] (609.867 µs) : 0, 610
Remote Config [candidate] (618.673 µs) : 0, 619
Telemetry [baseline] (8.778 ms) : 0, 8778
Telemetry [candidate] (8.707 ms) : 0, 8707
IAST [baseline] (22.954 ms) : 0, 22954
IAST [candidate] (22.776 ms) : 0, 22776
section profiling
BytebuddyAgent [baseline] (715.861 ms) : 0, 715861
BytebuddyAgent [candidate] (710.903 ms) : 0, 710903
GlobalTracer [baseline] (352.779 ms) : 0, 352779
GlobalTracer [candidate] (351.553 ms) : 0, 351553
AppSec [baseline] (54.129 ms) : 0, 54129
AppSec [candidate] (53.58 ms) : 0, 53580
Remote Config [baseline] (677.94 µs) : 0, 678
Remote Config [candidate] (659.022 µs) : 0, 659
Telemetry [baseline] (9.901 ms) : 0, 9901
Telemetry [candidate] (8.964 ms) : 0, 8964
ProfilingAgent [baseline] (97.44 ms) : 0, 97440
ProfilingAgent [candidate] (96.887 ms) : 0, 96887
Profiling [baseline] (97.465 ms) : 0, 97465
Profiling [candidate] (96.911 ms) : 0, 96911
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.48.0-SNAPSHOT~d51ce62aae, baseline=1.48.0-SNAPSHOT~b1d7defba6

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.046 s) : 0, 1046458
Total [baseline] (8.708 s) : 0, 8708082
Agent [candidate] (1.044 s) : 0, 1044440
Total [candidate] (8.684 s) : 0, 8683771
section iast
Agent [baseline] (1.172 s) : 0, 1171595
Total [baseline] (9.25 s) : 0, 9249856
Agent [candidate] (1.181 s) : 0, 1180800
Total [candidate] (9.269 s) : 0, 9268656
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.171 s) : 0, 1170764
Total [baseline] (9.203 s) : 0, 9202753
Agent [candidate] (1.184 s) : 0, 1183508
Total [candidate] (9.246 s) : 0, 9246302
section iast_TELEMETRY_OFF
Agent [baseline] (1.169 s) : 0, 1169306
Total [baseline] (9.249 s) : 0, 9248693
Agent [candidate] (1.184 s) : 0, 1183971
Total [candidate] (9.285 s) : 0, 9284855
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.046 s -
Agent iast 1.172 s 125.136 ms (12.0%)
Agent iast_HARDCODED_SECRET_DISABLED 1.171 s 124.305 ms (11.9%)
Agent iast_TELEMETRY_OFF 1.169 s 122.848 ms (11.7%)
Total tracing 8.708 s -
Total iast 9.25 s 541.774 ms (6.2%)
Total iast_HARDCODED_SECRET_DISABLED 9.203 s 494.672 ms (5.7%)
Total iast_TELEMETRY_OFF 9.249 s 540.611 ms (6.2%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.044 s -
Agent iast 1.181 s 136.359 ms (13.1%)
Agent iast_HARDCODED_SECRET_DISABLED 1.184 s 139.068 ms (13.3%)
Agent iast_TELEMETRY_OFF 1.184 s 139.531 ms (13.4%)
Total tracing 8.684 s -
Total iast 9.269 s 584.885 ms (6.7%)
Total iast_HARDCODED_SECRET_DISABLED 9.246 s 562.532 ms (6.5%)
Total iast_TELEMETRY_OFF 9.285 s 601.085 ms (6.9%)
gantt
    title insecure-bank - break down per module: candidate=1.48.0-SNAPSHOT~d51ce62aae, baseline=1.48.0-SNAPSHOT~b1d7defba6

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (721.295 ms) : 0, 721295
BytebuddyAgent [candidate] (719.2 ms) : 0, 719200
GlobalTracer [baseline] (240.392 ms) : 0, 240392
GlobalTracer [candidate] (240.099 ms) : 0, 240099
AppSec [baseline] (54.854 ms) : 0, 54854
AppSec [candidate] (54.545 ms) : 0, 54545
Remote Config [baseline] (710.12 µs) : 0, 710
Remote Config [candidate] (709.011 µs) : 0, 709
Telemetry [baseline] (13.938 ms) : 0, 13938
Telemetry [candidate] (13.864 ms) : 0, 13864
section iast
BytebuddyAgent [baseline] (838.093 ms) : 0, 838093
BytebuddyAgent [candidate] (844.425 ms) : 0, 844425
GlobalTracer [baseline] (230.115 ms) : 0, 230115
GlobalTracer [candidate] (231.314 ms) : 0, 231314
IAST [baseline] (24.404 ms) : 0, 24404
IAST [candidate] (23.737 ms) : 0, 23737
AppSec [baseline] (54.365 ms) : 0, 54365
AppSec [candidate] (55.915 ms) : 0, 55915
Remote Config [baseline] (629.456 µs) : 0, 629
Remote Config [candidate] (622.054 µs) : 0, 622
Telemetry [baseline] (8.718 ms) : 0, 8718
Telemetry [candidate] (8.736 ms) : 0, 8736
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (836.636 ms) : 0, 836636
BytebuddyAgent [candidate] (846.134 ms) : 0, 846134
GlobalTracer [baseline] (230.389 ms) : 0, 230389
GlobalTracer [candidate] (232.1 ms) : 0, 232100
IAST [baseline] (22.864 ms) : 0, 22864
IAST [candidate] (23.143 ms) : 0, 23143
AppSec [baseline] (56.34 ms) : 0, 56340
AppSec [candidate] (56.604 ms) : 0, 56604
Remote Config [baseline] (604.677 µs) : 0, 605
Remote Config [candidate] (617.805 µs) : 0, 618
Telemetry [baseline] (8.696 ms) : 0, 8696
Telemetry [candidate] (8.753 ms) : 0, 8753
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (836.353 ms) : 0, 836353
BytebuddyAgent [candidate] (845.256 ms) : 0, 845256
GlobalTracer [baseline] (229.545 ms) : 0, 229545
GlobalTracer [candidate] (233.504 ms) : 0, 233504
IAST [baseline] (22.614 ms) : 0, 22614
IAST [candidate] (22.787 ms) : 0, 22787
AppSec [baseline] (56.26 ms) : 0, 56260
AppSec [candidate] (56.782 ms) : 0, 56782
Remote Config [baseline] (621.68 µs) : 0, 622
Remote Config [candidate] (624.667 µs) : 0, 625
Telemetry [baseline] (8.612 ms) : 0, 8612
Telemetry [candidate] (8.78 ms) : 0, 8780
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-03-19T09:46:11 2025-03-19T09:53:56
git_branch master malvarez/waf-set-user-sdk
git_commit_date 1742373861 1742376802
git_commit_sha b1d7def d51ce62
release_version 1.48.0-SNAPSHOT~b1d7defba6 1.48.0-SNAPSHOT~d51ce62aae
start_time 2025-03-19T09:45:57 2025-03-19T09:53:42
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1742378436 1742378436
ci_job_id 854363606 854363606
ci_pipeline_id 59285560 59285560
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-kucxac5a-project-304-concurrent-1-0vf2i7mk 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-kucxac5a-project-304-concurrent-1-0vf2i7mk 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
variant iast iast

Summary

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

Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~d51ce62aae, baseline=1.48.0-SNAPSHOT~b1d7defba6
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.376 ms) : 1356, 1396
.   : milestone, 1376,
appsec (1.728 ms) : 1704, 1752
.   : milestone, 1728,
appsec_no_iast (1.744 ms) : 1719, 1768
.   : milestone, 1744,
code_origins (1.668 ms) : 1641, 1696
.   : milestone, 1668,
iast (1.508 ms) : 1484, 1533
.   : milestone, 1508,
profiling (1.51 ms) : 1486, 1534
.   : milestone, 1510,
tracing (1.502 ms) : 1478, 1527
.   : milestone, 1502,
section candidate
no_agent (1.374 ms) : 1354, 1394
.   : milestone, 1374,
appsec (1.77 ms) : 1746, 1794
.   : milestone, 1770,
appsec_no_iast (1.731 ms) : 1706, 1756
.   : milestone, 1731,
code_origins (1.703 ms) : 1677, 1728
.   : milestone, 1703,
iast (1.524 ms) : 1500, 1547
.   : milestone, 1524,
profiling (1.536 ms) : 1513, 1559
.   : milestone, 1536,
tracing (1.509 ms) : 1485, 1533
.   : milestone, 1509,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.376 ms [1.356 ms, 1.396 ms] -
appsec 1.728 ms [1.704 ms, 1.752 ms] 352.072 µs (25.6%)
appsec_no_iast 1.744 ms [1.719 ms, 1.768 ms] 367.805 µs (26.7%)
code_origins 1.668 ms [1.641 ms, 1.696 ms] 292.27 µs (21.2%)
iast 1.508 ms [1.484 ms, 1.533 ms] 132.48 µs (9.6%)
profiling 1.51 ms [1.486 ms, 1.534 ms] 134.337 µs (9.8%)
tracing 1.502 ms [1.478 ms, 1.527 ms] 126.458 µs (9.2%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.374 ms [1.354 ms, 1.394 ms] -
appsec 1.77 ms [1.746 ms, 1.794 ms] 396.023 µs (28.8%)
appsec_no_iast 1.731 ms [1.706 ms, 1.756 ms] 356.677 µs (26.0%)
code_origins 1.703 ms [1.677 ms, 1.728 ms] 328.476 µs (23.9%)
iast 1.524 ms [1.5 ms, 1.547 ms] 149.682 µs (10.9%)
profiling 1.536 ms [1.513 ms, 1.559 ms] 161.938 µs (11.8%)
tracing 1.509 ms [1.485 ms, 1.533 ms] 135.152 µs (9.8%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~d51ce62aae, baseline=1.48.0-SNAPSHOT~b1d7defba6
    dateFormat X
    axisFormat %s
section baseline
no_agent (387.415 µs) : 367, 408
.   : milestone, 387,
iast (518.812 µs) : 497, 540
.   : milestone, 519,
iast_FULL (741.378 µs) : 719, 763
.   : milestone, 741,
iast_GLOBAL (567.603 µs) : 545, 590
.   : milestone, 568,
iast_HARDCODED_SECRET_DISABLED (518.498 µs) : 497, 540
.   : milestone, 518,
iast_INACTIVE (474.73 µs) : 453, 496
.   : milestone, 475,
iast_TELEMETRY_OFF (505.86 µs) : 484, 528
.   : milestone, 506,
tracing (465.791 µs) : 444, 487
.   : milestone, 466,
section candidate
no_agent (386.448 µs) : 366, 406
.   : milestone, 386,
iast (521.31 µs) : 500, 543
.   : milestone, 521,
iast_FULL (733.502 µs) : 711, 756
.   : milestone, 734,
iast_GLOBAL (566.505 µs) : 544, 589
.   : milestone, 567,
iast_HARDCODED_SECRET_DISABLED (524.582 µs) : 503, 547
.   : milestone, 525,
iast_INACTIVE (471.182 µs) : 450, 492
.   : milestone, 471,
iast_TELEMETRY_OFF (508.8 µs) : 486, 531
.   : milestone, 509,
tracing (465.614 µs) : 445, 486
.   : milestone, 466,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 387.415 µs [366.535 µs, 408.296 µs] -
iast 518.812 µs [497.292 µs, 540.331 µs] 131.396 µs (33.9%)
iast_FULL 741.378 µs [719.345 µs, 763.41 µs] 353.962 µs (91.4%)
iast_GLOBAL 567.603 µs [544.926 µs, 590.28 µs] 180.188 µs (46.5%)
iast_HARDCODED_SECRET_DISABLED 518.498 µs [496.816 µs, 540.181 µs] 131.083 µs (33.8%)
iast_INACTIVE 474.73 µs [453.081 µs, 496.379 µs] 87.315 µs (22.5%)
iast_TELEMETRY_OFF 505.86 µs [483.967 µs, 527.753 µs] 118.445 µs (30.6%)
tracing 465.791 µs [444.456 µs, 487.127 µs] 78.376 µs (20.2%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 386.448 µs [366.454 µs, 406.442 µs] -
iast 521.31 µs [499.627 µs, 542.992 µs] 134.862 µs (34.9%)
iast_FULL 733.502 µs [711.251 µs, 755.752 µs] 347.054 µs (89.8%)
iast_GLOBAL 566.505 µs [544.451 µs, 588.559 µs] 180.057 µs (46.6%)
iast_HARDCODED_SECRET_DISABLED 524.582 µs [502.561 µs, 546.603 µs] 138.134 µs (35.7%)
iast_INACTIVE 471.182 µs [450.057 µs, 492.307 µs] 84.734 µs (21.9%)
iast_TELEMETRY_OFF 508.8 µs [486.492 µs, 531.107 µs] 122.352 µs (31.7%)
tracing 465.614 µs [444.934 µs, 486.294 µs] 79.166 µs (20.5%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master malvarez/waf-set-user-sdk
git_commit_date 1742373861 1742376802
git_commit_sha b1d7def d51ce62
release_version 1.48.0-SNAPSHOT~b1d7defba6 1.48.0-SNAPSHOT~d51ce62aae
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1742378950 1742378950
ci_job_id 854363607 854363607
ci_pipeline_id 59285560 59285560
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-yaepk1w-project-304-concurrent-0-rn8lyy04 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-yaepk1w-project-304-concurrent-0-rn8lyy04 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 12 metrics, 0 unstable metrics.

Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.48.0-SNAPSHOT~d51ce62aae, baseline=1.48.0-SNAPSHOT~b1d7defba6
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.505 s) : 15505000, 15505000
.   : milestone, 15505000,
appsec (14.829 s) : 14829000, 14829000
.   : milestone, 14829000,
iast (19.12 s) : 19120000, 19120000
.   : milestone, 19120000,
iast_GLOBAL (18.209 s) : 18209000, 18209000
.   : milestone, 18209000,
profiling (15.155 s) : 15155000, 15155000
.   : milestone, 15155000,
tracing (14.699 s) : 14699000, 14699000
.   : milestone, 14699000,
section candidate
no_agent (15.614 s) : 15614000, 15614000
.   : milestone, 15614000,
appsec (14.797 s) : 14797000, 14797000
.   : milestone, 14797000,
iast (18.906 s) : 18906000, 18906000
.   : milestone, 18906000,
iast_GLOBAL (18.258 s) : 18258000, 18258000
.   : milestone, 18258000,
profiling (15.971 s) : 15971000, 15971000
.   : milestone, 15971000,
tracing (15.202 s) : 15202000, 15202000
.   : milestone, 15202000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.505 s [15.505 s, 15.505 s] -
appsec 14.829 s [14.829 s, 14.829 s] -676.0 ms (-4.4%)
iast 19.12 s [19.12 s, 19.12 s] 3.615 s (23.3%)
iast_GLOBAL 18.209 s [18.209 s, 18.209 s] 2.704 s (17.4%)
profiling 15.155 s [15.155 s, 15.155 s] -350.0 ms (-2.3%)
tracing 14.699 s [14.699 s, 14.699 s] -806.0 ms (-5.2%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.614 s [15.614 s, 15.614 s] -
appsec 14.797 s [14.797 s, 14.797 s] -817.0 ms (-5.2%)
iast 18.906 s [18.906 s, 18.906 s] 3.292 s (21.1%)
iast_GLOBAL 18.258 s [18.258 s, 18.258 s] 2.644 s (16.9%)
profiling 15.971 s [15.971 s, 15.971 s] 357.0 ms (2.3%)
tracing 15.202 s [15.202 s, 15.202 s] -412.0 ms (-2.6%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.48.0-SNAPSHOT~d51ce62aae, baseline=1.48.0-SNAPSHOT~b1d7defba6
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.48 ms) : 1468, 1491
.   : milestone, 1480,
appsec (2.361 ms) : 2317, 2406
.   : milestone, 2361,
iast (2.134 ms) : 2078, 2190
.   : milestone, 2134,
iast_GLOBAL (2.177 ms) : 2120, 2233
.   : milestone, 2177,
profiling (2.003 ms) : 1957, 2048
.   : milestone, 2003,
tracing (1.974 ms) : 1932, 2017
.   : milestone, 1974,
section candidate
no_agent (1.477 ms) : 1466, 1489
.   : milestone, 1477,
appsec (2.36 ms) : 2316, 2405
.   : milestone, 2360,
iast (2.136 ms) : 2079, 2192
.   : milestone, 2136,
iast_GLOBAL (2.178 ms) : 2122, 2235
.   : milestone, 2178,
profiling (1.994 ms) : 1949, 2039
.   : milestone, 1994,
tracing (1.97 ms) : 1927, 2013
.   : milestone, 1970,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.48 ms [1.468 ms, 1.491 ms] -
appsec 2.361 ms [2.317 ms, 2.406 ms] 881.813 µs (59.6%)
iast 2.134 ms [2.078 ms, 2.19 ms] 654.271 µs (44.2%)
iast_GLOBAL 2.177 ms [2.12 ms, 2.233 ms] 697.06 µs (47.1%)
profiling 2.003 ms [1.957 ms, 2.048 ms] 523.151 µs (35.4%)
tracing 1.974 ms [1.932 ms, 2.017 ms] 494.821 µs (33.4%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.477 ms [1.466 ms, 1.489 ms] -
appsec 2.36 ms [2.316 ms, 2.405 ms] 883.386 µs (59.8%)
iast 2.136 ms [2.079 ms, 2.192 ms] 658.687 µs (44.6%)
iast_GLOBAL 2.178 ms [2.122 ms, 2.235 ms] 701.382 µs (47.5%)
profiling 1.994 ms [1.949 ms, 2.039 ms] 517.41 µs (35.0%)
tracing 1.97 ms [1.927 ms, 2.013 ms] 492.97 µs (33.4%)

@manuel-alvarez-alvarez manuel-alvarez-alvarez force-pushed the malvarez/waf-sdk-appsec-inactive branch 6 times, most recently from f712970 to cf301ce Compare March 13, 2025 12:52
Base automatically changed from malvarez/waf-sdk-appsec-inactive to master March 13, 2025 13:55
@manuel-alvarez-alvarez manuel-alvarez-alvarez force-pushed the malvarez/waf-set-user-sdk branch 2 times, most recently from c45edb0 to d18f607 Compare March 14, 2025 08:57
@manuel-alvarez-alvarez manuel-alvarez-alvarez marked this pull request as ready for review March 14, 2025 08:58
@manuel-alvarez-alvarez manuel-alvarez-alvarez requested review from a team as code owners March 14, 2025 08:58
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.

Looks fine from apm-java side

@manuel-alvarez-alvarez manuel-alvarez-alvarez force-pushed the malvarez/waf-set-user-sdk branch 2 times, most recently from 8697caf to 70fd62c Compare March 17, 2025 12:56
@@ -105,9 +128,15 @@ public void onUserEvent(final UserIdCollectionMode mode, final String userId) {
}
if (mode != SDK) {
segment.setTagTop("_dd.appsec.usr.id", finalUserId);
} else if (propagated) {
// only the SDK can propagate usr.id
segment.setTagTop("_dd.p.usr.id", encodeBase64(finalUserId));
Copy link
Member

Choose a reason for hiding this comment

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

For that tag to propagate, some additional implementations are needed. You can find some examples here:

🔗 GitHub PR Example

We can discuss it offline if you need more details. 😊

Copy link
Member Author

Choose a reason for hiding this comment

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

Agreed, let's keep the propagation aside for now, thanks for the feedback!

Copy link
Member

@jandro996 jandro996 left a comment

Choose a reason for hiding this comment

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

LGTM!

@manuel-alvarez-alvarez manuel-alvarez-alvarez merged commit 0e691f4 into master Mar 19, 2025
271 checks passed
@manuel-alvarez-alvarez manuel-alvarez-alvarez deleted the malvarez/waf-set-user-sdk branch March 19, 2025 11:57
@github-actions github-actions bot added this to the 1.48.0 milestone Mar 19, 2025
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Apr 11, 2025
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
| org.flywaydb.flyway | plugin | misk/gradle/libs.versions.toml | gradle
| minor | `11.6.0` -> `11.7.0` |
|
[com.squareup.okio:okio-fakefilesystem](https://github.com/square/okio)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`3.10.2` -> `3.11.0` |
| [com.squareup.okio:okio](https://github.com/square/okio) |
dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`3.10.2` -> `3.11.0` |
|
[com.autonomousapps.dependency-analysis](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin)
| plugin | misk/gradle/libs.versions.toml | gradle | minor | `2.15.0` ->
`2.16.0` |
| [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.47.3` -> `1.48.1` |
| [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.47.3` -> `1.48.1` |
| [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.18` -> `2.31.20` |
| [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.18` -> `2.31.20` |
|
[software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.18` -> `2.31.20` |
| [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.18` -> `2.31.20` |
| [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.18` -> `2.31.20` |
| [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.18` -> `2.31.20` |
| [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.18` -> `2.31.20` |

---

### Release Notes

<details>
<summary>square/okio (com.squareup.okio:okio-fakefilesystem)</summary>

###
[`v3.11.0`](https://github.com/square/okio/blob/HEAD/CHANGELOG.md#Version-3110)

*2025-04-09*

-   Fix: Clear the deflater's byte array reference
-   New: Faster implementation of `String.decodeHex()` on Kotlin/JS.
- New: Declare `EXACTLY_ONCE` execution for blocks like `Closeable.use
{}` and `FileSystem.read {}`.
-   Upgrade: \[Kotlin 2.1.20]\[kotlin\_2\_1\_20].

</details>

<details>
<summary>autonomousapps/dependency-analysis-android-gradle-plugin
(com.autonomousapps.dependency-analysis)</summary>

###
[`v2.16.0`](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/blob/HEAD/CHANGELOG.md#Version-2160)

-   \[Feat]: support `com.android.test` projects.
-   \[Feat]: support typesafe project accessors with opt-in.

```kotlin
dependencyAnalysis {
  useTypesafeProjectAccessors(true) // false by default
}
```

</details>

<details>
<summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary>

###
[`v1.48.1`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.48.1):
1.48.1

### Components

#### Tracer internal logging

- 🐛 Remove print line causing unnecessary logs
([#&#8203;8687](DataDog/dd-trace-java#8687) -
[@&#8203;sarahchen6](https://github.com/sarahchen6))

###
[`v1.48.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.48.0):
1.48.0

### Known Bugs

> \[!NOTE]
> If you are experiencing issues with spamming timeout logs, please
update to the [latest
version](https://github.com/DataDog/dd-trace-java/releases/latest) or
set
[JDK_SOCKET_ENABLED](https://github.com/DataDog/dd-trace-java/blob/33fc3c9a9b7cda3beda88b8b3e5224ae2b10764a/dd-trace-api/src/main/java/datadog/trace/api/config/GeneralConfig.java#L98)
to false.

### Components

#### Application Security Management (IAST)

- ✨ Fix vulnerability location org.jose4j.lang.HashUtil
([#&#8203;8610](DataDog/dd-trace-java#8610) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Fix weak randomness in oracle.ucp.util.OpaqueString
([#&#8203;8609](DataDog/dd-trace-java#8609) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Fix weak hash false positive in
oracle.security.o5logon.O5Logon
([#&#8203;8608](DataDog/dd-trace-java#8608) -
[@&#8203;jandro996](https://github.com/jandro996))
- 🐛 Prevent before callsites targeting constructors in super calls
([#&#8203;8549](DataDog/dd-trace-java#8549) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))

#### Application Security Management (WAF)

- ✨ Update login events public SDK to V2
([#&#8203;8620](DataDog/dd-trace-java#8620) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- 🐛 Send RASP LFI capability only when AppSec is statically enabled
([#&#8203;8573](DataDog/dd-trace-java#8573) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Improve detection of missing request end events
([#&#8203;8510](DataDog/dd-trace-java#8510) -
[@&#8203;smola](https://github.com/smola))
- 🧹 Remove remote configuration for API Security sampling rate
([#&#8203;8486](DataDog/dd-trace-java#8486) -
[@&#8203;smola](https://github.com/smola))
- ✨ Add setUser to user monitoring SDK
([#&#8203;8482](DataDog/dd-trace-java#8482) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Add missing address for signup event
([#&#8203;8469](DataDog/dd-trace-java#8469) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Allow login events SDK to be used with appsec disabled
([#&#8203;8464](DataDog/dd-trace-java#8464) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Add support for endpoint discovery in spring mvc
([#&#8203;8352](DataDog/dd-trace-java#8352) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ New API Security sampling algorithm
([#&#8203;8178](DataDog/dd-trace-java#8178) -
[@&#8203;ValentinZakharov](https://github.com/ValentinZakharov))

#### Build & Tooling

- ✨ Add buffer size customizability to JDK UDS support
([#&#8203;8629](DataDog/dd-trace-java#8629) -
[@&#8203;sarahchen6](https://github.com/sarahchen6))
- ✨ Add JDK built-in support for UDS on Java 16+
([#&#8203;8314](DataDog/dd-trace-java#8314) -
[@&#8203;sarahchen6](https://github.com/sarahchen6))

#### Configuration at Runtime

- 🐛 Send RASP LFI capability only when AppSec is statically enabled
([#&#8203;8573](DataDog/dd-trace-java#8573) -
[@&#8203;jandro996](https://github.com/jandro996))

#### Continuous Integration Visibility

- 🐛 Prevent double reporting of Scalatest events when using SBT with
test forking
([#&#8203;8682](DataDog/dd-trace-java#8682) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Shutdown CI Visibility test event handlers before tracer
([#&#8203;8677](DataDog/dd-trace-java#8677) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Do not apply JUnit 4 instrumentation to MUnit runners
([#&#8203;8675](DataDog/dd-trace-java#8675),
[#&#8203;8683](DataDog/dd-trace-java#8683) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Remove error log when source path resolution fails on
isModified check
([#&#8203;8663](DataDog/dd-trace-java#8663) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Implement tests reordering for JUnit 4
([#&#8203;8650](DataDog/dd-trace-java#8650) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- 🐛 Set default Attempt to Fix retries if none provided from the
backend
([#&#8203;8615](DataDog/dd-trace-java#8615) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Allow to manually set PR info
([#&#8203;8566](DataDog/dd-trace-java#8566) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Fix Test Optimization init when repo root cannot be determined
([#&#8203;8533](DataDog/dd-trace-java#8533) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Add capabilities tagging
([#&#8203;8499](DataDog/dd-trace-java#8499),
[#&#8203;8540](DataDog/dd-trace-java#8540) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))

#### Crash tracking

- 🐛 Remove dependency on bash from crash/oome uploder scripts
([#&#8203;8652](DataDog/dd-trace-java#8652) -
[@&#8203;jbachorik](https://github.com/jbachorik))

#### Data Streams Monitoring

- ✨ e2e pipeline configuration when data jobs is enabled
([#&#8203;8553](DataDog/dd-trace-java#8553) -
[@&#8203;kr-igor](https://github.com/kr-igor))

#### Dynamic Instrumentation

- 🐛 Fix In-Product when config is empty
([#&#8203;8679](DataDog/dd-trace-java#8679) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Add support for filtering shaded third-party libs
([#&#8203;8612](DataDog/dd-trace-java#8612) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Add In-Product Enablement
([#&#8203;8587](DataDog/dd-trace-java#8587) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨⚡ Reduce footprint of SourceFile tracking
([#&#8203;8524](DataDog/dd-trace-java#8524) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨⚡ Optimize the SourceFile tracking
([#&#8203;8520](DataDog/dd-trace-java#8520) -
[@&#8203;jpbempel](https://github.com/jpbempel))

#### OpenTracing

- 🧹 Remove activeScope() use in OpenTracing shim
([#&#8203;8478](DataDog/dd-trace-java#8478) -
[@&#8203;mcculls](https://github.com/mcculls))

#### Profiling

- ✨ Add profiler env check command to AgentCLI
([#&#8203;8671](DataDog/dd-trace-java#8671) -
[@&#8203;jbachorik](https://github.com/jbachorik))

- ✨ Bump ddprof to 1.23.0
([#&#8203;8668](DataDog/dd-trace-java#8668) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- Fix a crash related to ElfParser::loadSymbolTable
([#&#8203;191](DataDog/dd-trace-java#191)) by
[@&#8203;yanglong1010](https://github.com/yanglong1010) in
DataDog/java-profiler#192
- Unwind String.indexOf intrinsic on AArch64 by
[@&#8203;MattAlp](https://github.com/MattAlp) in
DataDog/java-profiler#193
- Fix Java 24 support by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#194
- A set of fixes related to clang, aarch64 and musl pecularities of
vmstructs stack unwinder by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#199

- 🐛 Remove process information from JFR recording
([#&#8203;8661](DataDog/dd-trace-java#8661) -
[@&#8203;r1viollet](https://github.com/r1viollet))

- 🐛 Make TempLocationManager USER aware
([#&#8203;8605](DataDog/dd-trace-java#8605) -
[@&#8203;jbachorik](https://github.com/jbachorik))

- ✨ Extract git tags from embedded git.properties and
datadog_git.properties
([#&#8203;8561](DataDog/dd-trace-java#8561) -
[@&#8203;wmouchere](https://github.com/wmouchere))

#### Telemetry

- 🐛 Fix appsec.rasp.error and appsec.waf.error telemetry metrics
([#&#8203;8624](DataDog/dd-trace-java#8624) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Create metric: appsec.rasp.rule.skipped
([#&#8203;8618](DataDog/dd-trace-java#8618) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Extract git tags from embedded git.properties and
datadog_git.properties
([#&#8203;8561](DataDog/dd-trace-java#8561) -
[@&#8203;wmouchere](https://github.com/wmouchere))

#### Testing

- 🧹 Simplify ssi tests one-pipeline
([#&#8203;8558](DataDog/dd-trace-java#8558) -
[@&#8203;robertomonteromiguel](https://github.com/robertomonteromiguel))
- ✨ Add smoke tests for java's concurrent API
([#&#8203;8438](DataDog/dd-trace-java#8438) -
[@&#8203;sarahchen6](https://github.com/sarahchen6))

#### Trace context propagation

- ✨ Adding Support for `TRACE_PROPAGATION_BEHAVIOR_EXTRACT`
([#&#8203;8535](DataDog/dd-trace-java#8535) -
[@&#8203;mhlidd](https://github.com/mhlidd))

#### Tracer core

- 🐛 Ensure shaded helpers have unique names
([#&#8203;8559](DataDog/dd-trace-java#8559) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Support common config sources for user-provided git info
([#&#8203;8547](DataDog/dd-trace-java#8547) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Make the default config sources more robust when a security
manager is installed
([#&#8203;8544](DataDog/dd-trace-java#8544) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Support targeting services with configurations in stable
configuration file
([#&#8203;8526](DataDog/dd-trace-java#8526) -
[@&#8203;mtoffl01](https://github.com/mtoffl01))
- ✨ Add new parser for `DD_TAGS` and prioritizing `DD_SERVICE`
([#&#8203;8296](DataDog/dd-trace-java#8296) -
[@&#8203;mhlidd](https://github.com/mhlidd))

#### Tracer internal logging

- 🐛 Add missing debug log for the cloudPayloadTaggingServices config
([#&#8203;8600](DataDog/dd-trace-java#8600) -
[@&#8203;ygree](https://github.com/ygree))
- ✨ Add the possibility to output the logs of the Java tracer
in JSON
([#&#8203;8083](DataDog/dd-trace-java#8083) -
[@&#8203;cecile75](https://github.com/cecile75))

#### Tracer public API

- ✨ Introducing `DD_TRACE_EXPERIMENTAL_FEATURES_ENABLED` Config
([#&#8203;8536](DataDog/dd-trace-java#8536) -
[@&#8203;mhlidd](https://github.com/mhlidd))
- ✨ Config Consistency Round 2
([#&#8203;8489](DataDog/dd-trace-java#8489) -
[@&#8203;mhlidd](https://github.com/mhlidd))

### Instrumentations

####

- 🐛 Fix NPE in getMdcCopy of LoggingEventInstrumentation
([#&#8203;8599](DataDog/dd-trace-java#8599) -
[@&#8203;ygree](https://github.com/ygree))

#### Apache Spark instrumentation

- ✨ Instrument Runtime.exit() to finish spark application spans
([#&#8203;8572](DataDog/dd-trace-java#8572) -
[@&#8203;paul-laffon-dd](https://github.com/paul-laffon-dd))
- ✨ Configure OpenLineage if present in Spark instrumentation
([#&#8203;8541](DataDog/dd-trace-java#8541) -
[@&#8203;mobuchowski](https://github.com/mobuchowski))

#### Armeria Instrumentation

- ✨ Support armeria grpc 1.32.3
([#&#8203;8606](DataDog/dd-trace-java#8606) -
[@&#8203;github-actions](https://github.com/github-actions)\[bot])

#### AWS DynamoDB Instrumentation

- ✨ Create DynamoDB instrumentation + add span pointers for
`updateItem` and `deleteItem`
([#&#8203;8490](DataDog/dd-trace-java#8490) -
[@&#8203;nhulston](https://github.com/nhulston))

#### AWS SDK instrumentation

- ✨ Add DynamoDB in
DEFAULT_TRACE_CLOUD_PAYLOAD_TAGGING_SERVICES
([#&#8203;8595](DataDog/dd-trace-java#8595) -
[@&#8203;joeyzhao2018](https://github.com/joeyzhao2018))

#### Azure Functions instrumentation

- ✨ Enable tracer computed trace metrics by default for Azure
Functions
([#&#8203;8518](DataDog/dd-trace-java#8518) -
[@&#8203;duncanpharvey](https://github.com/duncanpharvey))
- 💡 Add azure-functions instrumentation
([#&#8203;8432](DataDog/dd-trace-java#8432) -
[@&#8203;duncanpharvey](https://github.com/duncanpharvey))

#### Core Java language instrumentation

- 🐛 Fix ForkJoinPool.execute() instrumentation on Java 21+
([#&#8203;8560](DataDog/dd-trace-java#8560) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

#### Eclipse Vert.x instrumentation

- ✨ Add vertx postgresql client instrumentation
([#&#8203;8471](DataDog/dd-trace-java#8471) -
[@&#8203;vandonr](https://github.com/vandonr) - thanks for the
contribution!)

#### Kafka instrumentation

- ✨ Support and test kafka-clients 4
([#&#8203;8581](DataDog/dd-trace-java#8581) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Kotlin instrumentation

- ✨ Avoid disconnected traces when using Kotlin flowOn
([#&#8203;8651](DataDog/dd-trace-java#8651) -
[@&#8203;mcculls](https://github.com/mcculls))

#### OpenTelemetry instrumentation

- 🧹 Migrate OtelContext wrapper to new internal Context API
([#&#8203;8645](DataDog/dd-trace-java#8645) -
[@&#8203;mcculls](https://github.com/mcculls))

#### Spring instrumentation

- 🐛 Support CompletableFuture on spring webmvc controllers
([#&#8203;8659](DataDog/dd-trace-java#8659) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Add support for endpoint discovery in spring mvc
([#&#8203;8352](DataDog/dd-trace-java#8352) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))

#### WebSocket Instrumentation

- ✨ Instrument Jetty websocket pojo
([#&#8203;8562](DataDog/dd-trace-java#8562) -
[@&#8203;amarziali](https://github.com/amarziali))
- 💡 Instrument Java Websocket API (JSR356)
([#&#8203;8440](DataDog/dd-trace-java#8440) -
[@&#8203;amarziali](https://github.com/amarziali))

#### All other instrumentations

- ✨ Introduce cache for peer.hostname lookup
([#&#8203;8601](DataDog/dd-trace-java#8601) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Support pekko http 1.1
([#&#8203;8532](DataDog/dd-trace-java#8532) -
[@&#8203;amarziali](https://github.com/amarziali))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am
every weekday" in timezone Australia/Melbourne, Automerge - At any time
(no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

GitOrigin-RevId: 331314f71acaced3adc75ea5d7e855c248d593fc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp: asm waf Application Security Management (WAF) type: enhancement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants