Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add basic Scala Weaver sbt support #8189

Merged
merged 13 commits into from
Jan 20, 2025

Conversation

daniel-mohedano
Copy link
Contributor

@daniel-mohedano daniel-mohedano commented Jan 13, 2025

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

Jira ticket: SDTEST-1439

Comment on lines 15 to 19
public TaskDefAwareQueueProxy(TaskDef taskDef, ConcurrentLinkedQueue<T> delegate) {
this.taskDef = taskDef;
this.delegate = delegate;
DatadogWeaverReporter.start();
}
Copy link
Contributor

Choose a reason for hiding this comment

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

Code Quality Violation

Consider adding super() or this() to your constructor (...read more)

In Java, it is suggested to call super() in an extended class. This rule will report a violation if both a call to super() and an overloaded constructor are absent.

View in Datadog  Leave us feedback  Documentation

@daniel-mohedano daniel-mohedano added type: enhancement comp: ci visibility Continuous Integration Visibility labels Jan 13, 2025
@pr-commenter
Copy link

pr-commenter bot commented Jan 13, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master daniel.mohedano/weaver-support
git_commit_date 1737380880 1737380816
git_commit_sha a37d082 25de5c4
release_version 1.46.0-SNAPSHOT~a37d082bd0 1.46.0-SNAPSHOT~25de5c4a81
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1737383295 1737383295
ci_job_id 772748187 772748187
ci_pipeline_id 53478062 53478062
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
module Agent Agent
parent None None
variant iast iast

Summary

Found 0 performance improvements and 1 performance regressions! Performance is the same for 57 metrics, 5 unstable metrics.

scenario Δ mean execution_time candidate mean execution_time baseline mean execution_time
scenario:startup:petclinic:profiling:GlobalTracer worse
[+19.263ms; +27.777ms] or [+5.523%; +7.964%]
372.285ms 348.765ms
Startup time reports for insecure-bank
gantt
    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
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.055 s -
Agent iast 1.181 s 125.534 ms (11.9%)
Agent iast_HARDCODED_SECRET_DISABLED 1.182 s 126.717 ms (12.0%)
Agent iast_TELEMETRY_OFF 1.187 s 131.676 ms (12.5%)
Total tracing 8.642 s -
Total iast 9.204 s 562.322 ms (6.5%)
Total iast_HARDCODED_SECRET_DISABLED 9.186 s 543.98 ms (6.3%)
Total iast_TELEMETRY_OFF 9.241 s 599.053 ms (6.9%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.057 s -
Agent iast 1.183 s 126.132 ms (11.9%)
Agent iast_HARDCODED_SECRET_DISABLED 1.195 s 137.895 ms (13.0%)
Agent iast_TELEMETRY_OFF 1.189 s 132.054 ms (12.5%)
Total tracing 8.637 s -
Total iast 9.26 s 623.265 ms (7.2%)
Total iast_HARDCODED_SECRET_DISABLED 9.239 s 601.349 ms (7.0%)
Total iast_TELEMETRY_OFF 9.236 s 598.888 ms (6.9%)
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
Loading
Startup time reports for petclinic
gantt
    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
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.053 s -
Agent appsec 1.192 s 139.273 ms (13.2%)
Agent iast 1.195 s 142.257 ms (13.5%)
Agent profiling 1.255 s 201.67 ms (19.1%)
Total tracing 10.487 s -
Total appsec 10.756 s 268.13 ms (2.6%)
Total iast 11.011 s 523.534 ms (5.0%)
Total profiling 10.805 s 318.029 ms (3.0%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.056 s -
Agent appsec 1.189 s 132.685 ms (12.6%)
Agent iast 1.182 s 125.415 ms (11.9%)
Agent profiling 1.28 s 223.115 ms (21.1%)
Total tracing 10.555 s -
Total appsec 10.762 s 206.57 ms (2.0%)
Total iast 11.018 s 463.18 ms (4.4%)
Total profiling 10.93 s 375.338 ms (3.6%)
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
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-01-20T13:58:18 2025-01-20T14:05:21
git_branch master daniel.mohedano/weaver-support
git_commit_date 1737380880 1737380816
git_commit_sha a37d082 25de5c4
release_version 1.46.0-SNAPSHOT~a37d082bd0 1.46.0-SNAPSHOT~25de5c4a81
start_time 2025-01-20T13:58:05 2025-01-20T14:05:07
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1737382273 1737382273
ci_job_id 772748188 772748188
ci_pipeline_id 53478062 53478062
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
variant iast iast

Summary

Found 1 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 16 unstable metrics.

scenario Δ mean http_req_duration Δ mean throughput candidate mean http_req_duration candidate mean throughput baseline mean http_req_duration baseline mean throughput
scenario:load:insecure-bank:iast_FULL better
[-105.919µs; -59.123µs] or [-14.311%; -7.988%]
unstable
[-842.346op/s; +2045.354op/s] or [-14.741%; +35.794%]
657.605µs 6315.789op/s 740.126µs 5714.286op/s
Request duration reports for insecure-bank
gantt
    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,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 376.053 µs [355.607 µs, 396.5 µs] -
iast 504.486 µs [482.471 µs, 526.501 µs] 128.433 µs (34.2%)
iast_FULL 740.126 µs [718.342 µs, 761.909 µs] 364.072 µs (96.8%)
iast_GLOBAL 546.696 µs [525.185 µs, 568.207 µs] 170.643 µs (45.4%)
iast_HARDCODED_SECRET_DISABLED 503.574 µs [482.041 µs, 525.108 µs] 127.521 µs (33.9%)
iast_INACTIVE 453.521 µs [432.271 µs, 474.771 µs] 77.468 µs (20.6%)
iast_TELEMETRY_OFF 495.375 µs [473.897 µs, 516.854 µs] 119.322 µs (31.7%)
tracing 459.186 µs [437.306 µs, 481.065 µs] 83.132 µs (22.1%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 375.914 µs [355.35 µs, 396.478 µs] -
iast 498.123 µs [476.274 µs, 519.972 µs] 122.209 µs (32.5%)
iast_FULL 657.605 µs [635.901 µs, 679.308 µs] 281.691 µs (74.9%)
iast_GLOBAL 513.762 µs [492.509 µs, 535.015 µs] 137.848 µs (36.7%)
iast_HARDCODED_SECRET_DISABLED 495.933 µs [474.579 µs, 517.287 µs] 120.019 µs (31.9%)
iast_INACTIVE 456.345 µs [434.618 µs, 478.072 µs] 80.431 µs (21.4%)
iast_TELEMETRY_OFF 480.316 µs [458.658 µs, 501.974 µs] 104.402 µs (27.8%)
tracing 444.988 µs [424.33 µs, 465.645 µs] 69.074 µs (18.4%)
Request duration reports for petclinic
gantt
    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,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.365 ms [1.346 ms, 1.385 ms] -
appsec 1.745 ms [1.722 ms, 1.769 ms] 380.137 µs (27.8%)
appsec_no_iast 1.77 ms [1.748 ms, 1.793 ms] 404.695 µs (29.6%)
iast 1.503 ms [1.479 ms, 1.527 ms] 137.948 µs (10.1%)
profiling 1.521 ms [1.496 ms, 1.546 ms] 155.631 µs (11.4%)
tracing 1.492 ms [1.469 ms, 1.516 ms] 127.099 µs (9.3%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.359 ms [1.339 ms, 1.379 ms] -
appsec 1.75 ms [1.727 ms, 1.773 ms] 391.011 µs (28.8%)
appsec_no_iast 1.75 ms [1.726 ms, 1.774 ms] 391.214 µs (28.8%)
iast 1.492 ms [1.469 ms, 1.514 ms] 132.696 µs (9.8%)
profiling 1.505 ms [1.482 ms, 1.529 ms] 146.118 µs (10.8%)
tracing 1.498 ms [1.473 ms, 1.522 ms] 138.491 µs (10.2%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master daniel.mohedano/weaver-support
git_commit_date 1737380880 1737380816
git_commit_sha a37d082 25de5c4
release_version 1.46.0-SNAPSHOT~a37d082bd0 1.46.0-SNAPSHOT~25de5c4a81
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1737382880 1737382880
ci_job_id 772748189 772748189
ci_pipeline_id 53478062 53478062
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
variant appsec appsec

Summary

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

Execution time for tomcat
gantt
    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,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.462 ms [1.451 ms, 1.474 ms] -
appsec 2.357 ms [2.314 ms, 2.4 ms] 895.212 µs (61.2%)
iast 2.102 ms [2.047 ms, 2.156 ms] 639.412 µs (43.7%)
iast_GLOBAL 2.153 ms [2.098 ms, 2.208 ms] 690.799 µs (47.2%)
profiling 2.457 ms [2.269 ms, 2.644 ms] 994.421 µs (68.0%)
tracing 1.937 ms [1.896 ms, 1.979 ms] 475.039 µs (32.5%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.469 ms [1.457 ms, 1.48 ms] -
appsec 2.357 ms [2.314 ms, 2.4 ms] 888.058 µs (60.5%)
iast 2.098 ms [2.044 ms, 2.153 ms] 629.605 µs (42.9%)
iast_GLOBAL 2.147 ms [2.093 ms, 2.202 ms] 678.483 µs (46.2%)
profiling 1.96 ms [1.916 ms, 2.004 ms] 490.903 µs (33.4%)
tracing 1.93 ms [1.889 ms, 1.971 ms] 460.95 µs (31.4%)
Execution time for biojava
gantt
    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,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.161 s [15.161 s, 15.161 s] -
appsec 14.928 s [14.928 s, 14.928 s] -233.0 ms (-1.5%)
iast 18.867 s [18.867 s, 18.867 s] 3.706 s (24.4%)
iast_GLOBAL 17.902 s [17.902 s, 17.902 s] 2.741 s (18.1%)
profiling 15.769 s [15.769 s, 15.769 s] 608.0 ms (4.0%)
tracing 14.864 s [14.864 s, 14.864 s] -297.0 ms (-2.0%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.274 s [15.274 s, 15.274 s] -
appsec 15.255 s [15.255 s, 15.255 s] -19.0 ms (-0.1%)
iast 18.742 s [18.742 s, 18.742 s] 3.468 s (22.7%)
iast_GLOBAL 17.356 s [17.356 s, 17.356 s] 2.082 s (13.6%)
profiling 14.947 s [14.947 s, 14.947 s] -327.0 ms (-2.1%)
tracing 15.212 s [15.212 s, 15.212 s] -62.0 ms (-0.4%)

Copy link
Contributor

@nikita-tkachenko-datadog nikita-tkachenko-datadog left a 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);
Copy link
Contributor

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).

Copy link
Contributor Author

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) {
Copy link
Contributor

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'
Copy link
Contributor

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

@majk-p
Copy link

majk-p commented Jan 16, 2025

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!

@daniel-mohedano
Copy link
Contributor Author

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)?

@majk-p
Copy link

majk-p commented Jan 16, 2025

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:

  1. Ensuring that ignored tests are marked properly in DataDog

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.
One of the things we had to do to make sure the ignored tests are marked properly was to check failed test threw weaver.IgnoredException. Here's Scala snippet that we used:

        if (!testName.tags.contains(TestName.Tags.ignore))
          error match {
            case ignored: weaver.IgnoredException => ignored.reason.foreach(test.setSkipReason(_))
            case other                            => test.setErrorInfo(other)
          }
  1. Ensure we can set tags on test/suite/module level

When using test visibility api directly we were spawning objects like DDTestSuite on which we would be setting custom tags like test.setTag("my_testing_framework.version", frameworkVersion).
Judging by the documentation I guess I should be able to do something 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?

  1. Have access to traceId

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.

@daniel-mohedano
Copy link
Contributor Author

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.

@majk-p
Copy link

majk-p commented Jan 16, 2025

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

@daniel-mohedano
Copy link
Contributor Author

Of course! You can access a snapshot version here. Let me know if you have any issues.

@majk-p
Copy link

majk-p commented Jan 17, 2025

I was trying hard to make to try it out, but I must be doing something wrong because I see no test runs with @test.framework:weaver

Here's what I did:

  1. I used https://github.com/sbt/sbt-javaagent as I do to add DataDog agent
  2. Changed my regular dependency to the one from your link via from "https://output.circle-artifacts.com/output/job/e6a221ef-d47a-4427-acdb-8b689a451481/artifacts/0/libs/dd-java-agent-1.46.0-SNAPSHOT.jar"
  3. Started sbt with:
DD_SERVICE=myservcice DD_ENV=local DD_SITE=datadoghq.com DD_CI_VISIBILITY_AGENTLESS_ENABLED=true DD_CIVISIBILITY_ENABLED=true sbt

I made sure that DD_API_KEY is also correctly set in my env

  1. Launched the tests with myModule/test
  2. Went to https://app.datadoghq.com/ci/test/runs?query=test_level%3Atest%20test.framework%3Aweaver and saw no results

Am I misconfiguring the env?


Here are the logs printed by the agent:

[dd.trace 2025-01-17 11:02:36:568 +0100] [main] INFO datadog.trace.agent.common.writer.WriterFactory - Using 'EnsureTrace' prioritization type. (Do not use this type if your application is running in production mode)
[dd.trace 2025-01-17 11:02:36:579 +0100] [main] INFO datadog.trace.agent.common.writer.WriterFactory - CI Visibility functionality is limited. Please upgrade to Agent v6.40+ or v7.40+ or enable Agentless mode.
[dd.trace 2025-01-17 11:02:36:710 +0100] [main] WARN datadog.communication.BackendApiFactory - Cannot create backend API client since agentless mode is disabled, and agent does not support EVP proxy 
[dd.trace 2025-01-17 11:02:36:930 +0100] [main] WARN datadog.trace.civisibility.CiVisibilityRepoServices - Git tree data upload will be skipped since backend API client could not be created         
[dd.trace 2025-01-17 11:02:36:937 +0100] [main] WARN datadog.trace.civisibility.CiVisibilityRepoServices - Remote config and skippable tests requests will be skipped since backend API client could not be created
[dd.trace 2025-01-17 11:02:36:943 +0100] [main] INFO datadog.trace.civisibility.config.ExecutionSettingsFactoryImpl - CI Visibility settings (/path/to/project/, OpenJDK Runtime Environment/21.0.4/Amazon.com Inc.):                                     
Intelligent Test Runner - false,                                                                                                    
Per-test code coverage - false,                                                                                                     
Tests skipping - false,                                                                                                             
Early flakiness detection - false,                                                                                                  
Auto test retries - false                                         
[dd.trace 2025-01-17 11:02:37:141 +0100] [dd-task-scheduler] INFO datadog.trace.agent.core.StatusLogger - DATADOG TRACER CONFIGURATION {
    "version": "1.46.0-SNAPSHOT~ad3623edd6",
    "os_name": "Linux",
    "os_version": "REDACTED",
    "architecture": "amd64",
    "lang": "jvm",
    "lang_version": "21.0.4",
    "jvm_vendor": "Amazon.com Inc.",
    "jvm_version": "21.0.4+7-LTS",
    "java_class_version": "65.0",
    "http_nonProxyHosts": "null",
    "http_proxyHost": "null",
    "enabled": true,
    "service": "REDACTED",
    "agent_url": "http://localhost:8126",
    "agent_error": true,
    "debug": false,
    "trace_propagation_style_extract": [
        "datadog",
        "tracecontext"
    ],
    "trace_propagation_style_inject": [
        "datadog",
        "tracecontext"
    ],
    "analytics_enabled": false,
    "priority_sampling_enabled": true,
    "logs_correlation_enabled": true,
    "profiling_enabled": false,
    "remote_config_enabled": false,
    "debugger_enabled": false,
    "debugger_exception_enabled": false,
    "debugger_span_origin_enabled": false,
    "appsec_enabled": "FULLY_DISABLED",
    "rasp_enabled": true,
    "telemetry_enabled": true,
    "telemetry_dependency_collection_enabled": true,
    "telemetry_log_collection_enabled": true,
    "dd_version": "",
    "health_checks_enabled": true,
    "configuration_file": "no config file present",
    "runtime_id": "3b8d9377-9fe1-4a2f-b10a-9d62a0b0b444",
    "logging_settings": {
        "levelInBrackets": false,
        "dateTimeFormat": "'[dd.trace 'yyyy-MM-dd HH:mm:ss:SSS Z']'",
        "logFile": "System.err",
        "configurationFile": "simplelogger.properties",
        "showShortLogName": false,
        "showDateTime": true,
        "showLogName": true,
        "showThreadName": true,
        "defaultLogLevel": "INFO",
        "warnLevelString": "WARN",
        "embedException": false
    },
    "cws_enabled": false,
    "cws_tls_refresh": 5000,
    "datadog_profiler_enabled": false,
    "datadog_profiler_safe": true,
    "datadog_profiler_enabled_overridden": false,
    "data_streams_enabled": false
}
[dd.trace 2025-01-17 11:02:37:479 +0100] [dd-telemetry] WARN datadog.telemetry.TelemetryRouter - Got FAILURE sending telemetry request to http://localhost:8126/telemetry/proxy/api/v2/apmtelemetry.
[dd.trace 2025-01-17 11:02:37:479 +0100] [dd-telemetry] INFO datadog.telemetry.TelemetryRouter - Agent Telemetry endpoint failed. Telemetry will be sent to Intake.

@daniel-mohedano
Copy link
Contributor Author

No problem! Try with DD_CIVISIBILITY_AGENTLESS_ENABLED=true instead of DD_CI_VISIBILITY_AGENTLESS_ENABLED=true. That should enable the agentless mode correctly so the data can be reported to DataDog. Let me know if you encounter any more issues!

@majk-p
Copy link

majk-p commented Jan 17, 2025

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?

@majk-p
Copy link

majk-p commented Jan 17, 2025

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 sbt? The steps from the comment above #8189 (comment) should be enough, but I can also share a more detailed description

@daniel-mohedano
Copy link
Contributor Author

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 sbt as a build tool but I'll let you know if we need any more information, thanks!

@majk-p
Copy link

majk-p commented Jan 17, 2025

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.

@daniel-mohedano
Copy link
Contributor Author

Glad to hear that! And thanks for the feedback.

@daniel-mohedano
Copy link
Contributor Author

Hi @majk-p ! Last week you mentioned that you use https://github.com/sbt/sbt-javaagent to add our agent to sbt instead of through SBT_OPTS. Could you give me a bit more of information on how you achieve that? An example javaAgents += ... line from the build.sbt file should suffice, as we might want to consider referencing it in the documentation as well. Thanks!

@majk-p
Copy link

majk-p commented Jan 20, 2025

Happy to help with that! I put together a small repo that has the agent set up with javaAgents. Feel free to use the code from it in your docs examples if you find them useful. Here's the link: https://github.com/majk-p/sbt-datadog-javaagent

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!

@daniel-mohedano
Copy link
Contributor Author

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)?

@majk-p
Copy link

majk-p commented Jan 20, 2025

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 useCoursier := false - this changes the dependency fetching mechanism, as coursier (which is the default) might have some issues with dependency source overrides. Nevertheless for local testing that should be enough.

@daniel-mohedano
Copy link
Contributor Author

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");
Copy link
Contributor

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.

@daniel-mohedano daniel-mohedano marked this pull request as ready for review January 20, 2025 15:24
@daniel-mohedano daniel-mohedano requested review from a team as code owners January 20, 2025 15:24
@daniel-mohedano daniel-mohedano merged commit 441582a into master Jan 20, 2025
175 checks passed
@daniel-mohedano daniel-mohedano deleted the daniel.mohedano/weaver-support branch January 20, 2025 15:30
@github-actions github-actions bot added this to the 1.46.0 milestone Jan 20, 2025
@PerfectSlayer
Copy link
Contributor

Damned. I was reviewing when it get merged.
I was suggesting about adding the weaver instrumentation to the @DataDog/ci-app-libraries-java from the CODEOWNERS file.
Can someone from CI app add it later ?(that's file in another irrelevant PR)

@daniel-mohedano
Copy link
Contributor Author

Apologies! I will take care of it.

@PerfectSlayer
Copy link
Contributor

No problem, I was just lagging off my reviews 😓

svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Jan 31, 2025
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
|
[com.google.cloud:google-cloud-datastore](https://github.com/googleapis/java-datastore)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.25.4` -> `2.26.0` |
| [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.45.2` -> `1.46.0` |
| [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.45.2` -> `1.46.0` |
| [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
|
[software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
| [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
| [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
| [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
| [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |

---

### Release Notes

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

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

##### Features

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

##### Dependencies

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

</details>

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

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

##### Breaking Changes

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

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

##### Components

##### Application Security Management (IAST)

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

##### Application Security Management (WAF)

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

##### Build & Tooling

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

##### Configuration at Runtime

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

##### Continuous Integration Visibility

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

##### Data Streams Monitoring

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

##### Database Monitoring

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

##### Dynamic Instrumentation

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

##### JMX fetch

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

##### OpenTracing

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

##### Profiling

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

##### Telemetry

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

##### Testing

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

##### Trace context propagation

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

##### Tracer core

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

##### Instrumentations

##### Apache HttpComponents

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

##### AWS Lambda instrumentation

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

##### AWS S3 instrumentation

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

##### AWS SDK instrumentation

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

##### Cassandra

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

##### Core Java language instrumentation

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

##### Eclipse Vert.x instrumentation

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

##### Kafka instrumentation

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

##### Mule instrumentation

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

##### Protocol Buffer instrumentation

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

##### Spring instrumentation

- 🐛 Preserve getQualifier from spring scheduling runnables
([#&#8203;8293](DataDog/dd-trace-java#8293) -
[@&#8203;amarziali](https://github.com/amarziali))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am
every weekday" in timezone Australia/Melbourne, Automerge - At any time
(no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

GitOrigin-RevId: bb09d47e4eed77a003f630273b4d0a84003eb899
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp: ci visibility Continuous Integration Visibility type: enhancement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants