Skip to content

Convert muzzle plugin to kotlin - #9439

Merged
bric3 merged 25 commits into
masterfrom
bdu/convert-muzzle-to-kotlin
Sep 12, 2025
Merged

Convert muzzle plugin to kotlin#9439
bric3 merged 25 commits into
masterfrom
bdu/convert-muzzle-to-kotlin

Conversation

@bric3

@bric3bric3 commented Aug 29, 2025

Copy link
Copy Markdown
Contributor

What Does This Do

Port the MuzzlePlugin written in groovy to Kotlin. Also spread the single source file to its constituents.

Motivation

Significantly better IDE support, this will improve maintainability.
In a previous PR this plugin was refactored to use lazy configuration API, this PR don't change that. However, it improves in a few places.

Additional Notes

Review strategy suggestion: go commit by commit, as I migrated piece of code one by one.

Related to

Conversion method:

  1. Spread classes that were in the same groovy file
  2. Method by method conversion.

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@bric3
bric3force-pushed the bdu/convert-muzzle-to-kotlin branch from d61742d to 830d487CompareAugust 29, 2025 14:41
@datadog-official

datadog-officialBot commented Aug 29, 2025

Copy link
Copy Markdown
Contributor

🎯 Code Coverage
Patch Coverage: 100.00%
Total Coverage: 60.14% (-0.01%)

View detailed report

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 435d92c | Docs | Was this helpful? Give us feedback!

@pr-commenter

pr-commenterBot commented Aug 29, 2025

Copy link
Copy Markdown

Benchmarks

Startup

Parameters

BaselineCandidate
baseline_or_candidatebaselinecandidate
git_branchmasterbdu/convert-muzzle-to-kotlin
git_commit_date17576670301757676996
git_commit_shaf7aa6d2435d92c
release_version1.54.0-SNAPSHOT~f7aa6d2c5e1.53.0-SNAPSHOT~435d92cfcd
See matching parameters
BaselineCandidate
applicationinsecure-bankinsecure-bank
ci_job_date17576789441757678944
ci_job_id11263510801126351080
ci_pipeline_id7629223976292239
cpu_modelIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_versionLinux runner-zfyrx7zua-project-304-concurrent-0-gkx2iqcy 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/LinuxLinux runner-zfyrx7zua-project-304-concurrent-0-gkx2iqcy 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
moduleAgentAgent
parentNoneNone

Summary

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

Startup time reports for insecure-bank
gantt
title insecure-bank - global startup overhead: candidate=1.53.0-SNAPSHOT~435d92cfcd, baseline=1.54.0-SNAPSHOT~f7aa6d2c5e
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.064 s) : 0, 1063770
Total [baseline] (8.698 s) : 0, 8697935
Agent [candidate] (1.06 s) : 0, 1059759
Total [candidate] (8.617 s) : 0, 8616657
section iast
Agent [baseline] (1.189 s) : 0, 1189296
Total [baseline] (9.308 s) : 0, 9307663
Agent [candidate] (1.196 s) : 0, 1195729
Total [candidate] (9.32 s) : 0, 9320113
Loading
  • baseline results
ModuleVariantDurationΔ tracing
Agenttracing1.064 s-
Agentiast1.189 s125.526 ms (11.8%)
Totaltracing8.698 s-
Totaliast9.308 s609.728 ms (7.0%)
  • candidate results
ModuleVariantDurationΔ tracing
Agenttracing1.06 s-
Agentiast1.196 s135.97 ms (12.8%)
Totaltracing8.617 s-
Totaliast9.32 s703.456 ms (8.2%)
gantt
title insecure-bank - break down per module: candidate=1.53.0-SNAPSHOT~435d92cfcd, baseline=1.54.0-SNAPSHOT~f7aa6d2c5e
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.457 ms) : 0, 1457
crashtracking [candidate] (1.454 ms) : 0, 1454
BytebuddyAgent [baseline] (734.439 ms) : 0, 734439
BytebuddyAgent [candidate] (731.913 ms) : 0, 731913
GlobalTracer [baseline] (252.733 ms) : 0, 252733
GlobalTracer [candidate] (251.818 ms) : 0, 251818
AppSec [baseline] (30.682 ms) : 0, 30682
AppSec [candidate] (30.472 ms) : 0, 30472
Debugger [baseline] (6.42 ms) : 0, 6420
Debugger [candidate] (6.384 ms) : 0, 6384
Remote Config [baseline] (694.621 µs) : 0, 695
Remote Config [candidate] (691.475 µs) : 0, 691
Telemetry [baseline] (16.294 ms) : 0, 16294
Telemetry [candidate] (15.969 ms) : 0, 15969
section iast
crashtracking [baseline] (1.459 ms) : 0, 1459
crashtracking [candidate] (1.457 ms) : 0, 1457
BytebuddyAgent [baseline] (852.019 ms) : 0, 852019
BytebuddyAgent [candidate] (857.77 ms) : 0, 857770
GlobalTracer [baseline] (245.927 ms) : 0, 245927
GlobalTracer [candidate] (247.36 ms) : 0, 247360
IAST [baseline] (29.632 ms) : 0, 29632
IAST [candidate] (28.802 ms) : 0, 28802
AppSec [baseline] (24.591 ms) : 0, 24591
AppSec [candidate] (24.586 ms) : 0, 24586
Debugger [baseline] (6.048 ms) : 0, 6048
Debugger [candidate] (6.013 ms) : 0, 6013
Remote Config [baseline] (591.793 µs) : 0, 592
Remote Config [candidate] (584.131 µs) : 0, 584
Telemetry [baseline] (8.076 ms) : 0, 8076
Telemetry [candidate] (8.189 ms) : 0, 8189
Loading
Startup time reports for petclinic
gantt
title petclinic - global startup overhead: candidate=1.53.0-SNAPSHOT~435d92cfcd, baseline=1.54.0-SNAPSHOT~f7aa6d2c5e
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.059 s) : 0, 1059450
Total [baseline] (10.714 s) : 0, 10713696
Agent [candidate] (1.075 s) : 0, 1075134
Total [candidate] (10.72 s) : 0, 10720186
section appsec
Agent [baseline] (1.232 s) : 0, 1231711
Total [baseline] (10.896 s) : 0, 10895530
Agent [candidate] (1.235 s) : 0, 1234946
Total [candidate] (11.026 s) : 0, 11025734
section iast
Agent [baseline] (1.188 s) : 0, 1188416
Total [baseline] (11.007 s) : 0, 11007416
Agent [candidate] (1.195 s) : 0, 1194609
Total [candidate] (11.092 s) : 0, 11091934
section profiling
Agent [baseline] (1.215 s) : 0, 1215176
Total [baseline] (10.955 s) : 0, 10954980
Agent [candidate] (1.206 s) : 0, 1206280
Total [candidate] (10.859 s) : 0, 10859230
Loading
  • baseline results
ModuleVariantDurationΔ tracing
Agenttracing1.059 s-
Agentappsec1.232 s172.261 ms (16.3%)
Agentiast1.188 s128.966 ms (12.2%)
Agentprofiling1.215 s155.726 ms (14.7%)
Totaltracing10.714 s-
Totalappsec10.896 s181.834 ms (1.7%)
Totaliast11.007 s293.72 ms (2.7%)
Totalprofiling10.955 s241.284 ms (2.3%)
  • candidate results
ModuleVariantDurationΔ tracing
Agenttracing1.075 s-
Agentappsec1.235 s159.812 ms (14.9%)
Agentiast1.195 s119.475 ms (11.1%)
Agentprofiling1.206 s131.146 ms (12.2%)
Totaltracing10.72 s-
Totalappsec11.026 s305.548 ms (2.9%)
Totaliast11.092 s371.748 ms (3.5%)
Totalprofiling10.859 s139.045 ms (1.3%)
gantt
title petclinic - break down per module: candidate=1.53.0-SNAPSHOT~435d92cfcd, baseline=1.54.0-SNAPSHOT~f7aa6d2c5e
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.451 ms) : 0, 1451
crashtracking [candidate] (1.488 ms) : 0, 1488
BytebuddyAgent [baseline] (731.16 ms) : 0, 731160
BytebuddyAgent [candidate] (742.389 ms) : 0, 742389
GlobalTracer [baseline] (251.722 ms) : 0, 251722
GlobalTracer [candidate] (255.313 ms) : 0, 255313
AppSec [baseline] (30.379 ms) : 0, 30379
AppSec [candidate] (31.07 ms) : 0, 31070
Debugger [baseline] (6.373 ms) : 0, 6373
Debugger [candidate] (6.468 ms) : 0, 6468
Remote Config [baseline] (692.989 µs) : 0, 693
Remote Config [candidate] (704.778 µs) : 0, 705
Telemetry [baseline] (16.507 ms) : 0, 16507
Telemetry [candidate] (16.41 ms) : 0, 16410
section appsec
crashtracking [baseline] (1.463 ms) : 0, 1463
crashtracking [candidate] (1.443 ms) : 0, 1443
BytebuddyAgent [baseline] (753.622 ms) : 0, 753622
BytebuddyAgent [candidate] (756.037 ms) : 0, 756037
GlobalTracer [baseline] (245.152 ms) : 0, 245152
GlobalTracer [candidate] (245.491 ms) : 0, 245491
IAST [baseline] (23.716 ms) : 0, 23716
IAST [candidate] (23.622 ms) : 0, 23622
AppSec [baseline] (171.454 ms) : 0, 171454
AppSec [candidate] (171.241 ms) : 0, 171241
Debugger [baseline] (6.03 ms) : 0, 6030
Debugger [candidate] (6.793 ms) : 0, 6793
Remote Config [baseline] (653.918 µs) : 0, 654
Remote Config [candidate] (623.673 µs) : 0, 624
Telemetry [baseline] (8.369 ms) : 0, 8369
Telemetry [candidate] (8.522 ms) : 0, 8522
section iast
crashtracking [baseline] (1.451 ms) : 0, 1451
crashtracking [candidate] (1.457 ms) : 0, 1457
BytebuddyAgent [baseline] (850.848 ms) : 0, 850848
BytebuddyAgent [candidate] (856.994 ms) : 0, 856994
GlobalTracer [baseline] (245.307 ms) : 0, 245307
GlobalTracer [candidate] (245.763 ms) : 0, 245763
IAST [baseline] (30.399 ms) : 0, 30399
IAST [candidate] (30.203 ms) : 0, 30203
AppSec [baseline] (24.62 ms) : 0, 24620
AppSec [candidate] (24.426 ms) : 0, 24426
Debugger [baseline] (6.016 ms) : 0, 6016
Debugger [candidate] (6.044 ms) : 0, 6044
Remote Config [baseline] (612.669 µs) : 0, 613
Remote Config [candidate] (589.454 µs) : 0, 589
Telemetry [baseline] (8.123 ms) : 0, 8123
Telemetry [candidate] (8.107 ms) : 0, 8107
section profiling
crashtracking [baseline] (1.435 ms) : 0, 1435
crashtracking [candidate] (1.435 ms) : 0, 1435
BytebuddyAgent [baseline] (764.931 ms) : 0, 764931
BytebuddyAgent [candidate] (759.903 ms) : 0, 759903
GlobalTracer [baseline] (234.605 ms) : 0, 234605
GlobalTracer [candidate] (232.43 ms) : 0, 232430
AppSec [baseline] (31.364 ms) : 0, 31364
AppSec [candidate] (31.127 ms) : 0, 31127
Debugger [baseline] (8.985 ms) : 0, 8985
Debugger [candidate] (7.445 ms) : 0, 7445
Remote Config [baseline] (719.534 µs) : 0, 720
Remote Config [candidate] (702.55 µs) : 0, 703
Telemetry [baseline] (13.428 ms) : 0, 13428
Telemetry [candidate] (14.908 ms) : 0, 14908
ProfilingAgent [baseline] (108.453 ms) : 0, 108453
ProfilingAgent [candidate] (107.446 ms) : 0, 107446
Profiling [baseline] (109.115 ms) : 0, 109115
Profiling [candidate] (108.102 ms) : 0, 108102
Loading

Load

Parameters

BaselineCandidate
baseline_or_candidatebaselinecandidate
git_branchmasterbdu/convert-muzzle-to-kotlin
git_commit_date17576670301757676996
git_commit_shaf7aa6d2435d92c
release_version1.54.0-SNAPSHOT~f7aa6d2c5e1.53.0-SNAPSHOT~435d92cfcd
See matching parameters
BaselineCandidate
applicationinsecure-bankinsecure-bank
ci_job_date17576785941757678594
ci_job_id11263510821126351082
ci_pipeline_id7629223976292239
cpu_modelIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_versionLinux runner-zfyrx7zua-project-304-concurrent-0-jx6c5utj 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/LinuxLinux runner-zfyrx7zua-project-304-concurrent-0-jx6c5utj 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 4 performance improvements and 1 performance regressions! Performance is the same for 7 metrics, 12 unstable metrics.

scenarioΔ mean http_req_durationΔ mean throughputcandidate mean http_req_durationcandidate mean throughputbaseline mean http_req_durationbaseline mean throughput
scenario:load:insecure-bank:iast:high_loadbetter
[-608.860µs; -256.453µs] or [-6.267%; -2.640%]
unstable
[-35.132op/s; +79.382op/s] or [-7.349%; +16.606%]
9.282ms500.156op/s9.715ms478.031op/s
scenario:load:petclinic:profiling:high_loadbetter
[-2.924ms; -1.951ms] or [-5.881%; -3.924%]
unstable
[-2.052op/s; +11.902op/s] or [-2.180%; +12.643%]
47.281ms99.062op/s49.719ms94.138op/s
scenario:load:petclinic:appsec:high_loadworse
[+1.869ms; +2.784ms] or [+3.960%; +5.900%]
unstable
[-11.499op/s; +2.149op/s] or [-11.591%; +2.166%]
49.512ms94.525op/s47.186ms99.200op/s
scenario:load:petclinic:iast:high_loadbetter
[-1.748ms; -0.964ms] or [-3.946%; -2.176%]
unstable
[-4.191op/s; +10.866op/s] or [-3.968%; +10.287%]
42.953ms108.963op/s44.310ms105.625op/s
scenario:load:petclinic:tracing:high_loadbetter
[-2.425ms; -1.637ms] or [-5.440%; -3.672%]
unstable
[-2.799op/s; +12.699op/s] or [-2.666%; +12.096%]
42.548ms109.938op/s44.579ms104.987op/s
Request duration reports for petclinic
gantt
title petclinic - request duration [CI 0.99] : candidate=1.53.0-SNAPSHOT~435d92cfcd, baseline=1.54.0-SNAPSHOT~f7aa6d2c5e
dateFormat X
axisFormat %s
section baseline
no_agent (36.877 ms) : 36585, 37168
. : milestone, 36877,
appsec (47.186 ms) : 46772, 47599
. : milestone, 47186,
code_origins (46.3 ms) : 45909, 46691
. : milestone, 46300,
iast (44.31 ms) : 43944, 44675
. : milestone, 44310,
profiling (49.719 ms) : 49236, 50201
. : milestone, 49719,
tracing (44.579 ms) : 44208, 44949
. : milestone, 44579,
section candidate
no_agent (36.803 ms) : 36498, 37108
. : milestone, 36803,
appsec (49.512 ms) : 49075, 49949
. : milestone, 49512,
code_origins (46.523 ms) : 46108, 46937
. : milestone, 46523,
iast (42.953 ms) : 42590, 43317
. : milestone, 42953,
profiling (47.281 ms) : 46861, 47701
. : milestone, 47281,
tracing (42.548 ms) : 42186, 42910
. : milestone, 42548,
Loading
  • baseline results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent36.877 ms [36.585 ms, 37.168 ms]-
appsec47.186 ms [46.772 ms, 47.599 ms]10.309 ms (28.0%)
code_origins46.3 ms [45.909 ms, 46.691 ms]9.423 ms (25.6%)
iast44.31 ms [43.944 ms, 44.675 ms]7.433 ms (20.2%)
profiling49.719 ms [49.236 ms, 50.201 ms]12.842 ms (34.8%)
tracing44.579 ms [44.208 ms, 44.949 ms]7.702 ms (20.9%)
  • candidate results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent36.803 ms [36.498 ms, 37.108 ms]-
appsec49.512 ms [49.075 ms, 49.949 ms]12.709 ms (34.5%)
code_origins46.523 ms [46.108 ms, 46.937 ms]9.72 ms (26.4%)
iast42.953 ms [42.59 ms, 43.317 ms]6.15 ms (16.7%)
profiling47.281 ms [46.861 ms, 47.701 ms]10.478 ms (28.5%)
tracing42.548 ms [42.186 ms, 42.91 ms]5.745 ms (15.6%)
Request duration reports for insecure-bank
gantt
title insecure-bank - request duration [CI 0.99] : candidate=1.53.0-SNAPSHOT~435d92cfcd, baseline=1.54.0-SNAPSHOT~f7aa6d2c5e
dateFormat X
axisFormat %s
section baseline
no_agent (4.268 ms) : 4220, 4316
. : milestone, 4268,
iast (9.715 ms) : 9540, 9889
. : milestone, 9715,
iast_FULL (13.971 ms) : 13690, 14252
. : milestone, 13971,
iast_GLOBAL (10.349 ms) : 10149, 10550
. : milestone, 10349,
profiling (9.017 ms) : 8874, 9159
. : milestone, 9017,
tracing (7.997 ms) : 7872, 8121
. : milestone, 7997,
section candidate
no_agent (4.287 ms) : 4240, 4333
. : milestone, 4287,
iast (9.282 ms) : 9130, 9434
. : milestone, 9282,
iast_FULL (14.308 ms) : 14020, 14597
. : milestone, 14308,
iast_GLOBAL (10.381 ms) : 10180, 10583
. : milestone, 10381,
profiling (9.309 ms) : 9142, 9477
. : milestone, 9309,
tracing (7.714 ms) : 7605, 7822
. : milestone, 7714,
Loading
  • baseline results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent4.268 ms [4.22 ms, 4.316 ms]-
iast9.715 ms [9.54 ms, 9.889 ms]5.447 ms (127.6%)
iast_FULL13.971 ms [13.69 ms, 14.252 ms]9.703 ms (227.3%)
iast_GLOBAL10.349 ms [10.149 ms, 10.55 ms]6.081 ms (142.5%)
profiling9.017 ms [8.874 ms, 9.159 ms]4.749 ms (111.3%)
tracing7.997 ms [7.872 ms, 8.121 ms]3.729 ms (87.4%)
  • candidate results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent4.287 ms [4.24 ms, 4.333 ms]-
iast9.282 ms [9.13 ms, 9.434 ms]4.996 ms (116.5%)
iast_FULL14.308 ms [14.02 ms, 14.597 ms]10.022 ms (233.8%)
iast_GLOBAL10.381 ms [10.18 ms, 10.583 ms]6.095 ms (142.2%)
profiling9.309 ms [9.142 ms, 9.477 ms]5.023 ms (117.2%)
tracing7.714 ms [7.605 ms, 7.822 ms]3.427 ms (80.0%)

Dacapo

Parameters

BaselineCandidate
baseline_or_candidatebaselinecandidate
git_branchmasterbdu/convert-muzzle-to-kotlin
git_commit_date17576670301757676996
git_commit_shaf7aa6d2435d92c
release_version1.54.0-SNAPSHOT~f7aa6d2c5e1.53.0-SNAPSHOT~435d92cfcd
See matching parameters
BaselineCandidate
applicationbiojavabiojava
ci_job_date17576791041757679104
ci_job_id11263510841126351084
ci_pipeline_id7629223976292239
cpu_modelIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_versionLinux runner-zfyrx7zua-project-304-concurrent-1-xvki8rh3 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/LinuxLinux runner-zfyrx7zua-project-304-concurrent-1-xvki8rh3 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

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

Execution time for tomcat
gantt
title tomcat - execution time [CI 0.99] : candidate=1.53.0-SNAPSHOT~435d92cfcd, baseline=1.54.0-SNAPSHOT~f7aa6d2c5e
dateFormat X
axisFormat %s
section baseline
no_agent (1.469 ms) : 1458, 1480
. : milestone, 1469,
appsec (2.506 ms) : 2453, 2560
. : milestone, 2506,
iast (2.197 ms) : 2134, 2261
. : milestone, 2197,
iast_GLOBAL (2.242 ms) : 2178, 2306
. : milestone, 2242,
profiling (2.467 ms) : 2240, 2695
. : milestone, 2467,
tracing (2.011 ms) : 1961, 2060
. : milestone, 2011,
section candidate
no_agent (1.472 ms) : 1461, 1484
. : milestone, 1472,
appsec (3.724 ms) : 3506, 3942
. : milestone, 3724,
iast (2.205 ms) : 2141, 2269
. : milestone, 2205,
iast_GLOBAL (2.242 ms) : 2178, 2306
. : milestone, 2242,
profiling (2.04 ms) : 1989, 2092
. : milestone, 2040,
tracing (2.023 ms) : 1974, 2073
. : milestone, 2023,
Loading
  • baseline results
VariantExecution Time [CI 0.99]Δ no_agent
no_agent1.469 ms [1.458 ms, 1.48 ms]-
appsec2.506 ms [2.453 ms, 2.56 ms]1.037 ms (70.6%)
iast2.197 ms [2.134 ms, 2.261 ms]728.312 µs (49.6%)
iast_GLOBAL2.242 ms [2.178 ms, 2.306 ms]773.15 µs (52.6%)
profiling2.467 ms [2.24 ms, 2.695 ms]998.44 µs (68.0%)
tracing2.011 ms [1.961 ms, 2.06 ms]541.537 µs (36.9%)
  • candidate results
VariantExecution Time [CI 0.99]Δ no_agent
no_agent1.472 ms [1.461 ms, 1.484 ms]-
appsec3.724 ms [3.506 ms, 3.942 ms]2.252 ms (152.9%)
iast2.205 ms [2.141 ms, 2.269 ms]732.469 µs (49.7%)
iast_GLOBAL2.242 ms [2.178 ms, 2.306 ms]769.178 µs (52.2%)
profiling2.04 ms [1.989 ms, 2.092 ms]567.75 µs (38.6%)
tracing2.023 ms [1.974 ms, 2.073 ms]550.972 µs (37.4%)
Execution time for biojava
gantt
title biojava - execution time [CI 0.99] : candidate=1.53.0-SNAPSHOT~435d92cfcd, baseline=1.54.0-SNAPSHOT~f7aa6d2c5e
dateFormat X
axisFormat %s
section baseline
no_agent (15.013 s) : 15013000, 15013000
. : milestone, 15013000,
appsec (15.002 s) : 15002000, 15002000
. : milestone, 15002000,
iast (18.573 s) : 18573000, 18573000
. : milestone, 18573000,
iast_GLOBAL (18.077 s) : 18077000, 18077000
. : milestone, 18077000,
profiling (15.997 s) : 15997000, 15997000
. : milestone, 15997000,
tracing (14.969 s) : 14969000, 14969000
. : milestone, 14969000,
section candidate
no_agent (15.322 s) : 15322000, 15322000
. : milestone, 15322000,
appsec (14.809 s) : 14809000, 14809000
. : milestone, 14809000,
iast (18.488 s) : 18488000, 18488000
. : milestone, 18488000,
iast_GLOBAL (17.876 s) : 17876000, 17876000
. : milestone, 17876000,
profiling (15.982 s) : 15982000, 15982000
. : milestone, 15982000,
tracing (14.803 s) : 14803000, 14803000
. : milestone, 14803000,
Loading
  • baseline results
VariantExecution Time [CI 0.99]Δ no_agent
no_agent15.013 s [15.013 s, 15.013 s]-
appsec15.002 s [15.002 s, 15.002 s]-11.0 ms (-0.1%)
iast18.573 s [18.573 s, 18.573 s]3.56 s (23.7%)
iast_GLOBAL18.077 s [18.077 s, 18.077 s]3.064 s (20.4%)
profiling15.997 s [15.997 s, 15.997 s]984.0 ms (6.6%)
tracing14.969 s [14.969 s, 14.969 s]-44.0 ms (-0.3%)
  • candidate results
VariantExecution Time [CI 0.99]Δ no_agent
no_agent15.322 s [15.322 s, 15.322 s]-
appsec14.809 s [14.809 s, 14.809 s]-513.0 ms (-3.3%)
iast18.488 s [18.488 s, 18.488 s]3.166 s (20.7%)
iast_GLOBAL17.876 s [17.876 s, 17.876 s]2.554 s (16.7%)
profiling15.982 s [15.982 s, 15.982 s]660.0 ms (4.3%)
tracing14.803 s [14.803 s, 14.803 s]-519.0 ms (-3.4%)

@bric3
bric3 marked this pull request as ready for review August 31, 2025 14:42
@bric3
bric3 requested a review from a team as a code ownerAugust 31, 2025 14:42
@bric3
bric3 requested a review from dougqhAugust 31, 2025 14:42
@github-actions

github-actionsBot commented Aug 31, 2025

Copy link
Copy Markdown
Contributor

Hi! 👋 Thanks for your pull request! 🎉

To help us review it, please make sure to:

  • Add at least one type, and one component or instrumentation label to the pull request

If you need help, please check our contributing guidelines.

@bric3bric3 added tag: no release notes Changes to exclude from release notes comp: tooling Build & Tooling labels Sep 1, 2025
@bric3
bric3 requested a review from mccullsSeptember 1, 2025 09:30
Comment threadbuildSrc/src/main/kotlin/datadog/gradle/plugin/muzzle/VersionSet.kt Outdated

@sarahchen6sarahchen6 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I reviewed this PR by comparing the new kotlin files to the previous groovy implementations. Looks like all of the classes and logic were transferred directly over. Nice! Thanks!

@mcculls

Copy link
Copy Markdown
Contributor

Couple of issues I don't see with the original plugin:

./gradlew :dd-java-agent:instrumentation:mule-4:muzzle
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring project ':dd-java-agent:instrumentation:mule-4'.
> Could not create domain object 'muzzle-AssertPass-org.mule.runtime-mule-core-4.9.9' (LegacyConfiguration)
./gradlew :dd-java-agent:instrumentation:spring-webflux-5:muzzle
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring project ':dd-java-agent:instrumentation:spring-webflux-5'.
> Could not create task ':dd-java-agent:instrumentation:spring-webflux-5:muzzle-AssertPass-io.projectreactor.netty-reactor-netty-1.0.0-netty_0.8.0+_with_spring-webflux:5.1.0'.
> The task name 'muzzle-AssertPass-io.projectreactor.netty-reactor-netty-1.0.0-netty_0.8.0+_with_spring-webflux:5.1.0' must not contain any of the following characters: [/, \, :, <, >, ", ?, *, |].

(This also fails for :dd-java-agent:instrumentation:spring-webflux-6:muzzle)

@mcculls

Copy link
Copy Markdown
Contributor

I also noticed that the ./gradlew printReferences task doesn't generate any output, only errors:

FAILURE: Build completed with 4 failures.
1: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':dd-java-agent:instrumentation:apache-httpcore:printReferences'.
> Extension of type 'SourceSetContainer' does not exist. Currently registered extension types: [ExtraPropertiesExtension, DevelocityConfiguration, InstrumentExtension, MuzzleExtension, LibrariesForLibs, VersionCatalogsExtension]
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Get more help at https://help.gradle.org.
==============================================================================
2: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':dd-java-agent:instrumentation:armeria:printReferences'.
> Extension of type 'SourceSetContainer' does not exist. Currently registered extension types: [ExtraPropertiesExtension, DevelocityConfiguration, InstrumentExtension, MuzzleExtension, LibrariesForLibs, VersionCatalogsExtension]
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Get more help at https://help.gradle.org.
==============================================================================
3: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':dd-java-agent:instrumentation:couchbase:printReferences'.
> Extension of type 'SourceSetContainer' does not exist. Currently registered extension types: [ExtraPropertiesExtension, DevelocityConfiguration, InstrumentExtension, MuzzleExtension, LibrariesForLibs, VersionCatalogsExtension]
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Get more help at https://help.gradle.org.
==============================================================================
4: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':dd-java-agent:instrumentation:akka:printReferences'.
> Extension of type 'SourceSetContainer' does not exist. Currently registered extension types: [ExtraPropertiesExtension, DevelocityConfiguration, InstrumentExtension, MuzzleExtension, LibrariesForLibs, VersionCatalogsExtension]

Those projects are all intermediate modules which don't have any source sets/code - I suspect there's a check missing in the new plugin that should be skipping these projects.

@bric3
bric3 requested a review from a team as a code ownerSeptember 12, 2025 11:33
@bric3

bric3 commented Sep 12, 2025

Copy link
Copy Markdown
ContributorAuthor

@mcculls thank for catching those !

I'm not sure what made the build green in the first place.

  • 1st issue was due to Groovy adding a GStringImpl to a `List.
  • 2nd issue was an oversight from me used name instead of nameSlug
  • 3rd issue was also n oversight I only tested printReferences on specific projects, but empty non-java parent projects also had the muzzle plugin applied and this failed.

@mccullsmcculls left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM - thanks!

@bric3
bric3 enabled auto-merge (squash) September 12, 2025 12:24
@bric3
bric3 merged commit ac35950 into masterSep 12, 2025
505 checks passed
@bric3
bric3 deleted the bdu/convert-muzzle-to-kotlin branch September 12, 2025 12:32
@github-actionsgithub-actionsBot added this to the 1.54.0 milestone Sep 12, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: toolingBuild & Toolingtag: no release notesChanges to exclude from release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@bric3@mcculls@amarziali@sarahchen6@AlexeyKuznetsov-DD