-
Notifications
You must be signed in to change notification settings - Fork 292
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
Conversation
Debugger benchmarksParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 7 metrics, 8 unstable metrics. See unchanged results
Request duration reports for reportsgantt
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,
|
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 59 metrics, 4 unstable metrics. Startup time reports for petclinicgantt
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
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
Startup time reports for insecure-bankgantt
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
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
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 13 metrics, 15 unstable metrics. Request duration reports for insecure-bankgantt
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,
Request duration reports for petclinicgantt
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,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics. Execution time for biojavagantt
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,
Execution time for tomcatgantt
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,
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would 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 |
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.
7842101
to
3b953a5
Compare
| 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 ([#​1698](googleapis/java-datastore#1698)) ([50f106d](googleapis/java-datastore@50f106d)) ##### Dependencies - Update dependency com.google.cloud:sdk-platform-java-config to v3.42.0 ([#​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 ([#​8281](DataDog/dd-trace-java#8281) - [@​Mariovido](https://github.com/Mariovido)) - ✨ Apply the standard nomenclature to the stacktrace configs ([#​8244](DataDog/dd-trace-java#8244) - [@​jandro996](https://github.com/jandro996)) - 🐛 Exclude false positive weak randomness ([#​8232](DataDog/dd-trace-java#8232) - [@​jandro996](https://github.com/jandro996)) - ✨ Propagation of translateEscapes of String class ([#​8186](DataDog/dd-trace-java#8186) - [@​sezen-datadog](https://github.com/sezen-datadog)) - ✨ Add security control metrics ([#​8175](DataDog/dd-trace-java#8175) - [@​jandro996](https://github.com/jandro996)) - ✨ Increase IAST propagation to StringBuffer setLength ([#​8128](DataDog/dd-trace-java#8128) - [@​Mariovido](https://github.com/Mariovido)) - ✨ Add IAST taint tracking for DB values ([#​8072](DataDog/dd-trace-java#8072) - [@​Mariovido](https://github.com/Mariovido)) ##### Application Security Management (WAF) - 🐛 Prevents a NPE when there is no subscriber for user events ([#​8258](DataDog/dd-trace-java#8258) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Apply the standard nomenclature to the stacktrace configs ([#​8244](DataDog/dd-trace-java#8244) - [@​jandro996](https://github.com/jandro996)) - 🐛 Ensure cached subscriptions are cleared on reconfiguration via RC ([#​8229](DataDog/dd-trace-java#8229) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Add support for session tracking in Vertx ([#​8167](DataDog/dd-trace-java#8167) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Create span tag: \_dd.appsec.rasp.timeout ([#​8269](DataDog/dd-trace-java#8269) - [@​Mariovido](https://github.com/Mariovido)) ##### Build & Tooling - 🐛 Ensure shaded helpers have unique names when injected into class-loaders ([#​8192](DataDog/dd-trace-java#8192) - [@​mcculls](https://github.com/mcculls)) ##### Configuration at Runtime - 🐛 Remove filtering of `DD_SERVICE` and `DD_ENV` from the tracer ([#​8176](DataDog/dd-trace-java#8176) - [@​mhlidd](https://github.com/mhlidd)) ##### Continuous Integration Visibility - 🧹 Generalize TestRetryPolicy to TestExecutionPolicy ([#​8302](DataDog/dd-trace-java#8302) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🧹 Parallelize CI Visibility settings requests ([#​8299](DataDog/dd-trace-java#8299) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🧹 Generalize test retry logic ([#​8289](DataDog/dd-trace-java#8289) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🧹 Generalize tests skipping logic ([#​8288](DataDog/dd-trace-java#8288) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🧹 Remove skip and shouldBeSkipped methods from TestEventsHandler in favor of isSkippable ([#​8286](DataDog/dd-trace-java#8286) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨⚡ Optimize Git repository information computation ([#​8270](DataDog/dd-trace-java#8270) - [@​dougqh](https://github.com/dougqh)) - ✨ Always request known tests from the backend ([#​8268](DataDog/dd-trace-java#8268) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Fix NPE when trying to get retry analyzer in Test NG ([#​8253](DataDog/dd-trace-java#8253) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Set test framework and test framework version tags atomically ([#​8252](DataDog/dd-trace-java#8252) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Add debug logging to Android Gradle module layout logic ([#​8251](DataDog/dd-trace-java#8251) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Fix source and destination folders computation for Android Gradle projects ([#​8190](DataDog/dd-trace-java#8190) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Add basic Scala Weaver sbt support ([#​8189](DataDog/dd-trace-java#8189) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Implement impacted tests detection ([#​8188](DataDog/dd-trace-java#8188) - [@​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 ([#​8201](DataDog/dd-trace-java#8201) - [@​vandonr](https://github.com/vandonr)) ##### Database Monitoring - Add peer service tag in dbm sql commenter ([#​7913](DataDog/dd-trace-java#7913) - [@​jordan-wong](https://github.com/jordan-wong)) ##### Dynamic Instrumentation - ✨ Add support for SymDB to scan directories ([#​8306](DataDog/dd-trace-java#8306) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Add SymDB report for any jar scanning failures ([#​8300](DataDog/dd-trace-java#8300) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Use two budgets depending on type ([#​8283](DataDog/dd-trace-java#8283) - [@​evanchooly](https://github.com/evanchooly)) - ✨ Institute a 10 snapshot per probe per trace budget ([#​8277](DataDog/dd-trace-java#8277) - [@​evanchooly](https://github.com/evanchooly)) - 🐛 Avoid double snapshots for Exception Replay ([#​8273](DataDog/dd-trace-java#8273) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Simplify code origins. Separate out snapshot generation. ([#​8263](DataDog/dd-trace-java#8263) - [@​evanchooly](https://github.com/evanchooly)) - ✨ Add Exception probe custom instrumentation ([#​8230](DataDog/dd-trace-java#8230) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Enhance log probes to honor debug session tags ([#​8215](DataDog/dd-trace-java#8215) - [@​evanchooly](https://github.com/evanchooly)) - 🐛 Don't redact env tokens from debugger probe snapshots ([#​8211](DataDog/dd-trace-java#8211) - [@​watson](https://github.com/watson)) - ✨⚡ Move Trace/SpanId capture at commit time ([#​8184](DataDog/dd-trace-java#8184) - [@​jpbempel](https://github.com/jpbempel)) - 🐛 Capture values at entry for method probe ([#​8169](DataDog/dd-trace-java#8169) - [@​jpbempel](https://github.com/jpbempel)) ##### JMX fetch - 🐛 Mute JMXFetch Shutdown in progress error ([#​8068](DataDog/dd-trace-java#8068) - [@​ygree](https://github.com/ygree)) ##### OpenTracing -⚠️ 🧹 Make jnr-unixsocket an explicit dependency of dd-trace-ot ([#​8307](DataDog/dd-trace-java#8307) - [@​mcculls](https://github.com/mcculls)) ##### Profiling - 🐛 Avoid unsupported API call for creating folders on windows ([#​8304](DataDog/dd-trace-java#8304) - [@​jbachorik](https://github.com/jbachorik)) - ✨ Tag profiles for serverless ([#​8279](DataDog/dd-trace-java#8279) - [@​jbachorik](https://github.com/jbachorik)) - ✨ add queue type and length to queue events ([#​8242](DataDog/dd-trace-java#8242) - [@​richardstartin](https://github.com/richardstartin)) - 🐛 TempLocationManager Fixes and Improvements ([#​8191](DataDog/dd-trace-java#8191) - [@​jbachorik](https://github.com/jbachorik)) - ✨ Bump ddprof to 1.18.0 ([#​8173](DataDog/dd-trace-java#8173) - [@​jbachorik](https://github.com/jbachorik)) - ✨ Report profiler initialization and configuration errors to telemetry ([#​8171](DataDog/dd-trace-java#8171) - [@​jbachorik](https://github.com/jbachorik)) ##### Telemetry - ✨ Add pending traces report in tracer flares ([#​8053](DataDog/dd-trace-java#8053) - [@​mhlidd](https://github.com/mhlidd)) ##### Testing - ✨ Test http server requests in parallel ([#​8222](DataDog/dd-trace-java#8222) - [@​amarziali](https://github.com/amarziali)) ##### Trace context propagation - ✨ Add non default propagator registration ([#​8310](DataDog/dd-trace-java#8310) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) ##### Tracer core - ✨ Probe for existence of IBMSASL or ACCP security providers ([#​8276](DataDog/dd-trace-java#8276) - [@​mcculls](https://github.com/mcculls)) - ✨⚡ Overhead improvement to agent feedback based sampling ([#​8265](DataDog/dd-trace-java#8265) - [@​dougqh](https://github.com/dougqh)) - 🧹 Move async propagation API from scope to tracer ([#​8231](DataDog/dd-trace-java#8231) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) - ✨ Introduce context propagation API ([#​8161](DataDog/dd-trace-java#8161) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) - ✨🧪 Use env-entry to add tags per webapp deployment ([#​8138](DataDog/dd-trace-java#8138) - [@​amarziali](https://github.com/amarziali)) - ✨ Introduce context helpers API ([#​8134](DataDog/dd-trace-java#8134) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) - ✨ Support IPv6 values for `DD_AGENT_HOST` and `DD_TRACE_AGENT_URL` ([#​7984](DataDog/dd-trace-java#7984) - [@​mhlidd](https://github.com/mhlidd)) ##### Instrumentations ##### Apache HttpComponents - 🐛 Properly finish spans and support latest apache httpclient5 ([#​8272](DataDog/dd-trace-java#8272) - [@​amarziali](https://github.com/amarziali)) ##### AWS Lambda instrumentation - 🐛 Properly capture lambda payloads for all handler types. ([#​8264](DataDog/dd-trace-java#8264) - [@​purple4reina](https://github.com/purple4reina)) ##### AWS S3 instrumentation - 💡 Create S3 instrumentation + add span pointers ([#​8075](DataDog/dd-trace-java#8075) - [@​nhulston](https://github.com/nhulston)) ##### AWS SDK instrumentation - 🐛 Revert "Add avoid double instrumenting lambda non-streaming handlers." ([#​8247](DataDog/dd-trace-java#8247) - [@​nhulston](https://github.com/nhulston)) ##### Cassandra - ✨ Allow extracting keyspace from statement result ([#​8239](DataDog/dd-trace-java#8239) - [@​amarziali](https://github.com/amarziali)) ##### Core Java language instrumentation - ✨ Propagation of translateEscapes of String class ([#​8186](DataDog/dd-trace-java#8186) - [@​sezen-datadog](https://github.com/sezen-datadog)) ##### Eclipse Vert.x instrumentation - 🐛 Fix vertx worker propagation and error handling ([#​8237](DataDog/dd-trace-java#8237) - [@​amarziali](https://github.com/amarziali)) - ✨ Support vertx 5 ([#​8220](DataDog/dd-trace-java#8220) - [@​amarziali](https://github.com/amarziali)) - ✨ Add support for session tracking in Vertx ([#​8167](DataDog/dd-trace-java#8167) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) ##### Kafka instrumentation - 🐛 Prevent possible NPE calculating Kafka record header size ([#​8292](DataDog/dd-trace-java#8292) - [@​ygree](https://github.com/ygree)) ##### Mule instrumentation - 🐛 Fix crash using Mule with JPMS ([#​8187](DataDog/dd-trace-java#8187) - [@​amarziali](https://github.com/amarziali)) ##### Protocol Buffer instrumentation - ✨ Change hash computation for protobuf to better represent impacting changes + save proto number in schema ([#​8201](DataDog/dd-trace-java#8201) - [@​vandonr](https://github.com/vandonr)) ##### Spring instrumentation - 🐛 Preserve getQualifier from spring scheduling runnables ([#​8293](DataDog/dd-trace-java#8293) - [@​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
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
type:
and (comp:
orinst:
) labels in addition to any usefull labelsclose
,fix
or any linking keywords when referencing an issue.Use
solves
instead, and assign the PR milestone to the issueJira ticket: DEBUG-3285