- Notifications
You must be signed in to change notification settings - Fork 320
Move async propagation API from scope to tracer #8231
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
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.
| 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
mcculls left a comment
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,fixor any linking keywords when referencing an issue.Use
solvesinstead, and assign the PR milestone to the issueJira ticket: APMAPI-954