Skip to content
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

Add a built-in trace interceptor for keeping traces depending of their latency #8040

Merged
merged 8 commits into from
Dec 5, 2024

Conversation

cecile75
Copy link
Collaborator

@cecile75 cecile75 commented Nov 29, 2024

What Does This Do

Add the possibility to enable a latency trace interceptor

This latency trace interceptor is disabled by default.
We can activate it by setting the value of dd.trace.experimental.keep.latency.threshold.ms or DD_TRACE_EXPERIMENTAL_KEEP_LATENCY_THRESHOLD_MS to a positive value
This value should be in milliseconds and this interceptor will retain any local trace who has a root span duration greater than this value.
The activation of this interceptor is ignored if partial flush is enabled in order to avoid incomplete local trace (incomplete chunk of trace).
Note that since we're changing the sampling priority at the end of local trace, there is no guarantee to get complete traces,
since the original sampling priority for this trace may have already been propagated.

Usage

Environment Variable: DD_TRACE_EXPERIMENTAL_KEEP_LATENCY_THRESHOLD_MS (system property: dd.trace.experimental.keep.latency.threshold.ms)

Must be set alongside environment variable DD_TRACE_PARTIAL_FLUSH_ENABLED=false (system property dd.trace.partial.flush.enabled=false)

Default: 0 (Disabled)

Description: This value should be in milliseconds, any local traces who has a root span duration greater than this value will be retained via MANUAL_KEEP.

Motivation

APMS-14002

Additional Notes

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@pr-commenter
Copy link

pr-commenter bot commented Nov 29, 2024

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master cecile/latencyinterceptor
git_commit_date 1733412266 1733413333
git_commit_sha 39e43da d63fbf5
release_version 1.44.0-SNAPSHOT~39e43da11f 1.44.0-SNAPSHOT~d63fbf5cd6
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1733415854 1733415854
ci_job_id 728245147 728245147
ci_pipeline_id 50401092 50401092
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
module Agent Agent
parent None None
variant iast iast

Summary

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

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.44.0-SNAPSHOT~d63fbf5cd6, baseline=1.44.0-SNAPSHOT~39e43da11f

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.095 s) : 0, 1094546
Total [baseline] (10.467 s) : 0, 10466795
Agent [candidate] (1.096 s) : 0, 1095513
Total [candidate] (10.476 s) : 0, 10475710
section appsec
Agent [baseline] (1.226 s) : 0, 1226449
Total [baseline] (10.743 s) : 0, 10743292
Agent [candidate] (1.235 s) : 0, 1234950
Total [candidate] (10.75 s) : 0, 10750371
section iast
Agent [baseline] (1.219 s) : 0, 1218880
Total [baseline] (10.975 s) : 0, 10974838
Agent [candidate] (1.217 s) : 0, 1216767
Total [candidate] (10.979 s) : 0, 10979499
section profiling
Agent [baseline] (1.315 s) : 0, 1314762
Total [baseline] (10.745 s) : 0, 10744909
Agent [candidate] (1.323 s) : 0, 1323237
Total [candidate] (10.772 s) : 0, 10772046
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.095 s -
Agent appsec 1.226 s 131.903 ms (12.1%)
Agent iast 1.219 s 124.334 ms (11.4%)
Agent profiling 1.315 s 220.216 ms (20.1%)
Total tracing 10.467 s -
Total appsec 10.743 s 276.496 ms (2.6%)
Total iast 10.975 s 508.043 ms (4.9%)
Total profiling 10.745 s 278.114 ms (2.7%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.096 s -
Agent appsec 1.235 s 139.437 ms (12.7%)
Agent iast 1.217 s 121.254 ms (11.1%)
Agent profiling 1.323 s 227.723 ms (20.8%)
Total tracing 10.476 s -
Total appsec 10.75 s 274.661 ms (2.6%)
Total iast 10.979 s 503.79 ms (4.8%)
Total profiling 10.772 s 296.336 ms (2.8%)
gantt
    title petclinic - break down per module: candidate=1.44.0-SNAPSHOT~d63fbf5cd6, baseline=1.44.0-SNAPSHOT~39e43da11f

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (696.47 ms) : 0, 696470
BytebuddyAgent [candidate] (697.574 ms) : 0, 697574
GlobalTracer [baseline] (317.633 ms) : 0, 317633
GlobalTracer [candidate] (319.101 ms) : 0, 319101
AppSec [baseline] (54.694 ms) : 0, 54694
AppSec [candidate] (55.126 ms) : 0, 55126
Remote Config [baseline] (690.114 µs) : 0, 690
Remote Config [candidate] (685.96 µs) : 0, 686
Telemetry [baseline] (11.274 ms) : 0, 11274
Telemetry [candidate] (9.221 ms) : 0, 9221
section appsec
BytebuddyAgent [baseline] (711.29 ms) : 0, 711290
BytebuddyAgent [candidate] (718.137 ms) : 0, 718137
GlobalTracer [baseline] (315.247 ms) : 0, 315247
GlobalTracer [candidate] (317.191 ms) : 0, 317191
AppSec [baseline] (167.842 ms) : 0, 167842
AppSec [candidate] (167.072 ms) : 0, 167072
IAST [baseline] (19.801 ms) : 0, 19801
IAST [candidate] (19.805 ms) : 0, 19805
Remote Config [baseline] (644.921 µs) : 0, 645
Remote Config [candidate] (643.997 µs) : 0, 644
Telemetry [baseline] (7.798 ms) : 0, 7798
Telemetry [candidate] (8.153 ms) : 0, 8153
section iast
BytebuddyAgent [baseline] (812.158 ms) : 0, 812158
BytebuddyAgent [candidate] (810.312 ms) : 0, 810312
GlobalTracer [baseline] (305.886 ms) : 0, 305886
GlobalTracer [candidate] (306.362 ms) : 0, 306362
AppSec [baseline] (57.115 ms) : 0, 57115
AppSec [candidate] (56.812 ms) : 0, 56812
IAST [baseline] (21.787 ms) : 0, 21787
IAST [candidate] (21.502 ms) : 0, 21502
Remote Config [baseline] (635.302 µs) : 0, 635
Remote Config [candidate] (620.084 µs) : 0, 620
Telemetry [baseline] (7.55 ms) : 0, 7550
Telemetry [candidate] (7.403 ms) : 0, 7403
section profiling
BytebuddyAgent [baseline] (687.795 ms) : 0, 687795
BytebuddyAgent [candidate] (690.808 ms) : 0, 690808
GlobalTracer [baseline] (432.95 ms) : 0, 432950
GlobalTracer [candidate] (436.307 ms) : 0, 436307
AppSec [baseline] (53.484 ms) : 0, 53484
AppSec [candidate] (54.377 ms) : 0, 54377
Remote Config [baseline] (662.592 µs) : 0, 663
Remote Config [candidate] (668.428 µs) : 0, 668
Telemetry [baseline] (7.745 ms) : 0, 7745
Telemetry [candidate] (7.752 ms) : 0, 7752
ProfilingAgent [baseline] (93.1 ms) : 0, 93100
ProfilingAgent [candidate] (94.119 ms) : 0, 94119
Profiling [baseline] (93.124 ms) : 0, 93124
Profiling [candidate] (94.142 ms) : 0, 94142
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.44.0-SNAPSHOT~d63fbf5cd6, baseline=1.44.0-SNAPSHOT~39e43da11f

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.101 s) : 0, 1101106
Total [baseline] (8.697 s) : 0, 8697333
Agent [candidate] (1.093 s) : 0, 1093036
Total [candidate] (8.676 s) : 0, 8675994
section iast
Agent [baseline] (1.227 s) : 0, 1226591
Total [baseline] (9.229 s) : 0, 9228781
Agent [candidate] (1.216 s) : 0, 1216314
Total [candidate] (9.215 s) : 0, 9214785
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.226 s) : 0, 1225765
Total [baseline] (9.16 s) : 0, 9160434
Agent [candidate] (1.22 s) : 0, 1219658
Total [candidate] (9.18 s) : 0, 9180479
section iast_TELEMETRY_OFF
Agent [baseline] (1.216 s) : 0, 1216064
Total [baseline] (9.197 s) : 0, 9196883
Agent [candidate] (1.213 s) : 0, 1213436
Total [candidate] (9.217 s) : 0, 9216716
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.101 s -
Agent iast 1.227 s 125.486 ms (11.4%)
Agent iast_HARDCODED_SECRET_DISABLED 1.226 s 124.66 ms (11.3%)
Agent iast_TELEMETRY_OFF 1.216 s 114.958 ms (10.4%)
Total tracing 8.697 s -
Total iast 9.229 s 531.448 ms (6.1%)
Total iast_HARDCODED_SECRET_DISABLED 9.16 s 463.101 ms (5.3%)
Total iast_TELEMETRY_OFF 9.197 s 499.549 ms (5.7%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.093 s -
Agent iast 1.216 s 123.278 ms (11.3%)
Agent iast_HARDCODED_SECRET_DISABLED 1.22 s 126.623 ms (11.6%)
Agent iast_TELEMETRY_OFF 1.213 s 120.401 ms (11.0%)
Total tracing 8.676 s -
Total iast 9.215 s 538.791 ms (6.2%)
Total iast_HARDCODED_SECRET_DISABLED 9.18 s 504.484 ms (5.8%)
Total iast_TELEMETRY_OFF 9.217 s 540.722 ms (6.2%)
gantt
    title insecure-bank - break down per module: candidate=1.44.0-SNAPSHOT~d63fbf5cd6, baseline=1.44.0-SNAPSHOT~39e43da11f

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (700.092 ms) : 0, 700092
BytebuddyAgent [candidate] (693.354 ms) : 0, 693354
GlobalTracer [baseline] (320.402 ms) : 0, 320402
GlobalTracer [candidate] (317.871 ms) : 0, 317871
AppSec [baseline] (54.833 ms) : 0, 54833
AppSec [candidate] (54.596 ms) : 0, 54596
Remote Config [baseline] (685.541 µs) : 0, 686
Remote Config [candidate] (681.314 µs) : 0, 681
Telemetry [baseline] (11.255 ms) : 0, 11255
Telemetry [candidate] (12.798 ms) : 0, 12798
section iast
BytebuddyAgent [baseline] (819.122 ms) : 0, 819122
BytebuddyAgent [candidate] (810.475 ms) : 0, 810475
GlobalTracer [baseline] (306.38 ms) : 0, 306380
GlobalTracer [candidate] (305.709 ms) : 0, 305709
AppSec [baseline] (57.146 ms) : 0, 57146
AppSec [candidate] (56.935 ms) : 0, 56935
IAST [baseline] (21.835 ms) : 0, 21835
IAST [candidate] (21.402 ms) : 0, 21402
Remote Config [baseline] (642.493 µs) : 0, 642
Remote Config [candidate] (633.59 µs) : 0, 634
Telemetry [baseline] (7.618 ms) : 0, 7618
Telemetry [candidate] (7.416 ms) : 0, 7416
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (816.832 ms) : 0, 816832
BytebuddyAgent [candidate] (810.514 ms) : 0, 810514
GlobalTracer [baseline] (306.809 ms) : 0, 306809
GlobalTracer [candidate] (307.381 ms) : 0, 307381
AppSec [baseline] (57.88 ms) : 0, 57880
AppSec [candidate] (57.446 ms) : 0, 57446
IAST [baseline] (22.155 ms) : 0, 22155
IAST [candidate] (22.194 ms) : 0, 22194
Remote Config [baseline] (651.288 µs) : 0, 651
Remote Config [candidate] (659.786 µs) : 0, 660
Telemetry [baseline] (7.589 ms) : 0, 7589
Telemetry [candidate] (7.638 ms) : 0, 7638
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (809.485 ms) : 0, 809485
BytebuddyAgent [candidate] (806.748 ms) : 0, 806748
GlobalTracer [baseline] (305.146 ms) : 0, 305146
GlobalTracer [candidate] (306.013 ms) : 0, 306013
AppSec [baseline] (55.521 ms) : 0, 55521
AppSec [candidate] (56.757 ms) : 0, 56757
IAST [baseline] (24.1 ms) : 0, 24100
IAST [candidate] (22.244 ms) : 0, 22244
Remote Config [baseline] (623.726 µs) : 0, 624
Remote Config [candidate] (604.033 µs) : 0, 604
Telemetry [baseline] (7.438 ms) : 0, 7438
Telemetry [candidate] (7.365 ms) : 0, 7365
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2024-12-05T15:57:49 2024-12-05T16:04:49
git_branch master cecile/latencyinterceptor
git_commit_date 1733412266 1733413333
git_commit_sha 39e43da d63fbf5
release_version 1.44.0-SNAPSHOT~39e43da11f 1.44.0-SNAPSHOT~d63fbf5cd6
start_time 2024-12-05T15:57:35 2024-12-05T16:04:36
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1733415047 1733415047
ci_job_id 728245148 728245148
ci_pipeline_id 50401092 50401092
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
variant iast iast

Summary

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

scenario Δ mean http_req_duration Δ mean throughput candidate mean http_req_duration candidate mean throughput baseline mean http_req_duration baseline mean throughput
scenario:load:petclinic:profiling worse
[+54.839µs; +107.764µs] or [+3.642%; +7.156%]
unstable
[-674.893op/s; +446.973op/s] or [-21.934%; +14.527%]
1.587ms 2962.963op/s 1.506ms 3076.923op/s
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.44.0-SNAPSHOT~d63fbf5cd6, baseline=1.44.0-SNAPSHOT~39e43da11f
    dateFormat X
    axisFormat %s
section baseline
no_agent (374.311 µs) : 354, 395
.   : milestone, 374,
iast (500.232 µs) : 479, 522
.   : milestone, 500,
iast_FULL (652.344 µs) : 631, 674
.   : milestone, 652,
iast_GLOBAL (521.671 µs) : 500, 543
.   : milestone, 522,
iast_HARDCODED_SECRET_DISABLED (502.46 µs) : 481, 524
.   : milestone, 502,
iast_INACTIVE (455.993 µs) : 435, 477
.   : milestone, 456,
iast_TELEMETRY_OFF (489.259 µs) : 468, 511
.   : milestone, 489,
tracing (451.596 µs) : 431, 472
.   : milestone, 452,
section candidate
no_agent (375.728 µs) : 356, 396
.   : milestone, 376,
iast (493.027 µs) : 472, 514
.   : milestone, 493,
iast_FULL (655.845 µs) : 634, 677
.   : milestone, 656,
iast_GLOBAL (533.263 µs) : 511, 555
.   : milestone, 533,
iast_HARDCODED_SECRET_DISABLED (497.936 µs) : 476, 519
.   : milestone, 498,
iast_INACTIVE (462.934 µs) : 442, 484
.   : milestone, 463,
iast_TELEMETRY_OFF (495.583 µs) : 474, 518
.   : milestone, 496,
tracing (455.367 µs) : 435, 476
.   : milestone, 455,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 374.311 µs [354.083 µs, 394.538 µs] -
iast 500.232 µs [478.659 µs, 521.805 µs] 125.922 µs (33.6%)
iast_FULL 652.344 µs [630.623 µs, 674.064 µs] 278.033 µs (74.3%)
iast_GLOBAL 521.671 µs [500.202 µs, 543.14 µs] 147.36 µs (39.4%)
iast_HARDCODED_SECRET_DISABLED 502.46 µs [480.701 µs, 524.219 µs] 128.149 µs (34.2%)
iast_INACTIVE 455.993 µs [435.288 µs, 476.697 µs] 81.682 µs (21.8%)
iast_TELEMETRY_OFF 489.259 µs [467.528 µs, 510.99 µs] 114.949 µs (30.7%)
tracing 451.596 µs [431.149 µs, 472.044 µs] 77.286 µs (20.6%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 375.728 µs [355.659 µs, 395.797 µs] -
iast 493.027 µs [471.702 µs, 514.353 µs] 117.299 µs (31.2%)
iast_FULL 655.845 µs [634.305 µs, 677.386 µs] 280.117 µs (74.6%)
iast_GLOBAL 533.263 µs [511.062 µs, 555.463 µs] 157.534 µs (41.9%)
iast_HARDCODED_SECRET_DISABLED 497.936 µs [476.376 µs, 519.496 µs] 122.208 µs (32.5%)
iast_INACTIVE 462.934 µs [441.83 µs, 484.039 µs] 87.206 µs (23.2%)
iast_TELEMETRY_OFF 495.583 µs [473.596 µs, 517.57 µs] 119.854 µs (31.9%)
tracing 455.367 µs [435.038 µs, 475.695 µs] 79.638 µs (21.2%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.44.0-SNAPSHOT~d63fbf5cd6, baseline=1.44.0-SNAPSHOT~39e43da11f
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.356 ms) : 1337, 1376
.   : milestone, 1356,
appsec (1.782 ms) : 1757, 1807
.   : milestone, 1782,
appsec_no_iast (1.775 ms) : 1751, 1799
.   : milestone, 1775,
iast (1.509 ms) : 1486, 1531
.   : milestone, 1509,
profiling (1.506 ms) : 1482, 1529
.   : milestone, 1506,
tracing (1.519 ms) : 1494, 1544
.   : milestone, 1519,
section candidate
no_agent (1.369 ms) : 1350, 1389
.   : milestone, 1369,
appsec (1.783 ms) : 1758, 1807
.   : milestone, 1783,
appsec_no_iast (1.775 ms) : 1750, 1799
.   : milestone, 1775,
iast (1.516 ms) : 1494, 1539
.   : milestone, 1516,
profiling (1.587 ms) : 1562, 1613
.   : milestone, 1587,
tracing (1.507 ms) : 1483, 1531
.   : milestone, 1507,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.356 ms [1.337 ms, 1.376 ms] -
appsec 1.782 ms [1.757 ms, 1.807 ms] 425.793 µs (31.4%)
appsec_no_iast 1.775 ms [1.751 ms, 1.799 ms] 418.636 µs (30.9%)
iast 1.509 ms [1.486 ms, 1.531 ms] 152.382 µs (11.2%)
profiling 1.506 ms [1.482 ms, 1.529 ms] 149.656 µs (11.0%)
tracing 1.519 ms [1.494 ms, 1.544 ms] 163.137 µs (12.0%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.369 ms [1.35 ms, 1.389 ms] -
appsec 1.783 ms [1.758 ms, 1.807 ms] 413.189 µs (30.2%)
appsec_no_iast 1.775 ms [1.75 ms, 1.799 ms] 405.094 µs (29.6%)
iast 1.516 ms [1.494 ms, 1.539 ms] 146.963 µs (10.7%)
profiling 1.587 ms [1.562 ms, 1.613 ms] 217.757 µs (15.9%)
tracing 1.507 ms [1.483 ms, 1.531 ms] 137.242 µs (10.0%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master cecile/latencyinterceptor
git_commit_date 1733412266 1733413333
git_commit_sha 39e43da d63fbf5
release_version 1.44.0-SNAPSHOT~39e43da11f 1.44.0-SNAPSHOT~d63fbf5cd6
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1733415303 1733415303
ci_job_id 728245149 728245149
ci_pipeline_id 50401092 50401092
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
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.44.0-SNAPSHOT~d63fbf5cd6, baseline=1.44.0-SNAPSHOT~39e43da11f
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.415 s) : 15415000, 15415000
.   : milestone, 15415000,
appsec (14.865 s) : 14865000, 14865000
.   : milestone, 14865000,
iast (19.179 s) : 19179000, 19179000
.   : milestone, 19179000,
iast_GLOBAL (17.857 s) : 17857000, 17857000
.   : milestone, 17857000,
profiling (14.603 s) : 14603000, 14603000
.   : milestone, 14603000,
tracing (14.853 s) : 14853000, 14853000
.   : milestone, 14853000,
section candidate
no_agent (15.375 s) : 15375000, 15375000
.   : milestone, 15375000,
appsec (14.936 s) : 14936000, 14936000
.   : milestone, 14936000,
iast (18.894 s) : 18894000, 18894000
.   : milestone, 18894000,
iast_GLOBAL (18.254 s) : 18254000, 18254000
.   : milestone, 18254000,
profiling (15.479 s) : 15479000, 15479000
.   : milestone, 15479000,
tracing (14.906 s) : 14906000, 14906000
.   : milestone, 14906000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.415 s [15.415 s, 15.415 s] -
appsec 14.865 s [14.865 s, 14.865 s] -550.0 ms (-3.6%)
iast 19.179 s [19.179 s, 19.179 s] 3.764 s (24.4%)
iast_GLOBAL 17.857 s [17.857 s, 17.857 s] 2.442 s (15.8%)
profiling 14.603 s [14.603 s, 14.603 s] -812.0 ms (-5.3%)
tracing 14.853 s [14.853 s, 14.853 s] -562.0 ms (-3.6%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.375 s [15.375 s, 15.375 s] -
appsec 14.936 s [14.936 s, 14.936 s] -439.0 ms (-2.9%)
iast 18.894 s [18.894 s, 18.894 s] 3.519 s (22.9%)
iast_GLOBAL 18.254 s [18.254 s, 18.254 s] 2.879 s (18.7%)
profiling 15.479 s [15.479 s, 15.479 s] 104.0 ms (0.7%)
tracing 14.906 s [14.906 s, 14.906 s] -469.0 ms (-3.1%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.44.0-SNAPSHOT~d63fbf5cd6, baseline=1.44.0-SNAPSHOT~39e43da11f
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.475 ms) : 1463, 1486
.   : milestone, 1475,
appsec (2.356 ms) : 2314, 2398
.   : milestone, 2356,
iast (2.092 ms) : 2039, 2145
.   : milestone, 2092,
iast_GLOBAL (2.138 ms) : 2085, 2192
.   : milestone, 2138,
profiling (1.984 ms) : 1940, 2028
.   : milestone, 1984,
tracing (1.94 ms) : 1899, 1981
.   : milestone, 1940,
section candidate
no_agent (1.471 ms) : 1459, 1482
.   : milestone, 1471,
appsec (2.357 ms) : 2316, 2399
.   : milestone, 2357,
iast (2.089 ms) : 2037, 2142
.   : milestone, 2089,
iast_GLOBAL (2.134 ms) : 2080, 2187
.   : milestone, 2134,
profiling (1.961 ms) : 1918, 2003
.   : milestone, 1961,
tracing (1.937 ms) : 1897, 1978
.   : milestone, 1937,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.475 ms [1.463 ms, 1.486 ms] -
appsec 2.356 ms [2.314 ms, 2.398 ms] 881.395 µs (59.8%)
iast 2.092 ms [2.039 ms, 2.145 ms] 617.287 µs (41.9%)
iast_GLOBAL 2.138 ms [2.085 ms, 2.192 ms] 663.645 µs (45.0%)
profiling 1.984 ms [1.94 ms, 2.028 ms] 509.286 µs (34.5%)
tracing 1.94 ms [1.899 ms, 1.981 ms] 465.385 µs (31.6%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.471 ms [1.459 ms, 1.482 ms] -
appsec 2.357 ms [2.316 ms, 2.399 ms] 886.678 µs (60.3%)
iast 2.089 ms [2.037 ms, 2.142 ms] 618.693 µs (42.1%)
iast_GLOBAL 2.134 ms [2.08 ms, 2.187 ms] 662.808 µs (45.1%)
profiling 1.961 ms [1.918 ms, 2.003 ms] 489.895 µs (33.3%)
tracing 1.937 ms [1.897 ms, 1.978 ms] 466.57 µs (31.7%)

@@ -73,7 +73,8 @@ public final class TracerConfig {
public static final String TRACE_HTTP_CLIENT_ERROR_STATUSES = "trace.http.client.error.statuses";

public static final String SPLIT_BY_TAGS = "trace.split-by-tags";

// trace latency interceptor value should be in ms
public static final String TRACE_LATENCY_INTERCEPTOR_VALUE = "trace.latency.interceptor.value";
Copy link
Collaborator

Choose a reason for hiding this comment

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

I'd have used something like trace.keep.latency.threshold.ms

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

// This trace latency interceptor is disabled by default.
Copy link
Collaborator

Choose a reason for hiding this comment

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

nit: you can use /** for javadoc comments instead that //

configProvider.getInteger(
TRACE_LATENCY_INTERCEPTOR_VALUE, DEFAULT_TRACE_LATENCY_INTERCEPTOR_VALUE);

traceLatencyInterceptorEnabled = !partialFlushEnabled && (traceLatencyInterceptorValue >= 0);
Copy link
Collaborator

Choose a reason for hiding this comment

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

You do not need to set a negative default. I also would have ensured the minimum is strictly above 0

public class LatencyTraceInterceptor extends AbstractTraceInterceptor {
private static final Logger log = LoggerFactory.getLogger(LatencyTraceInterceptor.class);
// duration configured in ms, need to be converted in nano seconds
private static final int LATENCY = Config.get().getTraceLatencyInterceptorValue() * 1000000;
Copy link
Collaborator

@amarziali amarziali Dec 2, 2024

Choose a reason for hiding this comment

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

If the latency is in nanoseconds it must be a long instead. an int will be too little to hold more than a couple of seconds and will overflow

@cecile75 cecile75 changed the title Add a trace latency interceptor Add a built-in trace interceptor for keeping trace depending of their latency Dec 5, 2024
@cecile75 cecile75 changed the title Add a built-in trace interceptor for keeping trace depending of their latency Add a built-in trace interceptor for keeping traces depending of their latency Dec 5, 2024
Copy link
Contributor

@bm1549 bm1549 left a comment

Choose a reason for hiding this comment

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

LGTM just one comment about having this as "experimental" since it can cause broken traces and is not intended to be publicly documented at this point

Also, since this config would likely trace back to this PR in google search, we should also update the PR description with a Usage section that describes the config similar to how configs appear here

@cecile75 cecile75 marked this pull request as ready for review December 5, 2024 16:37
@cecile75 cecile75 requested a review from a team as a code owner December 5, 2024 16:37
@cecile75 cecile75 requested a review from smola December 5, 2024 16:37
@cecile75 cecile75 merged commit 2b24697 into master Dec 5, 2024
155 checks passed
@cecile75 cecile75 deleted the cecile/latencyinterceptor branch December 5, 2024 16:38
@github-actions github-actions bot added this to the 1.44.0 milestone Dec 5, 2024
@cecile75 cecile75 restored the cecile/latencyinterceptor branch December 6, 2024 10:14
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Dec 16, 2024
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
|
[com.google.api.grpc:proto-google-common-protos](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.49.0` -> `2.50.0` |
|
[com.google.cloud:google-cloud-core-http](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.48.0` -> `2.49.0` |
|
[com.google.cloud:google-cloud-spanner](https://github.com/googleapis/java-spanner)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`6.82.0` -> `6.83.0` |
|
[com.google.cloud:google-cloud-logging](https://github.com/googleapis/java-logging)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`3.20.7` -> `3.21.0` |
|
[com.google.cloud:google-cloud-datastore](https://github.com/googleapis/java-datastore)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.24.3` -> `2.25.1` |
|
[com.google.cloud:google-cloud-core](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.48.0` -> `2.49.0` |
| [com.google.api:gax](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.58.0` -> `2.59.0` |
|
[com.autonomousapps.dependency-analysis](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin)
| plugin | misk/gradle/libs.versions.toml | gradle | patch | `2.6.0` ->
`2.6.1` |
| [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.43.0` -> `1.44.1` |
| [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.43.0` -> `1.44.1` |
| [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
|
[software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [com.amazonaws:aws-java-sdk-sqs](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` ->
`1.12.780` |
| [com.amazonaws:aws-java-sdk-s3](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` ->
`1.12.780` |
|
[com.amazonaws:aws-java-sdk-dynamodb](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` ->
`1.12.780` |
| [com.amazonaws:aws-java-sdk-core](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` ->
`1.12.780` |

---

### Release Notes

<details>
<summary>googleapis/sdk-platform-java
(com.google.api.grpc:proto-google-common-protos)</summary>

###
[`v2.50.0`](https://github.com/googleapis/sdk-platform-java/blob/HEAD/CHANGELOG.md#2500-2024-11-14)

##### Features

- Add experimental S2A integration in client libraries grpc transport
([#&#8203;3326](googleapis/sdk-platform-java#3326))
([1138ca6](googleapis/sdk-platform-java@1138ca6))
- enable selective generation based on service config include list
([#&#8203;3323](googleapis/sdk-platform-java#3323))
([0cddadb](googleapis/sdk-platform-java@0cddadb))
- introduce `java.time` to java-core
([#&#8203;3330](googleapis/sdk-platform-java#3330))
([f202c3b](googleapis/sdk-platform-java@f202c3b))
- Update Gapic-Generator to generate libraries using `java.time` methods
([#&#8203;3321](googleapis/sdk-platform-java#3321))
([b21c9a4](googleapis/sdk-platform-java@b21c9a4))

##### Bug Fixes

- Fix flaky test
ScheduledRetryingExecutorTest.testCancelOuterFutureAfterStart
([#&#8203;3335](googleapis/sdk-platform-java#3335))
([e73740d](googleapis/sdk-platform-java@e73740d))
- httpjson callables to trace attempts (started, failed)
([#&#8203;3300](googleapis/sdk-platform-java#3300))
([15a64ee](googleapis/sdk-platform-java@15a64ee))
- instantiate GaxProperties at build time to ensure we get the protobuf
version
([#&#8203;3365](googleapis/sdk-platform-java#3365))
([bb2a3be](googleapis/sdk-platform-java@bb2a3be))
- protobuf version not always getting set in headers
([#&#8203;3322](googleapis/sdk-platform-java#3322))
([7f6e470](googleapis/sdk-platform-java@7f6e470))
- use BuildKit instead of legacy builder to build the Hermetic Build
images
([#&#8203;3338](googleapis/sdk-platform-java#3338))
([222fb45](googleapis/sdk-platform-java@222fb45))

##### Dependencies

- update google auth library dependencies to v1.30.0
([#&#8203;3367](googleapis/sdk-platform-java#3367))
([a31c682](googleapis/sdk-platform-java@a31c682))
- update grpc dependencies to v1.68.1
([#&#8203;3240](googleapis/sdk-platform-java#3240))
([c8e3941](googleapis/sdk-platform-java@c8e3941))

##### Documentation

- fix list num
([#&#8203;3356](googleapis/sdk-platform-java#3356))
([b7d6296](googleapis/sdk-platform-java@b7d6296))
- **hermetic-build:** indicate usage of Docker Buildkit in development
guide
([#&#8203;3337](googleapis/sdk-platform-java#3337))
([01e742d](googleapis/sdk-platform-java@01e742d))
- modify hermetic build docs
([#&#8203;3331](googleapis/sdk-platform-java#3331))
([25023af](googleapis/sdk-platform-java@25023af))

</details>

<details>
<summary>googleapis/java-spanner
(com.google.cloud:google-cloud-spanner)</summary>

###
[`v6.83.0`](https://github.com/googleapis/java-spanner/blob/HEAD/CHANGELOG.md#6830-2024-12-13)

##### Features

- Add Metrics host for built in metrics
([#&#8203;3519](googleapis/java-spanner#3519))
([4ed455a](googleapis/java-spanner@4ed455a))
- Add opt-in for using multiplexed sessions for blind writes
([#&#8203;3540](googleapis/java-spanner#3540))
([216f53e](googleapis/java-spanner@216f53e))
- Add UUID in Spanner TypeCode enum
([41f83dc](googleapis/java-spanner@41f83dc))
- Introduce java.time variables and methods
([#&#8203;3495](googleapis/java-spanner#3495))
([8a7d533](googleapis/java-spanner@8a7d533))
- **spanner:** Support multiplexed session for Partitioned operations
([#&#8203;3231](googleapis/java-spanner#3231))
([4501a3e](googleapis/java-spanner@4501a3e))
- Support 'set local' for retry_aborts_internally
([#&#8203;3532](googleapis/java-spanner#3532))
([331942f](googleapis/java-spanner@331942f))

##### Bug Fixes

- **deps:** Update the Java code generator (gapic-generator-java) to
2.51.0
([41f83dc](googleapis/java-spanner@41f83dc))

##### Dependencies

- Update sdk platform java dependencies
([#&#8203;3549](googleapis/java-spanner#3549))
([6235f0f](googleapis/java-spanner@6235f0f))

</details>

<details>
<summary>googleapis/java-logging
(com.google.cloud:google-cloud-logging)</summary>

###
[`v3.21.0`](https://github.com/googleapis/java-logging/blob/HEAD/CHANGELOG.md#3210-2024-12-13)

##### Features

- Introduce `java.time` methods
([#&#8203;1729](googleapis/java-logging#1729))
([323eb33](googleapis/java-logging@323eb33))

##### Bug Fixes

- **deps:** Update the Java code generator (gapic-generator-java) to
2.51.0
([04d8868](googleapis/java-logging@04d8868))

##### Dependencies

- Update dependency io.opentelemetry:opentelemetry-bom to v1.45.0
([#&#8203;1638](googleapis/java-logging#1638))
([7e007d4](googleapis/java-logging@7e007d4))
- Update sdk platform java dependencies
([#&#8203;1736](googleapis/java-logging#1736))
([88b4cdf](googleapis/java-logging@88b4cdf))

</details>

<details>
<summary>googleapis/java-datastore
(com.google.cloud:google-cloud-datastore)</summary>

###
[`v2.25.1`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2251-2024-12-13)

##### Bug Fixes

- **deps:** Update the Java code generator (gapic-generator-java) to
2.51.0
([106ee4d](googleapis/java-datastore@106ee4d))

##### Dependencies

- Update sdk platform java dependencies
([#&#8203;1685](googleapis/java-datastore#1685))
([4372350](googleapis/java-datastore@4372350))

###
[`v2.25.0`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2250-2024-12-11)

##### Features

- Introduce `java.time` methods and variables
([#&#8203;1671](googleapis/java-datastore#1671))
([5a78a80](googleapis/java-datastore@5a78a80))

##### Dependencies

- Update dependency com.google.cloud:gapic-libraries-bom to v1.48.0
([#&#8203;1605](googleapis/java-datastore#1605))
([5c6a678](googleapis/java-datastore@5c6a678))

##### Documentation

- Update gapic upgrade installation instructions
([#&#8203;1677](googleapis/java-datastore#1677))
([b3fbfcc](googleapis/java-datastore@b3fbfcc))

</details>

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

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

-   \[Fix]: `superClassName` can be null (Object has no superclass).

</details>

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

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

##### Components

##### Continuous Integration Visibility

- 🐛 Fix tracing JUnit5 tests in Maven projects with multiple forks
([#&#8203;8089](DataDog/dd-trace-java#8089) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))

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

##### Known Issues

> \[!WARNING]\
> This release contains a known issue that causes failures when using
Test Optimization to trace JUnit 5 tests in a Maven project where Maven
Surefire is configured with `forkCount` > 1.
> The issue is fixed in v1.44.1

##### Breaking Changes

> \[!WARNING]\
> Support for `X-Forwarded` header is dropped from default client IP
resolution.
> It can still be re-activated using the
`dd.trace.client-ip-header=x-forwarded` system property, or the
`DD_TRACE_CLIENT_IP_HEADER=x-forwarded` environment variable. See
[#&#8203;7946](DataDog/dd-trace-java#7946).

##### Components

##### Application Security Management (IAST)

- ✨ Set unexpected IAST exceptions to debug log level
([#&#8203;8044](DataDog/dd-trace-java#8044) -
[@&#8203;smola](https://github.com/smola))
- ✨ Increase IAST propagation to StringBuffer subSequence
([#&#8203;8038](DataDog/dd-trace-java#8038) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Increase IAST propagation to StringBuilder subSequence
([#&#8203;8026](DataDog/dd-trace-java#8026) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Add IAST propagation to String valueOf
([#&#8203;8013](DataDog/dd-trace-java#8013) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Increase IAST propagation to StringBuilder append
([#&#8203;8010](DataDog/dd-trace-java#8010) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Expand SSRF support in IAST to apache-httpclient-5 and
apache-httpasyncclient-4
([#&#8203;7920](DataDog/dd-trace-java#7920) -
[@&#8203;Mariovido](https://github.com/Mariovido))

##### Build & Tooling

- ✨ Generate Muzzle classes for Groovy instrumentations
([#&#8203;8004](DataDog/dd-trace-java#8004) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))

##### Continuous Integration Visibility

- ✨ Support distributed traces in tests
([#&#8203;8078](DataDog/dd-trace-java#8078) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Implement fail-fast tests ordering for JUnit 5
([#&#8203;8055](DataDog/dd-trace-java#8055) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Mark JUnit 5 setup and teardown action spans as failed if
there is an error
([#&#8203;8033](DataDog/dd-trace-java#8033) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Add tracing of setup and teardown actions in JUnit 4
([#&#8203;8030](DataDog/dd-trace-java#8030) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))

##### Crash tracking

- ✨ Improve crash tracking install logging
([#&#8203;8045](DataDog/dd-trace-java#8045) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

##### Data Streams Monitoring

- 🐛 Add Data Streams support in AWS SQS without raw message delivery
([#&#8203;8071](DataDog/dd-trace-java#8071) -
[@&#8203;piochelepiotr](https://github.com/piochelepiotr))
- ✨ Add new tag for enabled products / features to DSM
checkpoints
([#&#8203;8051](DataDog/dd-trace-java#8051) -
[@&#8203;kr-igor](https://github.com/kr-igor))
- 💡 Instrument self hosted Kafka connectors
([#&#8203;7959](DataDog/dd-trace-java#7959) -
[@&#8203;piochelepiotr](https://github.com/piochelepiotr))

##### Dynamic Instrumentation

- ✨ Add Micronaut 4 support for code origin for spans
([#&#8203;8039](DataDog/dd-trace-java#8039) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Refactor probe matching for methods
([#&#8203;8021](DataDog/dd-trace-java#8021) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Update the CodeOriginProbe fingerprint to not rely on a
stack walk
([#&#8203;8016](DataDog/dd-trace-java#8016) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- ✨ Implement code origin support for grpc server entry spans
([#&#8203;7942](DataDog/dd-trace-java#7942) -
[@&#8203;evanchooly](https://github.com/evanchooly))

##### GraalVM native-image

- 🐛 Update Graal build-time instrumentation config for
TracePropagationStyle
([#&#8203;8065](DataDog/dd-trace-java#8065) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- 🐛 Fix NoClassDefFoundError: Could not initialize class
DDSpanLink$EncoderHolder in Graal native-image
([#&#8203;8036](DataDog/dd-trace-java#8036) -
[@&#8203;mcculls](https://github.com/mcculls))
- 🐛🧹 Fix native-image generation of reactive applications
([#&#8203;8012](DataDog/dd-trace-java#8012) -
[@&#8203;mcculls](https://github.com/mcculls))

##### OpenTracing

- 🧹 Custom ScopeManagers are deprecated and will be removed in a
future release of dd-trace-ot
([#&#8203;8058](DataDog/dd-trace-java#8058) -
[@&#8203;mcculls](https://github.com/mcculls))

##### Tracer core

- ✨🧪 Service naming: split by jee deployment
([#&#8203;8064](DataDog/dd-trace-java#8064) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Exclude jboss mdb proxies from instrumenting
([#&#8203;8061](DataDog/dd-trace-java#8061) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Add a built-in trace interceptor for keeping traces
depending of their latency
([#&#8203;8040](DataDog/dd-trace-java#8040) -
[@&#8203;cecile75](https://github.com/cecile75))
- 💡 Introduce marker mechanism for eagerly initializing helpers
([#&#8203;8028](DataDog/dd-trace-java#8028) -
[@&#8203;mcculls](https://github.com/mcculls))
- 💡 Add JSON component
([#&#8203;7973](DataDog/dd-trace-java#7973) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨⚠️ Remove support for X-Forwarded in client IP
resolution
([#&#8203;7946](DataDog/dd-trace-java#7946) -
[@&#8203;smola](https://github.com/smola))

##### Instrumentations

##### Apache HttpComponents

- ✨ Expand SSRF support in IAST to apache-httpclient-5 and
apache-httpasyncclient-4
([#&#8203;7920](DataDog/dd-trace-java#7920) -
[@&#8203;Mariovido](https://github.com/Mariovido))

##### gRPC instrumentation

- 🐛 Use lower priorities for grpc server errors
([#&#8203;8043](DataDog/dd-trace-java#8043) -
[@&#8203;amarziali](https://github.com/amarziali))

##### JDBC instrumentation

- ✨ Add trace injection for prepared statements in Postgres
([#&#8203;7940](DataDog/dd-trace-java#7940) -
[@&#8203;nenadnoveljic](https://github.com/nenadnoveljic))

##### JMS instrumentation

- 🐛 Protect mdb from instrumenting multiple time the same event
([#&#8203;8062](DataDog/dd-trace-java#8062) -
[@&#8203;amarziali](https://github.com/amarziali))

##### Kafka instrumentation

- 💡 Instrument self hosted Kafka connectors
([#&#8203;7959](DataDog/dd-trace-java#7959) -
[@&#8203;piochelepiotr](https://github.com/piochelepiotr))

##### OpenTelemetry instrumentation

- 🐛 Support using OpenTelemetry Event API inside `@WithSpan`
annotated method
([#&#8203;8019](DataDog/dd-trace-java#8019) -
[@&#8203;mcculls](https://github.com/mcculls))

##### Reactor instrumentation

- 🐛🧹 Fix native-image generation of reactive applications
([#&#8203;8012](DataDog/dd-trace-java#8012) -
[@&#8203;mcculls](https://github.com/mcculls))

##### Spring instrumentation

- 🐛 Avoid double instrumenting lambdas on latest spring scheduling
([#&#8203;8005](DataDog/dd-trace-java#8005) -
[@&#8203;amarziali](https://github.com/amarziali))

##### All other instrumentations

- 🐛 Twilio: allow service name flattening
([#&#8203;8025](DataDog/dd-trace-java#8025) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Instrument Mulesoft 4.5.0+
([#&#8203;7981](DataDog/dd-trace-java#7981) -
[@&#8203;amarziali](https://github.com/amarziali))

</details>

<details>
<summary>aws/aws-sdk-java (com.amazonaws:aws-java-sdk-sqs)</summary>

###
[`v1.12.780`](https://github.com/aws/aws-sdk-java/blob/HEAD/CHANGELOG.md#112780-2024-12-11)

[Compare
Source](aws/aws-sdk-java@1.12.779...1.12.780)

#### **Amazon Simple Storage Service**

-   ### Bugfixes
- AWS SDK for Java 1.x now includes additional validation for Amazon S3
client APIs to handle scenarios where an empty string ('') is passed as
the key argument to the following operations: PutObject, DeleteObject,
ListObjects, GetObjectMetaData, ListObjectsV2, SetObjectTagging,
GetObjectTagging, SetObjectAcl, GetObjectAcl, SetObjectLegalHold,
GetObjectLegalHold, CopyObject, CopyPart, SelectObjectContent,
SetObjectRetention, GetObjectRetention, AbortMultipartUpload,
CompleteMultipartUpload, InitiateMultipartUpload, ListParts, UploadPart,
RestoreObjectV2, and RestoreObject. The SDK will validate the key
argument and throw an exception if it is an empty string, ensuring
correct and expected behavior.

</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**: Whenever PR becomes conflicted, 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: 69831bc62ea4d80cdcd42cef2aa9bd8eda28ae8c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants