-
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
Move async propagation API from scope to tracer #8231
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 56 metrics, 7 unstable metrics. Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.46.0-SNAPSHOT~92e1a55c31, baseline=1.46.0-SNAPSHOT~693c605f76
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.057 s) : 0, 1057180
Total [baseline] (10.516 s) : 0, 10515563
Agent [candidate] (1.06 s) : 0, 1060267
Total [candidate] (10.426 s) : 0, 10425662
section appsec
Agent [baseline] (1.19 s) : 0, 1190308
Total [baseline] (10.701 s) : 0, 10700653
Agent [candidate] (1.188 s) : 0, 1187682
Total [candidate] (10.715 s) : 0, 10714625
section iast
Agent [baseline] (1.196 s) : 0, 1195932
Total [baseline] (10.991 s) : 0, 10990707
Agent [candidate] (1.183 s) : 0, 1183359
Total [candidate] (11.021 s) : 0, 11020779
section profiling
Agent [baseline] (1.252 s) : 0, 1251921
Total [baseline] (10.835 s) : 0, 10835463
Agent [candidate] (1.26 s) : 0, 1259914
Total [candidate] (10.766 s) : 0, 10765638
gantt
title petclinic - break down per module: candidate=1.46.0-SNAPSHOT~92e1a55c31, baseline=1.46.0-SNAPSHOT~693c605f76
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (715.407 ms) : 0, 715407
BytebuddyAgent [candidate] (716.873 ms) : 0, 716873
GlobalTracer [baseline] (255.323 ms) : 0, 255323
GlobalTracer [candidate] (256.377 ms) : 0, 256377
AppSec [baseline] (56.376 ms) : 0, 56376
AppSec [candidate] (55.389 ms) : 0, 55389
Remote Config [baseline] (739.533 µs) : 0, 740
Remote Config [candidate] (717.065 µs) : 0, 717
Telemetry [baseline] (14.283 ms) : 0, 14283
Telemetry [candidate] (15.789 ms) : 0, 15789
section appsec
BytebuddyAgent [baseline] (732.694 ms) : 0, 732694
BytebuddyAgent [candidate] (730.444 ms) : 0, 730444
GlobalTracer [baseline] (253.02 ms) : 0, 253020
GlobalTracer [candidate] (252.809 ms) : 0, 252809
AppSec [baseline] (170.685 ms) : 0, 170685
AppSec [candidate] (170.474 ms) : 0, 170474
Remote Config [baseline] (661.141 µs) : 0, 661
Remote Config [candidate] (665.476 µs) : 0, 665
Telemetry [baseline] (8.135 ms) : 0, 8135
Telemetry [candidate] (8.569 ms) : 0, 8569
IAST [baseline] (20.11 ms) : 0, 20110
IAST [candidate] (19.422 ms) : 0, 19422
section iast
BytebuddyAgent [baseline] (841.403 ms) : 0, 841403
BytebuddyAgent [candidate] (832.31 ms) : 0, 832310
GlobalTracer [baseline] (249.638 ms) : 0, 249638
GlobalTracer [candidate] (246.674 ms) : 0, 246674
AppSec [baseline] (58.477 ms) : 0, 58477
AppSec [candidate] (58.101 ms) : 0, 58101
Remote Config [baseline] (655.219 µs) : 0, 655
Remote Config [candidate] (669.997 µs) : 0, 670
Telemetry [baseline] (8.853 ms) : 0, 8853
Telemetry [candidate] (8.82 ms) : 0, 8820
IAST [baseline] (21.845 ms) : 0, 21845
IAST [candidate] (21.742 ms) : 0, 21742
section profiling
ProfilingAgent [baseline] (95.396 ms) : 0, 95396
ProfilingAgent [candidate] (95.869 ms) : 0, 95869
BytebuddyAgent [baseline] (702.24 ms) : 0, 702240
BytebuddyAgent [candidate] (707.149 ms) : 0, 707149
GlobalTracer [baseline] (348.395 ms) : 0, 348395
GlobalTracer [candidate] (350.358 ms) : 0, 350358
AppSec [baseline] (54.578 ms) : 0, 54578
AppSec [candidate] (54.722 ms) : 0, 54722
Remote Config [baseline] (696.577 µs) : 0, 697
Remote Config [candidate] (700.039 µs) : 0, 700
Telemetry [baseline] (8.698 ms) : 0, 8698
Telemetry [candidate] (8.951 ms) : 0, 8951
Profiling [baseline] (95.42 ms) : 0, 95420
Profiling [candidate] (95.893 ms) : 0, 95893
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.46.0-SNAPSHOT~92e1a55c31, baseline=1.46.0-SNAPSHOT~693c605f76
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.057 s) : 0, 1057093
Total [baseline] (8.608 s) : 0, 8607892
Agent [candidate] (1.057 s) : 0, 1057199
Total [candidate] (8.618 s) : 0, 8618403
section iast
Agent [baseline] (1.182 s) : 0, 1182113
Total [baseline] (9.274 s) : 0, 9274448
Agent [candidate] (1.181 s) : 0, 1180915
Total [candidate] (9.187 s) : 0, 9186695
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.185 s) : 0, 1185047
Total [baseline] (9.226 s) : 0, 9226176
Agent [candidate] (1.193 s) : 0, 1193071
Total [candidate] (9.172 s) : 0, 9172433
section iast_TELEMETRY_OFF
Agent [baseline] (1.188 s) : 0, 1187527
Total [baseline] (9.189 s) : 0, 9188608
Agent [candidate] (1.186 s) : 0, 1185645
Total [candidate] (9.176 s) : 0, 9175720
gantt
title insecure-bank - break down per module: candidate=1.46.0-SNAPSHOT~92e1a55c31, baseline=1.46.0-SNAPSHOT~693c605f76
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (714.407 ms) : 0, 714407
BytebuddyAgent [candidate] (715.103 ms) : 0, 715103
GlobalTracer [baseline] (255.727 ms) : 0, 255727
GlobalTracer [candidate] (256.155 ms) : 0, 256155
AppSec [baseline] (55.52 ms) : 0, 55520
AppSec [candidate] (56.038 ms) : 0, 56038
Remote Config [baseline] (747.521 µs) : 0, 748
Remote Config [candidate] (717.206 µs) : 0, 717
Telemetry [baseline] (15.691 ms) : 0, 15691
Telemetry [candidate] (14.139 ms) : 0, 14139
section iast
BytebuddyAgent [baseline] (831.877 ms) : 0, 831877
BytebuddyAgent [candidate] (830.968 ms) : 0, 830968
GlobalTracer [baseline] (246.074 ms) : 0, 246074
GlobalTracer [candidate] (246.334 ms) : 0, 246334
AppSec [baseline] (57.986 ms) : 0, 57986
AppSec [candidate] (57.741 ms) : 0, 57741
Remote Config [baseline] (676.52 µs) : 0, 677
Remote Config [candidate] (663.773 µs) : 0, 664
Telemetry [baseline] (8.872 ms) : 0, 8872
Telemetry [candidate] (8.806 ms) : 0, 8806
IAST [baseline] (21.568 ms) : 0, 21568
IAST [candidate] (21.414 ms) : 0, 21414
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (831.944 ms) : 0, 831944
BytebuddyAgent [candidate] (840.149 ms) : 0, 840149
GlobalTracer [baseline] (248.106 ms) : 0, 248106
GlobalTracer [candidate] (248.534 ms) : 0, 248534
AppSec [baseline] (58.618 ms) : 0, 58618
AppSec [candidate] (58.111 ms) : 0, 58111
Remote Config [baseline] (682.191 µs) : 0, 682
Remote Config [candidate] (661.426 µs) : 0, 661
Telemetry [baseline] (8.902 ms) : 0, 8902
Telemetry [candidate] (8.739 ms) : 0, 8739
IAST [baseline] (21.841 ms) : 0, 21841
IAST [candidate] (21.629 ms) : 0, 21629
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (836.477 ms) : 0, 836477
BytebuddyAgent [candidate] (835.086 ms) : 0, 835086
GlobalTracer [baseline] (247.496 ms) : 0, 247496
GlobalTracer [candidate] (247.44 ms) : 0, 247440
AppSec [baseline] (57.991 ms) : 0, 57991
AppSec [candidate] (57.508 ms) : 0, 57508
Remote Config [baseline] (661.302 µs) : 0, 661
Remote Config [candidate] (670.46 µs) : 0, 670
Telemetry [baseline] (8.737 ms) : 0, 8737
Telemetry [candidate] (8.703 ms) : 0, 8703
IAST [baseline] (21.014 ms) : 0, 21014
IAST [candidate] (21.116 ms) : 0, 21116
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 17 unstable metrics. Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.46.0-SNAPSHOT~92e1a55c31, baseline=1.46.0-SNAPSHOT~693c605f76
dateFormat X
axisFormat %s
section baseline
no_agent (1.339 ms) : 1319, 1360
. : milestone, 1339,
appsec (1.74 ms) : 1717, 1764
. : milestone, 1740,
appsec_no_iast (1.756 ms) : 1732, 1780
. : milestone, 1756,
iast (1.521 ms) : 1497, 1546
. : milestone, 1521,
profiling (1.541 ms) : 1516, 1566
. : milestone, 1541,
tracing (1.472 ms) : 1447, 1498
. : milestone, 1472,
section candidate
no_agent (1.334 ms) : 1313, 1354
. : milestone, 1334,
appsec (1.749 ms) : 1724, 1775
. : milestone, 1749,
appsec_no_iast (1.74 ms) : 1715, 1765
. : milestone, 1740,
iast (1.494 ms) : 1470, 1519
. : milestone, 1494,
profiling (1.495 ms) : 1472, 1518
. : milestone, 1495,
tracing (1.479 ms) : 1454, 1504
. : milestone, 1479,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.46.0-SNAPSHOT~92e1a55c31, baseline=1.46.0-SNAPSHOT~693c605f76
dateFormat X
axisFormat %s
section baseline
no_agent (375.174 µs) : 353, 397
. : milestone, 375,
iast (500.452 µs) : 479, 522
. : milestone, 500,
iast_FULL (736.704 µs) : 715, 758
. : milestone, 737,
iast_GLOBAL (545.386 µs) : 524, 567
. : milestone, 545,
iast_HARDCODED_SECRET_DISABLED (509.011 µs) : 487, 531
. : milestone, 509,
iast_INACTIVE (451.66 µs) : 430, 474
. : milestone, 452,
iast_TELEMETRY_OFF (487.108 µs) : 466, 509
. : milestone, 487,
tracing (451.319 µs) : 430, 473
. : milestone, 451,
section candidate
no_agent (380.703 µs) : 361, 401
. : milestone, 381,
iast (502.385 µs) : 481, 524
. : milestone, 502,
iast_FULL (733.484 µs) : 712, 755
. : milestone, 733,
iast_GLOBAL (553.507 µs) : 531, 576
. : milestone, 554,
iast_HARDCODED_SECRET_DISABLED (502.371 µs) : 481, 524
. : milestone, 502,
iast_INACTIVE (461.552 µs) : 440, 483
. : milestone, 462,
iast_TELEMETRY_OFF (491.121 µs) : 469, 513
. : milestone, 491,
tracing (451.432 µs) : 430, 473
. : milestone, 451,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 1 unstable metrics. Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.46.0-SNAPSHOT~92e1a55c31, baseline=1.46.0-SNAPSHOT~693c605f76
dateFormat X
axisFormat %s
section baseline
no_agent (1.471 ms) : 1459, 1482
. : milestone, 1471,
appsec (2.343 ms) : 2300, 2386
. : milestone, 2343,
iast (2.09 ms) : 2036, 2144
. : milestone, 2090,
iast_GLOBAL (2.141 ms) : 2086, 2195
. : milestone, 2141,
profiling (2.455 ms) : 2262, 2648
. : milestone, 2455,
tracing (1.933 ms) : 1891, 1975
. : milestone, 1933,
section candidate
no_agent (1.473 ms) : 1462, 1485
. : milestone, 1473,
appsec (2.347 ms) : 2304, 2390
. : milestone, 2347,
iast (2.095 ms) : 2040, 2149
. : milestone, 2095,
iast_GLOBAL (2.136 ms) : 2081, 2191
. : milestone, 2136,
profiling (1.963 ms) : 1919, 2008
. : milestone, 1963,
tracing (1.947 ms) : 1905, 1989
. : milestone, 1947,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.46.0-SNAPSHOT~92e1a55c31, baseline=1.46.0-SNAPSHOT~693c605f76
dateFormat X
axisFormat %s
section baseline
no_agent (15.22 s) : 15220000, 15220000
. : milestone, 15220000,
appsec (15.167 s) : 15167000, 15167000
. : milestone, 15167000,
iast (18.808 s) : 18808000, 18808000
. : milestone, 18808000,
iast_GLOBAL (17.87 s) : 17870000, 17870000
. : milestone, 17870000,
profiling (15.199 s) : 15199000, 15199000
. : milestone, 15199000,
tracing (15.093 s) : 15093000, 15093000
. : milestone, 15093000,
section candidate
no_agent (15.133 s) : 15133000, 15133000
. : milestone, 15133000,
appsec (15.071 s) : 15071000, 15071000
. : milestone, 15071000,
iast (18.427 s) : 18427000, 18427000
. : milestone, 18427000,
iast_GLOBAL (18.341 s) : 18341000, 18341000
. : milestone, 18341000,
profiling (15.75 s) : 15750000, 15750000
. : milestone, 15750000,
tracing (15.16 s) : 15160000, 15160000
. : milestone, 15160000,
|
548f1c9
to
1725b85
Compare
1725b85
to
9a815a2
Compare
*/ | ||
@Deprecated | ||
default boolean isAsyncPropagating() { | ||
return false; |
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.
Note TracerAPI
is part of the internal-api
It might be better to add isAsyncPropagationEnabled
/ setAsyncPropagationEnabled
to Tracer
to mirror the change in internal-api
and then you could default this to GlobalTracer.get().isAsyncPropagationEnabled()
We could keep the deprecated notice and say that these methods have been moved to Tracer
and now only affect the active scope.
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.
We could. The main question is do we want to keep this API as part of our public API or not?
I moved it to TracerAPI
to only open it for our instrumentations, not being sure if customers use it as part of their manual instrumentations - for context, the original API in TraceScope
is part of the public API.
If we want to keep the feature open and part of our public API, I will move it to the Tracer
interface.
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.
If we decide to keep it internal as part of TracerAPI
then we cannot refer to TracerAPI
here in the public docs because then customers will think that was meant to be part of the public API and open tickets asking how to build against it. So either way the reference to TracerAPI
should be dropped here.
I'm leaning towards having similar methods exposed on Tracer
, but also marked as deprecated
, if only because we don't know for sure if anyone is using these methods. The default implementations in TraceScope
could log a warning if used. That would avoid accidentally breaking anyone using them, while giving a bit of insight if they are actually used.
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.
but also marked as deprecated
Sounds fair. I wish we had a way to mark them as beta, or any unstable marker easily recognisable.
The default implementations in TraceScope could log a warning if used
While throwing an UnsupportedOperationException
was a bit aggressive, I feel like adding an warning log is the right solution. As it should not be used that much, we should not expect many customers complaining about having unexpected warning entries in their logs. I will update the TraceScope
default implementation then.
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.
EDIT: The API usage logging won't be done for now, as SLF4J is not available in dd-trace-api
and using JUL can have some annoying side-effects when users want to use custom log managers.
@@ -277,7 +278,7 @@ class ScopeManagerTest extends DDCoreSpecification { | |||
when: | |||
def span = tracer.buildSpan("test").start() | |||
def scope = tracer.activateSpan(span) | |||
scope.setAsyncPropagation(true) | |||
setAsyncPropagationEnabled(true) |
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.
the calls above use tracer. setAsyncPropagationEnabled(true)
while the ones below use setAsyncPropagationEnabled(true)
(static AgentTracer
method) - we should be consistent in this test and pick one
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.
For some tests, the setAsyncPropagationEnabled(true)
would not work as the tracer under test was not the one registered in GlobalTracer
.
I updated to use tracer. setAsyncPropagationEnabled(true)
everywhere in this specification.
internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentTracer.java
Outdated
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentTracer.java
Outdated
Show resolved
Hide resolved
/** | ||
* Enables or disables asynchronous propagation for the active span. | ||
* | ||
* <p>Asynchronous propagation is disabled by default. |
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.
Is it though? I thought we currently default to propagation enabled: https://github.com/DataDog/dd-trace-java/blob/master/dd-trace-api/src/main/java/datadog/trace/api/ConfigDefaults.java#L210
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.
It is indeed. Thanks for catching it! I will update the javadoc and refer to the config
/** | ||
* Enables or disables asynchronous propagation for the active span. | ||
* | ||
* <p>Asynchronous propagation is disabled by default. |
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.
Is it though? I thought we currently default to propagation enabled: https://github.com/DataDog/dd-trace-java/blob/master/dd-trace-api/src/main/java/datadog/trace/api/ConfigDefaults.java#L210
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.
It is indeed. Thanks for catching it! I will update the javadoc and refer to the config
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.
Looks good, just some comments that need fixing and a Q whether we can expose the new methods on the public Tracer
(and use them in the deprecated default implementation on TraceScope
) which would make migration smoother.
| 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
First part of the refactoring only.
Only moved the API to the tracer, not the internal behavior.
Async flag should move away from the scope itself.
Motivation
This should help testing if moving the API from the scope to the tracer cause issues as the scope will implicitly be the active scope.
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: APMAPI-954