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

Avoid double snapshots for Exception Replay #8273

Merged
merged 3 commits into from
Jan 24, 2025

Conversation

jpbempel
Copy link
Member

@jpbempel jpbempel commented Jan 23, 2025

What Does This Do

As Exception replay is supported by default for intermediate spans we can end up in a situation where 2 spans are attaching the same exception with the snapshots. in that case
DebuggerContext::handleException is called twice, once for each span and we are also sending the same snapshots to the backend while only one version is necessary and we tag it to the according spans. We can just make sure we are sending the snapshots only once.

Motivation

Additional Notes

Contributor Checklist

Jira ticket: DEBUG-3285

@jpbempel jpbempel added type: bug comp: debugger Dynamic Instrumentation labels Jan 23, 2025
@jpbempel jpbempel requested a review from a team as a code owner January 23, 2025 10:50
@jpbempel jpbempel requested review from evanchooly and removed request for a team January 23, 2025 10:50
@pr-commenter
Copy link

pr-commenter bot commented Jan 23, 2025

Debugger benchmarks

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
ci_job_date 1737738540 1737738927
end_time 2025-01-24T17:10:17 2025-01-24T17:16:43
git_branch master jpbempel/exception-replay-double-snapshots
git_commit_sha 088b7bf 835da7b
start_time 2025-01-24T17:09:01 2025-01-24T17:15:27
See matching parameters
Baseline Candidate
ci_job_id 779873007 779873007
ci_pipeline_id 53940728 53940728
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
git_commit_date 1737737976 1737737976

Summary

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

See unchanged results
scenario Δ mean agg_http_req_duration_min Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p75 Δ mean agg_http_req_duration_p99 Δ mean throughput
scenario:noprobe unstable
[-53.429µs; +81.363µs] or [-19.084%; +29.061%]
unstable
[-72.383µs; +103.656µs] or [-22.324%; +31.969%]
unstable
[-159.914µs; +386.254µs] or [-46.990%; +113.499%]
unstable
[-698.567µs; +1093.991µs] or [-89.953%; +140.871%]
same
scenario:basic same unstable
[-2.871µs; +29.185µs] or [-0.941%; +9.567%]
unstable
[-9.881µs; +32.978µs] or [-3.092%; +10.321%]
unstable
[-233.502µs; +719.990µs] or [-44.237%; +136.402%]
unstable
[-216.747op/s; +216.747op/s] or [-8.670%; +8.670%]
scenario:loop same same same same same
Request duration reports for reports
gantt
    title reports - request duration [CI 0.99] : candidate=None, baseline=None
    dateFormat X
    axisFormat %s
section baseline
noprobe (324.244 µs) : 264, 385
.   : milestone, 324,
basic (305.055 µs) : 293, 317
.   : milestone, 305,
loop (10.857 ms) : 10820, 10893
.   : milestone, 10857,
section candidate
noprobe (339.88 µs) : 238, 442
.   : milestone, 340,
basic (318.211 µs) : 300, 337
.   : milestone, 318,
loop (10.867 ms) : 10841, 10893
.   : milestone, 10867,
Loading
  • baseline results
Scenario Request median duration [CI 0.99]
noprobe 324.244 µs [263.681 µs, 384.807 µs]
basic 305.055 µs [292.672 µs, 317.437 µs]
loop 10.857 ms [10.82 ms, 10.893 ms]
  • candidate results
Scenario Request median duration [CI 0.99]
noprobe 339.88 µs [237.848 µs, 441.912 µs]
basic 318.211 µs [299.853 µs, 336.57 µs]
loop 10.867 ms [10.841 ms, 10.893 ms]

@pr-commenter
Copy link

pr-commenter bot commented Jan 23, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master jpbempel/exception-replay-double-snapshots
git_commit_date 1737734270 1737737976
git_commit_sha 088b7bf 835da7b
release_version 1.46.0-SNAPSHOT~088b7bfc2b 1.46.0-SNAPSHOT~835da7b99e
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1737740293 1737740293
ci_job_id 779873001 779873001
ci_pipeline_id 53940728 53940728
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-xugqgpm8-project-304-concurrent-0-hnalk7i4 6.8.0-1018-aws #19~22.04.1-Ubuntu SMP Wed Oct 9 16:48:22 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux Linux runner-xugqgpm8-project-304-concurrent-0-hnalk7i4 6.8.0-1018-aws #19~22.04.1-Ubuntu SMP Wed Oct 9 16:48:22 UTC 2024 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 59 metrics, 4 unstable metrics.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.46.0-SNAPSHOT~835da7b99e, baseline=1.46.0-SNAPSHOT~088b7bfc2b

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.04 s) : 0, 1039892
Total [baseline] (10.472 s) : 0, 10472419
Agent [candidate] (1.038 s) : 0, 1037806
Total [candidate] (10.469 s) : 0, 10469284
section appsec
Agent [baseline] (1.178 s) : 0, 1178093
Total [baseline] (10.738 s) : 0, 10738082
Agent [candidate] (1.182 s) : 0, 1181826
Total [candidate] (10.754 s) : 0, 10754297
section iast
Agent [baseline] (1.178 s) : 0, 1177603
Total [baseline] (10.987 s) : 0, 10986866
Agent [candidate] (1.175 s) : 0, 1175016
Total [candidate] (10.956 s) : 0, 10956145
section profiling
Agent [baseline] (1.254 s) : 0, 1253513
Total [baseline] (10.878 s) : 0, 10877643
Agent [candidate] (1.256 s) : 0, 1255632
Total [candidate] (10.746 s) : 0, 10745969
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.04 s -
Agent appsec 1.178 s 138.201 ms (13.3%)
Agent iast 1.178 s 137.711 ms (13.2%)
Agent profiling 1.254 s 213.621 ms (20.5%)
Total tracing 10.472 s -
Total appsec 10.738 s 265.663 ms (2.5%)
Total iast 10.987 s 514.447 ms (4.9%)
Total profiling 10.878 s 405.224 ms (3.9%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.038 s -
Agent appsec 1.182 s 144.021 ms (13.9%)
Agent iast 1.175 s 137.211 ms (13.2%)
Agent profiling 1.256 s 217.826 ms (21.0%)
Total tracing 10.469 s -
Total appsec 10.754 s 285.013 ms (2.7%)
Total iast 10.956 s 486.861 ms (4.7%)
Total profiling 10.746 s 276.685 ms (2.6%)
gantt
    title petclinic - break down per module: candidate=1.46.0-SNAPSHOT~835da7b99e, baseline=1.46.0-SNAPSHOT~088b7bfc2b

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (714.835 ms) : 0, 714835
BytebuddyAgent [candidate] (715.562 ms) : 0, 715562
GlobalTracer [baseline] (239.047 ms) : 0, 239047
GlobalTracer [candidate] (239.792 ms) : 0, 239792
AppSec [baseline] (55.65 ms) : 0, 55650
AppSec [candidate] (55.709 ms) : 0, 55709
Remote Config [baseline] (717.301 µs) : 0, 717
Remote Config [candidate] (704.414 µs) : 0, 704
Telemetry [baseline] (14.52 ms) : 0, 14520
Telemetry [candidate] (10.961 ms) : 0, 10961
section appsec
BytebuddyAgent [baseline] (731.568 ms) : 0, 731568
BytebuddyAgent [candidate] (734.471 ms) : 0, 734471
GlobalTracer [baseline] (236.371 ms) : 0, 236371
GlobalTracer [candidate] (237.49 ms) : 0, 237490
AppSec [baseline] (176.716 ms) : 0, 176716
AppSec [candidate] (176.274 ms) : 0, 176274
Remote Config [baseline] (656.288 µs) : 0, 656
Remote Config [candidate] (658.566 µs) : 0, 659
Telemetry [baseline] (8.172 ms) : 0, 8172
Telemetry [candidate] (8.187 ms) : 0, 8187
IAST [baseline] (19.23 ms) : 0, 19230
IAST [candidate] (19.244 ms) : 0, 19244
section iast
BytebuddyAgent [baseline] (840.92 ms) : 0, 840920
BytebuddyAgent [candidate] (840.066 ms) : 0, 840066
GlobalTracer [baseline] (231.752 ms) : 0, 231752
GlobalTracer [candidate] (231.587 ms) : 0, 231587
AppSec [baseline] (58.98 ms) : 0, 58980
AppSec [candidate] (57.766 ms) : 0, 57766
Remote Config [baseline] (642.293 µs) : 0, 642
Remote Config [candidate] (636.829 µs) : 0, 637
Telemetry [baseline] (8.821 ms) : 0, 8821
Telemetry [candidate] (8.61 ms) : 0, 8610
IAST [baseline] (21.402 ms) : 0, 21402
IAST [candidate] (21.215 ms) : 0, 21215
section profiling
ProfilingAgent [baseline] (95.324 ms) : 0, 95324
ProfilingAgent [candidate] (94.934 ms) : 0, 94934
BytebuddyAgent [baseline] (703.52 ms) : 0, 703520
BytebuddyAgent [candidate] (705.261 ms) : 0, 705261
GlobalTracer [baseline] (348.42 ms) : 0, 348420
GlobalTracer [candidate] (349.874 ms) : 0, 349874
AppSec [baseline] (54.808 ms) : 0, 54808
AppSec [candidate] (54.062 ms) : 0, 54062
Remote Config [baseline] (692.964 µs) : 0, 693
Remote Config [candidate] (716.282 µs) : 0, 716
Telemetry [baseline] (8.725 ms) : 0, 8725
Telemetry [candidate] (8.853 ms) : 0, 8853
Profiling [baseline] (95.347 ms) : 0, 95347
Profiling [candidate] (94.959 ms) : 0, 94959
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.46.0-SNAPSHOT~835da7b99e, baseline=1.46.0-SNAPSHOT~088b7bfc2b

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.049 s) : 0, 1049297
Total [baseline] (8.639 s) : 0, 8638572
Agent [candidate] (1.045 s) : 0, 1045133
Total [candidate] (8.675 s) : 0, 8674905
section iast
Agent [baseline] (1.167 s) : 0, 1167218
Total [baseline] (9.202 s) : 0, 9201689
Agent [candidate] (1.176 s) : 0, 1175524
Total [candidate] (9.238 s) : 0, 9238255
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.175 s) : 0, 1175184
Total [baseline] (9.235 s) : 0, 9234887
Agent [candidate] (1.175 s) : 0, 1175133
Total [candidate] (9.176 s) : 0, 9175881
section iast_TELEMETRY_OFF
Agent [baseline] (1.163 s) : 0, 1163113
Total [baseline] (9.234 s) : 0, 9234124
Agent [candidate] (1.164 s) : 0, 1164079
Total [candidate] (9.212 s) : 0, 9212413
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.049 s -
Agent iast 1.167 s 117.921 ms (11.2%)
Agent iast_HARDCODED_SECRET_DISABLED 1.175 s 125.887 ms (12.0%)
Agent iast_TELEMETRY_OFF 1.163 s 113.816 ms (10.8%)
Total tracing 8.639 s -
Total iast 9.202 s 563.117 ms (6.5%)
Total iast_HARDCODED_SECRET_DISABLED 9.235 s 596.315 ms (6.9%)
Total iast_TELEMETRY_OFF 9.234 s 595.552 ms (6.9%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.045 s -
Agent iast 1.176 s 130.391 ms (12.5%)
Agent iast_HARDCODED_SECRET_DISABLED 1.175 s 130.0 ms (12.4%)
Agent iast_TELEMETRY_OFF 1.164 s 118.945 ms (11.4%)
Total tracing 8.675 s -
Total iast 9.238 s 563.35 ms (6.5%)
Total iast_HARDCODED_SECRET_DISABLED 9.176 s 500.976 ms (5.8%)
Total iast_TELEMETRY_OFF 9.212 s 537.508 ms (6.2%)
gantt
    title insecure-bank - break down per module: candidate=1.46.0-SNAPSHOT~835da7b99e, baseline=1.46.0-SNAPSHOT~088b7bfc2b

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (725.038 ms) : 0, 725038
BytebuddyAgent [candidate] (718.988 ms) : 0, 718988
GlobalTracer [baseline] (242.249 ms) : 0, 242249
GlobalTracer [candidate] (240.493 ms) : 0, 240493
AppSec [baseline] (55.931 ms) : 0, 55931
AppSec [candidate] (55.606 ms) : 0, 55606
Remote Config [baseline] (723.637 µs) : 0, 724
Remote Config [candidate] (723.386 µs) : 0, 723
Telemetry [baseline] (10.107 ms) : 0, 10107
Telemetry [candidate] (14.198 ms) : 0, 14198
section iast
BytebuddyAgent [baseline] (833.615 ms) : 0, 833615
BytebuddyAgent [candidate] (839.477 ms) : 0, 839477
GlobalTracer [baseline] (229.369 ms) : 0, 229369
GlobalTracer [candidate] (231.859 ms) : 0, 231859
AppSec [baseline] (58.328 ms) : 0, 58328
AppSec [candidate] (58.426 ms) : 0, 58426
IAST [baseline] (21.405 ms) : 0, 21405
IAST [candidate] (21.216 ms) : 0, 21216
Remote Config [baseline] (675.384 µs) : 0, 675
Remote Config [candidate] (647.221 µs) : 0, 647
Telemetry [baseline] (8.804 ms) : 0, 8804
Telemetry [candidate] (8.681 ms) : 0, 8681
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (838.87 ms) : 0, 838870
BytebuddyAgent [candidate] (839.31 ms) : 0, 839310
GlobalTracer [baseline] (230.96 ms) : 0, 230960
GlobalTracer [candidate] (231.561 ms) : 0, 231561
AppSec [baseline] (58.749 ms) : 0, 58749
AppSec [candidate] (58.498 ms) : 0, 58498
IAST [baseline] (21.745 ms) : 0, 21745
IAST [candidate] (21.305 ms) : 0, 21305
Remote Config [baseline] (669.442 µs) : 0, 669
Remote Config [candidate] (650.134 µs) : 0, 650
Telemetry [baseline] (8.891 ms) : 0, 8891
Telemetry [candidate] (8.739 ms) : 0, 8739
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (830.449 ms) : 0, 830449
BytebuddyAgent [candidate] (830.585 ms) : 0, 830585
GlobalTracer [baseline] (229.582 ms) : 0, 229582
GlobalTracer [candidate] (230.282 ms) : 0, 230282
AppSec [baseline] (58.033 ms) : 0, 58033
AppSec [candidate] (58.128 ms) : 0, 58128
IAST [baseline] (20.867 ms) : 0, 20867
IAST [candidate] (20.748 ms) : 0, 20748
Remote Config [baseline] (638.91 µs) : 0, 639
Remote Config [candidate] (645.379 µs) : 0, 645
Telemetry [baseline] (8.567 ms) : 0, 8567
Telemetry [candidate] (8.626 ms) : 0, 8626
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-01-24T17:08:11 2025-01-24T17:15:16
git_branch master jpbempel/exception-replay-double-snapshots
git_commit_date 1737734270 1737737976
git_commit_sha 088b7bf 835da7b
release_version 1.46.0-SNAPSHOT~088b7bfc2b 1.46.0-SNAPSHOT~835da7b99e
start_time 2025-01-24T17:07:57 2025-01-24T17:15:03
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1737739276 1737739276
ci_job_id 779873002 779873002
ci_pipeline_id 53940728 53940728
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-xugqgpm8-project-304-concurrent-1-qe5mwnnl 6.8.0-1018-aws #19~22.04.1-Ubuntu SMP Wed Oct 9 16:48:22 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux Linux runner-xugqgpm8-project-304-concurrent-1-qe5mwnnl 6.8.0-1018-aws #19~22.04.1-Ubuntu SMP Wed Oct 9 16:48:22 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
variant iast iast

Summary

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

Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.46.0-SNAPSHOT~835da7b99e, baseline=1.46.0-SNAPSHOT~088b7bfc2b
    dateFormat X
    axisFormat %s
section baseline
no_agent (384.985 µs) : 365, 405
.   : milestone, 385,
iast (512.593 µs) : 489, 536
.   : milestone, 513,
iast_FULL (747.317 µs) : 725, 769
.   : milestone, 747,
iast_GLOBAL (558.688 µs) : 535, 582
.   : milestone, 559,
iast_HARDCODED_SECRET_DISABLED (508.994 µs) : 486, 532
.   : milestone, 509,
iast_INACTIVE (466.801 µs) : 445, 489
.   : milestone, 467,
iast_TELEMETRY_OFF (498.882 µs) : 476, 522
.   : milestone, 499,
tracing (456.825 µs) : 435, 478
.   : milestone, 457,
section candidate
no_agent (377.825 µs) : 357, 398
.   : milestone, 378,
iast (506.509 µs) : 483, 530
.   : milestone, 507,
iast_FULL (740.649 µs) : 718, 763
.   : milestone, 741,
iast_GLOBAL (554.592 µs) : 531, 578
.   : milestone, 555,
iast_HARDCODED_SECRET_DISABLED (516.218 µs) : 493, 540
.   : milestone, 516,
iast_INACTIVE (460.568 µs) : 440, 482
.   : milestone, 461,
iast_TELEMETRY_OFF (493.454 µs) : 470, 516
.   : milestone, 493,
tracing (451.715 µs) : 431, 472
.   : milestone, 452,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 384.985 µs [365.141 µs, 404.829 µs] -
iast 512.593 µs [489.485 µs, 535.701 µs] 127.608 µs (33.1%)
iast_FULL 747.317 µs [725.376 µs, 769.259 µs] 362.332 µs (94.1%)
iast_GLOBAL 558.688 µs [534.997 µs, 582.379 µs] 173.702 µs (45.1%)
iast_HARDCODED_SECRET_DISABLED 508.994 µs [486.045 µs, 531.942 µs] 124.009 µs (32.2%)
iast_INACTIVE 466.801 µs [445.009 µs, 488.593 µs] 81.816 µs (21.3%)
iast_TELEMETRY_OFF 498.882 µs [475.898 µs, 521.866 µs] 113.897 µs (29.6%)
tracing 456.825 µs [435.253 µs, 478.396 µs] 71.839 µs (18.7%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 377.825 µs [357.419 µs, 398.231 µs] -
iast 506.509 µs [483.232 µs, 529.785 µs] 128.684 µs (34.1%)
iast_FULL 740.649 µs [717.989 µs, 763.309 µs] 362.824 µs (96.0%)
iast_GLOBAL 554.592 µs [531.402 µs, 577.782 µs] 176.767 µs (46.8%)
iast_HARDCODED_SECRET_DISABLED 516.218 µs [492.886 µs, 539.549 µs] 138.393 µs (36.6%)
iast_INACTIVE 460.568 µs [439.571 µs, 481.565 µs] 82.743 µs (21.9%)
iast_TELEMETRY_OFF 493.454 µs [470.442 µs, 516.467 µs] 115.629 µs (30.6%)
tracing 451.715 µs [431.323 µs, 472.108 µs] 73.89 µs (19.6%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.46.0-SNAPSHOT~835da7b99e, baseline=1.46.0-SNAPSHOT~088b7bfc2b
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.363 ms) : 1343, 1383
.   : milestone, 1363,
appsec (1.745 ms) : 1722, 1769
.   : milestone, 1745,
appsec_no_iast (1.767 ms) : 1743, 1792
.   : milestone, 1767,
iast (1.512 ms) : 1488, 1536
.   : milestone, 1512,
profiling (1.528 ms) : 1505, 1551
.   : milestone, 1528,
tracing (1.506 ms) : 1480, 1531
.   : milestone, 1506,
section candidate
no_agent (1.365 ms) : 1345, 1385
.   : milestone, 1365,
appsec (1.746 ms) : 1723, 1769
.   : milestone, 1746,
appsec_no_iast (1.758 ms) : 1734, 1783
.   : milestone, 1758,
iast (1.51 ms) : 1486, 1534
.   : milestone, 1510,
profiling (1.581 ms) : 1556, 1605
.   : milestone, 1581,
tracing (1.497 ms) : 1472, 1522
.   : milestone, 1497,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.363 ms [1.343 ms, 1.383 ms] -
appsec 1.745 ms [1.722 ms, 1.769 ms] 382.268 µs (28.0%)
appsec_no_iast 1.767 ms [1.743 ms, 1.792 ms] 404.166 µs (29.7%)
iast 1.512 ms [1.488 ms, 1.536 ms] 148.749 µs (10.9%)
profiling 1.528 ms [1.505 ms, 1.551 ms] 165.063 µs (12.1%)
tracing 1.506 ms [1.48 ms, 1.531 ms] 142.605 µs (10.5%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.365 ms [1.345 ms, 1.385 ms] -
appsec 1.746 ms [1.723 ms, 1.769 ms] 381.056 µs (27.9%)
appsec_no_iast 1.758 ms [1.734 ms, 1.783 ms] 393.153 µs (28.8%)
iast 1.51 ms [1.486 ms, 1.534 ms] 144.914 µs (10.6%)
profiling 1.581 ms [1.556 ms, 1.605 ms] 215.661 µs (15.8%)
tracing 1.497 ms [1.472 ms, 1.522 ms] 131.745 µs (9.7%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master jpbempel/exception-replay-double-snapshots
git_commit_date 1737734270 1737737976
git_commit_sha 088b7bf 835da7b
release_version 1.46.0-SNAPSHOT~088b7bfc2b 1.46.0-SNAPSHOT~835da7b99e
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1737739970 1737739970
ci_job_id 779873003 779873003
ci_pipeline_id 53940728 53940728
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-dmnxfugi-project-304-concurrent-0-c1bh0q4k 6.8.0-1018-aws #19~22.04.1-Ubuntu SMP Wed Oct 9 16:48:22 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux Linux runner-dmnxfugi-project-304-concurrent-0-c1bh0q4k 6.8.0-1018-aws #19~22.04.1-Ubuntu SMP Wed Oct 9 16:48:22 UTC 2024 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.46.0-SNAPSHOT~835da7b99e, baseline=1.46.0-SNAPSHOT~088b7bfc2b
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.449 s) : 15449000, 15449000
.   : milestone, 15449000,
appsec (14.897 s) : 14897000, 14897000
.   : milestone, 14897000,
iast (19.014 s) : 19014000, 19014000
.   : milestone, 19014000,
iast_GLOBAL (17.383 s) : 17383000, 17383000
.   : milestone, 17383000,
profiling (15.595 s) : 15595000, 15595000
.   : milestone, 15595000,
tracing (14.895 s) : 14895000, 14895000
.   : milestone, 14895000,
section candidate
no_agent (15.207 s) : 15207000, 15207000
.   : milestone, 15207000,
appsec (14.889 s) : 14889000, 14889000
.   : milestone, 14889000,
iast (18.241 s) : 18241000, 18241000
.   : milestone, 18241000,
iast_GLOBAL (18.039 s) : 18039000, 18039000
.   : milestone, 18039000,
profiling (15.529 s) : 15529000, 15529000
.   : milestone, 15529000,
tracing (14.932 s) : 14932000, 14932000
.   : milestone, 14932000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.449 s [15.449 s, 15.449 s] -
appsec 14.897 s [14.897 s, 14.897 s] -552.0 ms (-3.6%)
iast 19.014 s [19.014 s, 19.014 s] 3.565 s (23.1%)
iast_GLOBAL 17.383 s [17.383 s, 17.383 s] 1.934 s (12.5%)
profiling 15.595 s [15.595 s, 15.595 s] 146.0 ms (0.9%)
tracing 14.895 s [14.895 s, 14.895 s] -554.0 ms (-3.6%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.207 s [15.207 s, 15.207 s] -
appsec 14.889 s [14.889 s, 14.889 s] -318.0 ms (-2.1%)
iast 18.241 s [18.241 s, 18.241 s] 3.034 s (20.0%)
iast_GLOBAL 18.039 s [18.039 s, 18.039 s] 2.832 s (18.6%)
profiling 15.529 s [15.529 s, 15.529 s] 322.0 ms (2.1%)
tracing 14.932 s [14.932 s, 14.932 s] -275.0 ms (-1.8%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.46.0-SNAPSHOT~835da7b99e, baseline=1.46.0-SNAPSHOT~088b7bfc2b
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.461 ms) : 1450, 1472
.   : milestone, 1461,
appsec (2.352 ms) : 2308, 2395
.   : milestone, 2352,
iast (2.09 ms) : 2035, 2144
.   : milestone, 2090,
iast_GLOBAL (2.138 ms) : 2083, 2193
.   : milestone, 2138,
profiling (1.95 ms) : 1907, 1993
.   : milestone, 1950,
tracing (1.924 ms) : 1883, 1966
.   : milestone, 1924,
section candidate
no_agent (1.467 ms) : 1455, 1478
.   : milestone, 1467,
appsec (2.353 ms) : 2309, 2396
.   : milestone, 2353,
iast (2.086 ms) : 2031, 2140
.   : milestone, 2086,
iast_GLOBAL (2.134 ms) : 2079, 2188
.   : milestone, 2134,
profiling (1.963 ms) : 1919, 2007
.   : milestone, 1963,
tracing (1.936 ms) : 1894, 1978
.   : milestone, 1936,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.461 ms [1.45 ms, 1.472 ms] -
appsec 2.352 ms [2.308 ms, 2.395 ms] 890.653 µs (61.0%)
iast 2.09 ms [2.035 ms, 2.144 ms] 628.731 µs (43.0%)
iast_GLOBAL 2.138 ms [2.083 ms, 2.193 ms] 677.462 µs (46.4%)
profiling 1.95 ms [1.907 ms, 1.993 ms] 489.219 µs (33.5%)
tracing 1.924 ms [1.883 ms, 1.966 ms] 463.527 µs (31.7%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.467 ms [1.455 ms, 1.478 ms] -
appsec 2.353 ms [2.309 ms, 2.396 ms] 886.142 µs (60.4%)
iast 2.086 ms [2.031 ms, 2.14 ms] 619.366 µs (42.2%)
iast_GLOBAL 2.134 ms [2.079 ms, 2.188 ms] 667.093 µs (45.5%)
profiling 1.963 ms [1.919 ms, 2.007 ms] 496.61 µs (33.9%)
tracing 1.936 ms [1.894 ms, 1.978 ms] 469.396 µs (32.0%)

Copy link
Contributor

@evanchooly evanchooly left a comment

Choose a reason for hiding this comment

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

I would prefer a test attached as well but something are awkward to test and I feel like this might be one of them.

@jpbempel
Copy link
Member Author

I would prefer a test attached as well but something are awkward to test and I feel like this might be one of them.

There are system-tests hence the fix. But I am leaning toward adding one in smoke tests

@jpbempel jpbempel requested a review from a team as a code owner January 23, 2025 17:26
@jpbempel jpbempel requested a review from nayeem-kamal January 23, 2025 17:26
As Exception replay is supported by default for intermediate spans
we can end up in a situation where 2 spans are attaching the same
exception with the snapshots. in that case
DebuggerContext::handleException is called twice, once for each span
and we are also sending the same snapshots to the backend while only
one version is necessary and we tag it to the according spans.
We can just make sure we are sending the snapshots only once.
@jpbempel jpbempel force-pushed the jpbempel/exception-replay-double-snapshots branch from 7842101 to 3b953a5 Compare January 23, 2025 17:59
@jpbempel jpbempel added comp: debugger Dynamic Instrumentation and removed comp: debugger Dynamic Instrumentation labels Jan 24, 2025
@jpbempel jpbempel merged commit 93b44ea into master Jan 24, 2025
178 of 179 checks passed
@jpbempel jpbempel deleted the jpbempel/exception-replay-double-snapshots branch January 24, 2025 17:42
@github-actions github-actions bot added this to the 1.46.0 milestone Jan 24, 2025
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Jan 31, 2025
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
|
[com.google.cloud:google-cloud-datastore](https://github.com/googleapis/java-datastore)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.25.4` -> `2.26.0` |
| [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.45.2` -> `1.46.0` |
| [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.45.2` -> `1.46.0` |
| [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
|
[software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
| [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
| [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
| [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
| [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |

---

### Release Notes

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

###
[`v2.26.0`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2260-2025-01-29)

##### Features

- Add firestoreInDatastoreMode for datastore emulator
([#&#8203;1698](googleapis/java-datastore#1698))
([50f106d](googleapis/java-datastore@50f106d))

##### Dependencies

- Update dependency com.google.cloud:sdk-platform-java-config to v3.42.0
([#&#8203;1725](googleapis/java-datastore#1725))
([1cbaf22](googleapis/java-datastore@1cbaf22))

</details>

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

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

##### Breaking Changes

> \[!WARNING]
> jnr-unixsocket is now an external dependency of dd-trace-ot and must
be included when deploying dd-trace-ot.

> \[!NOTE]
> The API `TracerScope.setAsync(boolean)`, used to manually control
asynchronous span propagation, does no more apply to the scope instance
but to the active span scope.

##### Components

##### Application Security Management (IAST)

- 🐛 Fix String.replace instrumentation for IAST
([#&#8203;8281](DataDog/dd-trace-java#8281) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Apply the standard nomenclature to the stacktrace configs
([#&#8203;8244](DataDog/dd-trace-java#8244) -
[@&#8203;jandro996](https://github.com/jandro996))
- 🐛 Exclude false positive weak randomness
([#&#8203;8232](DataDog/dd-trace-java#8232) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Propagation of translateEscapes of String class
([#&#8203;8186](DataDog/dd-trace-java#8186) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))
- ✨ Add security control metrics
([#&#8203;8175](DataDog/dd-trace-java#8175) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Increase IAST propagation to StringBuffer setLength
([#&#8203;8128](DataDog/dd-trace-java#8128) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Add IAST taint tracking for DB values
([#&#8203;8072](DataDog/dd-trace-java#8072) -
[@&#8203;Mariovido](https://github.com/Mariovido))

##### Application Security Management (WAF)

- 🐛 Prevents a NPE when there is no subscriber for user events
([#&#8203;8258](DataDog/dd-trace-java#8258) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Apply the standard nomenclature to the stacktrace configs
([#&#8203;8244](DataDog/dd-trace-java#8244) -
[@&#8203;jandro996](https://github.com/jandro996))
- 🐛 Ensure cached subscriptions are cleared on reconfiguration via
RC ([#&#8203;8229](DataDog/dd-trace-java#8229)
-
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Add support for session tracking in Vertx
([#&#8203;8167](DataDog/dd-trace-java#8167) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Create span tag: \_dd.appsec.rasp.timeout
([#&#8203;8269](DataDog/dd-trace-java#8269) -
[@&#8203;Mariovido](https://github.com/Mariovido))

##### Build & Tooling

- 🐛 Ensure shaded helpers have unique names when injected into
class-loaders
([#&#8203;8192](DataDog/dd-trace-java#8192) -
[@&#8203;mcculls](https://github.com/mcculls))

##### Configuration at Runtime

- 🐛 Remove filtering of `DD_SERVICE` and `DD_ENV` from the tracer
([#&#8203;8176](DataDog/dd-trace-java#8176) -
[@&#8203;mhlidd](https://github.com/mhlidd))

##### Continuous Integration Visibility

- 🧹 Generalize TestRetryPolicy to TestExecutionPolicy
([#&#8203;8302](DataDog/dd-trace-java#8302) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🧹 Parallelize CI Visibility settings requests
([#&#8203;8299](DataDog/dd-trace-java#8299) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🧹 Generalize test retry logic
([#&#8203;8289](DataDog/dd-trace-java#8289) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🧹 Generalize tests skipping logic
([#&#8203;8288](DataDog/dd-trace-java#8288) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🧹 Remove skip and shouldBeSkipped methods from TestEventsHandler
in favor of isSkippable
([#&#8203;8286](DataDog/dd-trace-java#8286) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨⚡ Optimize Git repository information computation
([#&#8203;8270](DataDog/dd-trace-java#8270) -
[@&#8203;dougqh](https://github.com/dougqh))
- ✨ Always request known tests from the backend
([#&#8203;8268](DataDog/dd-trace-java#8268) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Fix NPE when trying to get retry analyzer in Test NG
([#&#8203;8253](DataDog/dd-trace-java#8253) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Set test framework and test framework version tags atomically
([#&#8203;8252](DataDog/dd-trace-java#8252) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Add debug logging to Android Gradle module layout logic
([#&#8203;8251](DataDog/dd-trace-java#8251) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Fix source and destination folders computation for Android
Gradle projects
([#&#8203;8190](DataDog/dd-trace-java#8190) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Add basic Scala Weaver sbt support
([#&#8203;8189](DataDog/dd-trace-java#8189) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Implement impacted tests detection
([#&#8203;8188](DataDog/dd-trace-java#8188) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))

##### Data Streams Monitoring

- ✨ Change hash computation for protobuf to better represent
impacting changes + save proto number in schema
([#&#8203;8201](DataDog/dd-trace-java#8201) -
[@&#8203;vandonr](https://github.com/vandonr))

##### Database Monitoring

- Add peer service tag in dbm sql commenter
([#&#8203;7913](DataDog/dd-trace-java#7913) -
[@&#8203;jordan-wong](https://github.com/jordan-wong))

##### Dynamic Instrumentation

- ✨ Add support for SymDB to scan directories
([#&#8203;8306](DataDog/dd-trace-java#8306) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Add SymDB report for any jar scanning failures
([#&#8203;8300](DataDog/dd-trace-java#8300) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Use two budgets depending on type
([#&#8203;8283](DataDog/dd-trace-java#8283) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- ✨ Institute a 10 snapshot per probe per trace budget
([#&#8203;8277](DataDog/dd-trace-java#8277) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- 🐛 Avoid double snapshots for Exception Replay
([#&#8203;8273](DataDog/dd-trace-java#8273) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Simplify code origins. Separate out snapshot generation.
([#&#8203;8263](DataDog/dd-trace-java#8263) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- ✨ Add Exception probe custom instrumentation
([#&#8203;8230](DataDog/dd-trace-java#8230) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Enhance log probes to honor debug session tags
([#&#8203;8215](DataDog/dd-trace-java#8215) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- 🐛 Don't redact env tokens from debugger probe snapshots
([#&#8203;8211](DataDog/dd-trace-java#8211) -
[@&#8203;watson](https://github.com/watson))
- ✨⚡ Move Trace/SpanId capture at commit time
([#&#8203;8184](DataDog/dd-trace-java#8184) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Capture values at entry for method probe
([#&#8203;8169](DataDog/dd-trace-java#8169) -
[@&#8203;jpbempel](https://github.com/jpbempel))

##### JMX fetch

- 🐛 Mute JMXFetch Shutdown in progress error
([#&#8203;8068](DataDog/dd-trace-java#8068) -
[@&#8203;ygree](https://github.com/ygree))

##### OpenTracing

- ⚠️🧹 Make jnr-unixsocket an explicit dependency of
dd-trace-ot
([#&#8203;8307](DataDog/dd-trace-java#8307) -
[@&#8203;mcculls](https://github.com/mcculls))

##### Profiling

- 🐛 Avoid unsupported API call for creating folders on windows
([#&#8203;8304](DataDog/dd-trace-java#8304) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ Tag profiles for serverless
([#&#8203;8279](DataDog/dd-trace-java#8279) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ add queue type and length to queue events
([#&#8203;8242](DataDog/dd-trace-java#8242) -
[@&#8203;richardstartin](https://github.com/richardstartin))
- 🐛 TempLocationManager Fixes and Improvements
([#&#8203;8191](DataDog/dd-trace-java#8191) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ Bump ddprof to 1.18.0
([#&#8203;8173](DataDog/dd-trace-java#8173) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ Report profiler initialization and configuration errors to
telemetry
([#&#8203;8171](DataDog/dd-trace-java#8171) -
[@&#8203;jbachorik](https://github.com/jbachorik))

##### Telemetry

- ✨ Add pending traces report in tracer flares
([#&#8203;8053](DataDog/dd-trace-java#8053) -
[@&#8203;mhlidd](https://github.com/mhlidd))

##### Testing

- ✨ Test http server requests in parallel
([#&#8203;8222](DataDog/dd-trace-java#8222) -
[@&#8203;amarziali](https://github.com/amarziali))

##### Trace context propagation

- ✨ Add non default propagator registration
([#&#8203;8310](DataDog/dd-trace-java#8310) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

##### Tracer core

- ✨ Probe for existence of IBMSASL or ACCP security providers
([#&#8203;8276](DataDog/dd-trace-java#8276) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨⚡ Overhead improvement to agent feedback based sampling
([#&#8203;8265](DataDog/dd-trace-java#8265) -
[@&#8203;dougqh](https://github.com/dougqh))
- 🧹 Move async propagation API from scope to tracer
([#&#8203;8231](DataDog/dd-trace-java#8231) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨ Introduce context propagation API
([#&#8203;8161](DataDog/dd-trace-java#8161) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨🧪 Use env-entry to add tags per webapp deployment
([#&#8203;8138](DataDog/dd-trace-java#8138) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Introduce context helpers API
([#&#8203;8134](DataDog/dd-trace-java#8134) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨ Support IPv6 values for `DD_AGENT_HOST` and
`DD_TRACE_AGENT_URL`
([#&#8203;7984](DataDog/dd-trace-java#7984) -
[@&#8203;mhlidd](https://github.com/mhlidd))

##### Instrumentations

##### Apache HttpComponents

- 🐛 Properly finish spans and support latest apache httpclient5
([#&#8203;8272](DataDog/dd-trace-java#8272) -
[@&#8203;amarziali](https://github.com/amarziali))

##### AWS Lambda instrumentation

- 🐛 Properly capture lambda payloads for all handler types.
([#&#8203;8264](DataDog/dd-trace-java#8264) -
[@&#8203;purple4reina](https://github.com/purple4reina))

##### AWS S3 instrumentation

- 💡 Create S3 instrumentation + add span pointers
([#&#8203;8075](DataDog/dd-trace-java#8075) -
[@&#8203;nhulston](https://github.com/nhulston))

##### AWS SDK instrumentation

- 🐛 Revert "Add avoid double instrumenting lambda non-streaming
handlers."
([#&#8203;8247](DataDog/dd-trace-java#8247) -
[@&#8203;nhulston](https://github.com/nhulston))

##### Cassandra

- ✨ Allow extracting keyspace from statement result
([#&#8203;8239](DataDog/dd-trace-java#8239) -
[@&#8203;amarziali](https://github.com/amarziali))

##### Core Java language instrumentation

- ✨ Propagation of translateEscapes of String class
([#&#8203;8186](DataDog/dd-trace-java#8186) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))

##### Eclipse Vert.x instrumentation

- 🐛 Fix vertx worker propagation and error handling
([#&#8203;8237](DataDog/dd-trace-java#8237) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Support vertx 5
([#&#8203;8220](DataDog/dd-trace-java#8220) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Add support for session tracking in Vertx
([#&#8203;8167](DataDog/dd-trace-java#8167) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))

##### Kafka instrumentation

- 🐛 Prevent possible NPE calculating Kafka record header size
([#&#8203;8292](DataDog/dd-trace-java#8292) -
[@&#8203;ygree](https://github.com/ygree))

##### Mule instrumentation

- 🐛 Fix crash using Mule with JPMS
([#&#8203;8187](DataDog/dd-trace-java#8187) -
[@&#8203;amarziali](https://github.com/amarziali))

##### Protocol Buffer instrumentation

- ✨ Change hash computation for protobuf to better represent
impacting changes + save proto number in schema
([#&#8203;8201](DataDog/dd-trace-java#8201) -
[@&#8203;vandonr](https://github.com/vandonr))

##### Spring instrumentation

- 🐛 Preserve getQualifier from spring scheduling runnables
([#&#8203;8293](DataDog/dd-trace-java#8293) -
[@&#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**: 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: bb09d47e4eed77a003f630273b4d0a84003eb899
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp: debugger Dynamic Instrumentation type: bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants