-
Notifications
You must be signed in to change notification settings - Fork 293
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add basic Scala Weaver sbt support #8189
Conversation
public TaskDefAwareQueueProxy(TaskDef taskDef, ConcurrentLinkedQueue<T> delegate) { | ||
this.taskDef = taskDef; | ||
this.delegate = delegate; | ||
DatadogWeaverReporter.start(); | ||
} |
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.
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 1 performance regressions! Performance is the same for 57 metrics, 5 unstable metrics.
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.46.0-SNAPSHOT~25de5c4a81, baseline=1.46.0-SNAPSHOT~a37d082bd0
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.055 s) : 0, 1055220
Total [baseline] (8.642 s) : 0, 8641635
Agent [candidate] (1.057 s) : 0, 1056812
Total [candidate] (8.637 s) : 0, 8637154
section iast
Agent [baseline] (1.181 s) : 0, 1180754
Total [baseline] (9.204 s) : 0, 9203957
Agent [candidate] (1.183 s) : 0, 1182944
Total [candidate] (9.26 s) : 0, 9260419
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.182 s) : 0, 1181937
Total [baseline] (9.186 s) : 0, 9185615
Agent [candidate] (1.195 s) : 0, 1194707
Total [candidate] (9.239 s) : 0, 9238503
section iast_TELEMETRY_OFF
Agent [baseline] (1.187 s) : 0, 1186896
Total [baseline] (9.241 s) : 0, 9240688
Agent [candidate] (1.189 s) : 0, 1188866
Total [candidate] (9.236 s) : 0, 9236042
gantt
title insecure-bank - break down per module: candidate=1.46.0-SNAPSHOT~25de5c4a81, baseline=1.46.0-SNAPSHOT~a37d082bd0
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (714.312 ms) : 0, 714312
BytebuddyAgent [candidate] (714.057 ms) : 0, 714057
GlobalTracer [baseline] (256.037 ms) : 0, 256037
GlobalTracer [candidate] (256.384 ms) : 0, 256384
AppSec [baseline] (56.296 ms) : 0, 56296
AppSec [candidate] (56.84 ms) : 0, 56840
Remote Config [baseline] (733.604 µs) : 0, 734
Remote Config [candidate] (720.292 µs) : 0, 720
Telemetry [baseline] (12.887 ms) : 0, 12887
Telemetry [candidate] (13.831 ms) : 0, 13831
section iast
BytebuddyAgent [baseline] (830.29 ms) : 0, 830290
BytebuddyAgent [candidate] (832.174 ms) : 0, 832174
GlobalTracer [baseline] (246.104 ms) : 0, 246104
GlobalTracer [candidate] (247.186 ms) : 0, 247186
AppSec [baseline] (58.263 ms) : 0, 58263
AppSec [candidate] (57.87 ms) : 0, 57870
IAST [baseline] (21.618 ms) : 0, 21618
IAST [candidate] (21.299 ms) : 0, 21299
Remote Config [baseline] (664.896 µs) : 0, 665
Remote Config [candidate] (651.298 µs) : 0, 651
Telemetry [baseline] (8.813 ms) : 0, 8813
Telemetry [candidate] (8.732 ms) : 0, 8732
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (830.697 ms) : 0, 830697
BytebuddyAgent [candidate] (839.958 ms) : 0, 839958
GlobalTracer [baseline] (246.612 ms) : 0, 246612
GlobalTracer [candidate] (249.432 ms) : 0, 249432
AppSec [baseline] (58.427 ms) : 0, 58427
AppSec [candidate] (58.764 ms) : 0, 58764
IAST [baseline] (21.714 ms) : 0, 21714
IAST [candidate] (21.69 ms) : 0, 21690
Remote Config [baseline] (677.467 µs) : 0, 677
Remote Config [candidate] (686.467 µs) : 0, 686
Telemetry [baseline] (8.84 ms) : 0, 8840
Telemetry [candidate] (8.938 ms) : 0, 8938
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (835.11 ms) : 0, 835110
BytebuddyAgent [candidate] (835.867 ms) : 0, 835867
GlobalTracer [baseline] (248.242 ms) : 0, 248242
GlobalTracer [candidate] (248.868 ms) : 0, 248868
AppSec [baseline] (58.138 ms) : 0, 58138
AppSec [candidate] (58.442 ms) : 0, 58442
IAST [baseline] (20.958 ms) : 0, 20958
IAST [candidate] (21.066 ms) : 0, 21066
Remote Config [baseline] (674.335 µs) : 0, 674
Remote Config [candidate] (669.029 µs) : 0, 669
Telemetry [baseline] (8.694 ms) : 0, 8694
Telemetry [candidate] (8.74 ms) : 0, 8740
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.46.0-SNAPSHOT~25de5c4a81, baseline=1.46.0-SNAPSHOT~a37d082bd0
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.053 s) : 0, 1053164
Total [baseline] (10.487 s) : 0, 10487431
Agent [candidate] (1.056 s) : 0, 1056431
Total [candidate] (10.555 s) : 0, 10554941
section appsec
Agent [baseline] (1.192 s) : 0, 1192437
Total [baseline] (10.756 s) : 0, 10755560
Agent [candidate] (1.189 s) : 0, 1189117
Total [candidate] (10.762 s) : 0, 10761512
section iast
Agent [baseline] (1.195 s) : 0, 1195421
Total [baseline] (11.011 s) : 0, 11010965
Agent [candidate] (1.182 s) : 0, 1181847
Total [candidate] (11.018 s) : 0, 11018121
section profiling
Agent [baseline] (1.255 s) : 0, 1254834
Total [baseline] (10.805 s) : 0, 10805460
Agent [candidate] (1.28 s) : 0, 1279547
Total [candidate] (10.93 s) : 0, 10930279
gantt
title petclinic - break down per module: candidate=1.46.0-SNAPSHOT~25de5c4a81, baseline=1.46.0-SNAPSHOT~a37d082bd0
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (712.798 ms) : 0, 712798
BytebuddyAgent [candidate] (715.701 ms) : 0, 715701
GlobalTracer [baseline] (254.692 ms) : 0, 254692
GlobalTracer [candidate] (255.957 ms) : 0, 255957
AppSec [baseline] (56.175 ms) : 0, 56175
AppSec [candidate] (55.292 ms) : 0, 55292
Remote Config [baseline] (724.772 µs) : 0, 725
Remote Config [candidate] (730.847 µs) : 0, 731
Telemetry [baseline] (13.834 ms) : 0, 13834
Telemetry [candidate] (13.751 ms) : 0, 13751
section appsec
BytebuddyAgent [baseline] (734.359 ms) : 0, 734359
BytebuddyAgent [candidate] (730.276 ms) : 0, 730276
GlobalTracer [baseline] (253.47 ms) : 0, 253470
GlobalTracer [candidate] (253.746 ms) : 0, 253746
AppSec [baseline] (171.123 ms) : 0, 171123
AppSec [candidate] (170.966 ms) : 0, 170966
Remote Config [baseline] (665.025 µs) : 0, 665
Remote Config [candidate] (677.409 µs) : 0, 677
Telemetry [baseline] (8.136 ms) : 0, 8136
Telemetry [candidate] (8.26 ms) : 0, 8260
IAST [baseline] (19.293 ms) : 0, 19293
IAST [candidate] (20.358 ms) : 0, 20358
section iast
BytebuddyAgent [baseline] (841.197 ms) : 0, 841197
BytebuddyAgent [candidate] (830.904 ms) : 0, 830904
GlobalTracer [baseline] (248.746 ms) : 0, 248746
GlobalTracer [candidate] (246.956 ms) : 0, 246956
AppSec [baseline] (58.697 ms) : 0, 58697
AppSec [candidate] (57.924 ms) : 0, 57924
Remote Config [baseline] (706.497 µs) : 0, 706
Remote Config [candidate] (675.994 µs) : 0, 676
Telemetry [baseline] (8.889 ms) : 0, 8889
Telemetry [candidate] (8.854 ms) : 0, 8854
IAST [baseline] (21.811 ms) : 0, 21811
IAST [candidate] (21.449 ms) : 0, 21449
section profiling
BytebuddyAgent [baseline] (703.518 ms) : 0, 703518
BytebuddyAgent [candidate] (704.593 ms) : 0, 704593
GlobalTracer [baseline] (348.765 ms) : 0, 348765
GlobalTracer [candidate] (372.285 ms) : 0, 372285
AppSec [baseline] (55.546 ms) : 0, 55546
AppSec [candidate] (54.528 ms) : 0, 54528
Remote Config [baseline] (707.002 µs) : 0, 707
Remote Config [candidate] (705.942 µs) : 0, 706
Telemetry [baseline] (8.778 ms) : 0, 8778
Telemetry [candidate] (8.959 ms) : 0, 8959
ProfilingAgent [baseline] (95.363 ms) : 0, 95363
ProfilingAgent [candidate] (96.532 ms) : 0, 96532
Profiling [baseline] (95.387 ms) : 0, 95387
Profiling [candidate] (96.556 ms) : 0, 96556
LoadParameters
See matching parameters
SummaryFound 1 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 16 unstable metrics.
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.46.0-SNAPSHOT~25de5c4a81, baseline=1.46.0-SNAPSHOT~a37d082bd0
dateFormat X
axisFormat %s
section baseline
no_agent (376.053 µs) : 356, 396
. : milestone, 376,
iast (504.486 µs) : 482, 527
. : milestone, 504,
iast_FULL (740.126 µs) : 718, 762
. : milestone, 740,
iast_GLOBAL (546.696 µs) : 525, 568
. : milestone, 547,
iast_HARDCODED_SECRET_DISABLED (503.574 µs) : 482, 525
. : milestone, 504,
iast_INACTIVE (453.521 µs) : 432, 475
. : milestone, 454,
iast_TELEMETRY_OFF (495.375 µs) : 474, 517
. : milestone, 495,
tracing (459.186 µs) : 437, 481
. : milestone, 459,
section candidate
no_agent (375.914 µs) : 355, 396
. : milestone, 376,
iast (498.123 µs) : 476, 520
. : milestone, 498,
iast_FULL (657.605 µs) : 636, 679
. : milestone, 658,
iast_GLOBAL (513.762 µs) : 493, 535
. : milestone, 514,
iast_HARDCODED_SECRET_DISABLED (495.933 µs) : 475, 517
. : milestone, 496,
iast_INACTIVE (456.345 µs) : 435, 478
. : milestone, 456,
iast_TELEMETRY_OFF (480.316 µs) : 459, 502
. : milestone, 480,
tracing (444.988 µs) : 424, 466
. : milestone, 445,
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.46.0-SNAPSHOT~25de5c4a81, baseline=1.46.0-SNAPSHOT~a37d082bd0
dateFormat X
axisFormat %s
section baseline
no_agent (1.365 ms) : 1346, 1385
. : milestone, 1365,
appsec (1.745 ms) : 1722, 1769
. : milestone, 1745,
appsec_no_iast (1.77 ms) : 1748, 1793
. : milestone, 1770,
iast (1.503 ms) : 1479, 1527
. : milestone, 1503,
profiling (1.521 ms) : 1496, 1546
. : milestone, 1521,
tracing (1.492 ms) : 1469, 1516
. : milestone, 1492,
section candidate
no_agent (1.359 ms) : 1339, 1379
. : milestone, 1359,
appsec (1.75 ms) : 1727, 1773
. : milestone, 1750,
appsec_no_iast (1.75 ms) : 1726, 1774
. : milestone, 1750,
iast (1.492 ms) : 1469, 1514
. : milestone, 1492,
profiling (1.505 ms) : 1482, 1529
. : milestone, 1505,
tracing (1.498 ms) : 1473, 1522
. : milestone, 1498,
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~25de5c4a81, baseline=1.46.0-SNAPSHOT~a37d082bd0
dateFormat X
axisFormat %s
section baseline
no_agent (1.462 ms) : 1451, 1474
. : milestone, 1462,
appsec (2.357 ms) : 2314, 2400
. : milestone, 2357,
iast (2.102 ms) : 2047, 2156
. : milestone, 2102,
iast_GLOBAL (2.153 ms) : 2098, 2208
. : milestone, 2153,
profiling (2.457 ms) : 2269, 2644
. : milestone, 2457,
tracing (1.937 ms) : 1896, 1979
. : milestone, 1937,
section candidate
no_agent (1.469 ms) : 1457, 1480
. : milestone, 1469,
appsec (2.357 ms) : 2314, 2400
. : milestone, 2357,
iast (2.098 ms) : 2044, 2153
. : milestone, 2098,
iast_GLOBAL (2.147 ms) : 2093, 2202
. : milestone, 2147,
profiling (1.96 ms) : 1916, 2004
. : milestone, 1960,
tracing (1.93 ms) : 1889, 1971
. : milestone, 1930,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.46.0-SNAPSHOT~25de5c4a81, baseline=1.46.0-SNAPSHOT~a37d082bd0
dateFormat X
axisFormat %s
section baseline
no_agent (15.161 s) : 15161000, 15161000
. : milestone, 15161000,
appsec (14.928 s) : 14928000, 14928000
. : milestone, 14928000,
iast (18.867 s) : 18867000, 18867000
. : milestone, 18867000,
iast_GLOBAL (17.902 s) : 17902000, 17902000
. : milestone, 17902000,
profiling (15.769 s) : 15769000, 15769000
. : milestone, 15769000,
tracing (14.864 s) : 14864000, 14864000
. : milestone, 14864000,
section candidate
no_agent (15.274 s) : 15274000, 15274000
. : milestone, 15274000,
appsec (15.255 s) : 15255000, 15255000
. : milestone, 15255000,
iast (18.742 s) : 18742000, 18742000
. : milestone, 18742000,
iast_GLOBAL (17.356 s) : 17356000, 17356000
. : milestone, 17356000,
profiling (14.947 s) : 14947000, 14947000
. : milestone, 14947000,
tracing (15.212 s) : 15212000, 15212000
. : milestone, 15212000,
|
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.
Left a couple of minor comments, other than that looks good!
@Nullable String testMethodName, | ||
@Nullable Method testMethod, | ||
boolean isRetry, | ||
@Nullable Long startTime); |
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.
Let's just add this startTime
parameter to the existing method to keep the interface simple. You can use Refactor -> Change Signature
(cmd+F6) in Intellij, it will do all the work for you (you can specify the default value of null
for the new parameter, and the IDE will update all the callers of the method).
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.
Refactored also TestSuite start and end handling to accept time parameters, to keep the interface consistent.
} | ||
|
||
@Override | ||
public boolean isApplicable(Set<TargetSystem> enabledSystems) { |
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.
There's no need to override this method, since all it does is delegating to the parent class
@@ -504,6 +504,7 @@ include ':dd-java-agent:instrumentation:redisson' | |||
include ':dd-java-agent:instrumentation:redisson:redisson-2.0.0' | |||
include ':dd-java-agent:instrumentation:redisson:redisson-2.3.0' | |||
include ':dd-java-agent:instrumentation:redisson:redisson-3.10.3' | |||
include ':dd-java-agent:instrumentation:weaver' |
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 should also update isTestingInstrumentation
in gradle/configure_tests.gradle
Hi! Original feature request author here. I'm excited to see this being worked on, and as far as I can tell, the changes look great! I would suggest adding a few extra tests beyond the SimpleIOSuite. Specifically, testing the IOSuite with suite resource sharing and IOSuite using global resource would be beneficial. Examples from the documentation should be sufficient for these test cases. If you need more details on Weaver, I’m happy to help! |
Thanks @majk-p ! I'll take into account. In order for us to prioritize future work once these changes are merged, are there any specific features you'd be interested in (with regards to CIVis/TestOptimization)? |
I need to double check with my team on the requirements. For context it's worth noting that my team specifically builds a framework on top of weaver. For sure 3 things come to my mind:
To overcome the missing weaver support we implemented CI Visibility by following this guide https://docs.datadoghq.com/tests/setup/java/?tab=ciproviderwithautoinstrumentationsupport#using-manual-testing-api. if (!testName.tags.contains(TestName.Tags.ignore))
error match {
case ignored: weaver.IgnoredException => ignored.reason.foreach(test.setSkipReason(_))
case other => test.setErrorInfo(other)
}
When using test visibility api directly we were spawning objects like final Span span = GlobalTracer.get().activeSpan();
if (span != null) {
span.setTag("test_owner", "my_team");
} For context, weaver uses Cats Effect so the tests are executed in parallel on something like green threads. Can you confirm this approach is thread safe?
One of the limitations of my current approach is that I cannot link the test visibility Tracing tab to the http requests done during the test. What I'd like to be able to do is to somehow obtain the trace id of the test being executed and pass it in http headers to see them rendered in tracing tab of test execution on the web panel. |
Thanks for letting us know! Point 1 should already be handled by the changes in this PR, so both ignored and canceled tests should be correctly marked as skipped in DataDog. Points 2 and 3 are a bit more tricky, and won't work for now with the current changes. But we will focus on them next in order to support the functionality. |
Great, I'm looking forward for all those changes! If there's a snapshot version available I'm happy to give it a try and share my feedback |
Of course! You can access a snapshot version here. Let me know if you have any issues. |
I was trying hard to make to try it out, but I must be doing something wrong because I see no test runs with Here's what I did:
I made sure that
Am I misconfiguring the env? Here are the logs printed by the agent:
|
No problem! Try with |
Thanks for the tip, you were right. It worked locally! To test this on CI, do you think there's a way to tell the agent script that we install via https://install.datadoghq.com/scripts/install_script_agent7.sh to use this specific build? |
On a related note, when weaver is officially supported it will probably get listed on https://docs.datadoghq.com/tests/setup/java. Do you the https://docs.datadoghq.com/tests/setup/java/?tab=gradle#running-your-tests section can be extended with |
That's great news! Unfortunately, the single-step instrumentation script doesn't allow to install the tracer from an arbitrary URL. To test the changes in CI right now you would have to update your pipeline to download the tracer and configure the env vars as indicated in the docs. With that said, the changes should be available with the next release of the tracer, scheduled for the first week of February (or even sooner than that if there is a minor release). The documentation will be updated too to reflect the changes. I still have to discuss with the team how we want to approach adding |
Thanks Daniel! I managed to work around the script setting things up manually and confirmed the instrumentation works on CI as well. Now that I know it works in both envs, I'm happy to wait for the release. Great job! As for documentation that's totally understandable. I'm happy to share feedback and examples of what was working for us for sbt & Scala setup. |
Glad to hear that! And thanks for the feedback. |
Hi @majk-p ! Last week you mentioned that you use https://github.com/sbt/sbt-javaagent to add our agent to |
Happy to help with that! I put together a small repo that has the agent set up with It has a short readme that tells you how to add the agent into an existing repository as well. Let me know if you need more clarification! |
Thanks a lot! Just out of curiosity, is it possible to provide a path to the jar when it is available locally (instead of downloading it from the repository)? |
Sure! You could modify my example with following diff to make it work diff --git a/build.sbt b/build.sbt
index 6851777..36a43eb 100644
--- a/build.sbt
+++ b/build.sbt
@@ -6,7 +6,8 @@ val root =
.enablePlugins(JavaAgent) // Enable adding java agents
.settings(
// Add DataDog java agent
- javaAgents += "com.datadoghq" % "dd-java-agent" % "1.45.0" % "test",
+ useCoursier := false,
+ javaAgents += "com.datadoghq" % "dd-java-agent" % "1.45.0" % "test" from "file:///tmp/dd-java-agent-1.46.0-SNAPSHOT.jar",
// Add weaver testing framework
libraryDependencies += "com.disneystreaming" %% "weaver-cats" % "0.8.4" % Test
) Using urls like https://output.circle-artifacts.com/output/job/e6a221ef-d47a-4427-acdb-8b689a451481/artifacts/0/libs/dd-java-agent-1.46.0-SNAPSHOT.jar will also work. Please note the |
Great, thanks again! |
return CLASS_LOADER.loadClass(className); | ||
} catch (Exception e) { | ||
log.debug("Could not load class {}", className, e); | ||
log.warn("Could not load a Weaver class"); |
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.
Let's remove this warning and leave only the debug log.
These duplicate log lines are leftovers from when only warnings and error were reported to telemetry (and the warning messages were made more generic on purpose because whatever was written to telemetry had to have low cardinality).
Currently even debug messages are written to telemetry if they include a stacktrace, so duplicating this error with the warn
log level makes no sense.
Damned. I was reviewing when it get merged. |
Apologies! I will take care of it. |
No problem, I was just lagging off my reviews 😓 |
| 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
Adds support for Scala Weaver testing framework test reporting (using sbt) in Test Optimization.
Motivation
There is a feature request.
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: SDTEST-1439