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

Fix vertx worker propagation and error handling #8237

Merged
merged 4 commits into from
Jan 17, 2025

Conversation

amarziali
Copy link
Collaborator

@amarziali amarziali commented Jan 17, 2025

What Does This Do

This PR fixes broken context propagation between the netty event loop and the vertx worker. The issue seems to be present only for latest 4.x (i.e 4.5.x) version where vertx uses a dedicated executor service to dispatch worker tasks.
It's not present on 5.x nor in early 4.0 version where a task queue was used.

It also fixes vertx http client http error capturing that was broken on 4.5+

Motivation

Additional Notes

Contributor Checklist

Jira ticket: APMS-14408

@amarziali amarziali requested a review from a team as a code owner January 17, 2025 08:18
Copy link
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.

@amarziali
Copy link
Collaborator Author

@manuel-alvarez-alvarez tagging you since also vertx 4.5+ needs tracking of broken ASM tests

@amarziali amarziali added type: bug inst: vertx Eclipse Vert.x instrumentation labels Jan 17, 2025
@amarziali amarziali force-pushed the andrea.marziali/vertx-worker branch from dbf26ed to 9f36456 Compare January 17, 2025 09:01
@amarziali amarziali requested a review from a team as a code owner January 17, 2025 09:01
@amarziali amarziali requested a review from jandro996 January 17, 2025 09:01
@pr-commenter
Copy link

pr-commenter bot commented Jan 17, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master andrea.marziali/vertx-worker
git_commit_date 1737120835 1737121750
git_commit_sha 06fade9 7fdfb44
release_version 1.46.0-SNAPSHOT~06fade9467 1.46.0-SNAPSHOT~7fdfb44484
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1737124258 1737124258
ci_job_id 770707860 770707860
ci_pipeline_id 5330811 5330811
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 0 performance regressions! Performance is the same for 58 metrics, 5 unstable metrics.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.46.0-SNAPSHOT~7fdfb44484, baseline=1.46.0-SNAPSHOT~06fade9467

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.054 s) : 0, 1053644
Total [baseline] (10.43 s) : 0, 10430365
Agent [candidate] (1.061 s) : 0, 1061260
Total [candidate] (10.616 s) : 0, 10615927
section appsec
Agent [baseline] (1.194 s) : 0, 1193962
Total [baseline] (10.732 s) : 0, 10732345
Agent [candidate] (1.193 s) : 0, 1193073
Total [candidate] (10.676 s) : 0, 10676498
section iast
Agent [baseline] (1.182 s) : 0, 1181754
Total [baseline] (10.989 s) : 0, 10989058
Agent [candidate] (1.186 s) : 0, 1185873
Total [candidate] (11.024 s) : 0, 11023941
section profiling
Agent [baseline] (1.259 s) : 0, 1259176
Total [baseline] (10.888 s) : 0, 10887631
Agent [candidate] (1.261 s) : 0, 1260706
Total [candidate] (10.867 s) : 0, 10867195
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.054 s -
Agent appsec 1.194 s 140.318 ms (13.3%)
Agent iast 1.182 s 128.11 ms (12.2%)
Agent profiling 1.259 s 205.531 ms (19.5%)
Total tracing 10.43 s -
Total appsec 10.732 s 301.98 ms (2.9%)
Total iast 10.989 s 558.693 ms (5.4%)
Total profiling 10.888 s 457.266 ms (4.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.061 s -
Agent appsec 1.193 s 131.812 ms (12.4%)
Agent iast 1.186 s 124.612 ms (11.7%)
Agent profiling 1.261 s 199.446 ms (18.8%)
Total tracing 10.616 s -
Total appsec 10.676 s 60.571 ms (0.6%)
Total iast 11.024 s 408.014 ms (3.8%)
Total profiling 10.867 s 251.268 ms (2.4%)
gantt
    title petclinic - break down per module: candidate=1.46.0-SNAPSHOT~7fdfb44484, baseline=1.46.0-SNAPSHOT~06fade9467

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (712.595 ms) : 0, 712595
BytebuddyAgent [candidate] (718.881 ms) : 0, 718881
GlobalTracer [baseline] (255.643 ms) : 0, 255643
GlobalTracer [candidate] (257.313 ms) : 0, 257313
AppSec [baseline] (56.141 ms) : 0, 56141
AppSec [candidate] (57.856 ms) : 0, 57856
Remote Config [baseline] (736.652 µs) : 0, 737
Remote Config [candidate] (748.875 µs) : 0, 749
Telemetry [baseline] (13.534 ms) : 0, 13534
Telemetry [candidate] (11.37 ms) : 0, 11370
section appsec
BytebuddyAgent [baseline] (735.502 ms) : 0, 735502
BytebuddyAgent [candidate] (734.092 ms) : 0, 734092
GlobalTracer [baseline] (253.515 ms) : 0, 253515
GlobalTracer [candidate] (254.209 ms) : 0, 254209
AppSec [baseline] (171.323 ms) : 0, 171323
AppSec [candidate] (171.032 ms) : 0, 171032
IAST [baseline] (19.337 ms) : 0, 19337
IAST [candidate] (19.182 ms) : 0, 19182
Remote Config [baseline] (672.028 µs) : 0, 672
Remote Config [candidate] (658.572 µs) : 0, 659
Telemetry [baseline] (8.221 ms) : 0, 8221
Telemetry [candidate] (8.455 ms) : 0, 8455
section iast
BytebuddyAgent [baseline] (830.985 ms) : 0, 830985
BytebuddyAgent [candidate] (833.807 ms) : 0, 833807
GlobalTracer [baseline] (246.718 ms) : 0, 246718
GlobalTracer [candidate] (247.418 ms) : 0, 247418
AppSec [baseline] (58.222 ms) : 0, 58222
AppSec [candidate] (58.5 ms) : 0, 58500
IAST [baseline] (21.373 ms) : 0, 21373
IAST [candidate] (21.546 ms) : 0, 21546
Remote Config [baseline] (667.79 µs) : 0, 668
Remote Config [candidate] (671.452 µs) : 0, 671
Telemetry [baseline] (8.807 ms) : 0, 8807
Telemetry [candidate] (8.836 ms) : 0, 8836
section profiling
BytebuddyAgent [baseline] (706.005 ms) : 0, 706005
BytebuddyAgent [candidate] (707.597 ms) : 0, 707597
GlobalTracer [baseline] (350.129 ms) : 0, 350129
GlobalTracer [candidate] (351.466 ms) : 0, 351466
AppSec [baseline] (55.247 ms) : 0, 55247
AppSec [candidate] (54.105 ms) : 0, 54105
Remote Config [baseline] (701.14 µs) : 0, 701
Remote Config [candidate] (700.759 µs) : 0, 701
Telemetry [baseline] (8.915 ms) : 0, 8915
Telemetry [candidate] (8.867 ms) : 0, 8867
ProfilingAgent [baseline] (96.026 ms) : 0, 96026
ProfilingAgent [candidate] (95.744 ms) : 0, 95744
Profiling [baseline] (96.05 ms) : 0, 96050
Profiling [candidate] (95.768 ms) : 0, 95768
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.46.0-SNAPSHOT~7fdfb44484, baseline=1.46.0-SNAPSHOT~06fade9467

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.07 s) : 0, 1069658
Total [baseline] (8.662 s) : 0, 8662025
Agent [candidate] (1.062 s) : 0, 1061846
Total [candidate] (8.602 s) : 0, 8602211
section iast
Agent [baseline] (1.18 s) : 0, 1180243
Total [baseline] (9.196 s) : 0, 9195581
Agent [candidate] (1.184 s) : 0, 1184231
Total [candidate] (9.233 s) : 0, 9233083
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.183 s) : 0, 1182723
Total [baseline] (9.166 s) : 0, 9166249
Agent [candidate] (1.182 s) : 0, 1181876
Total [candidate] (9.151 s) : 0, 9150665
section iast_TELEMETRY_OFF
Agent [baseline] (1.186 s) : 0, 1186129
Total [baseline] (9.215 s) : 0, 9214853
Agent [candidate] (1.188 s) : 0, 1188040
Total [candidate] (9.217 s) : 0, 9217267
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.07 s -
Agent iast 1.18 s 110.585 ms (10.3%)
Agent iast_HARDCODED_SECRET_DISABLED 1.183 s 113.065 ms (10.6%)
Agent iast_TELEMETRY_OFF 1.186 s 116.471 ms (10.9%)
Total tracing 8.662 s -
Total iast 9.196 s 533.556 ms (6.2%)
Total iast_HARDCODED_SECRET_DISABLED 9.166 s 504.224 ms (5.8%)
Total iast_TELEMETRY_OFF 9.215 s 552.828 ms (6.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.062 s -
Agent iast 1.184 s 122.385 ms (11.5%)
Agent iast_HARDCODED_SECRET_DISABLED 1.182 s 120.03 ms (11.3%)
Agent iast_TELEMETRY_OFF 1.188 s 126.194 ms (11.9%)
Total tracing 8.602 s -
Total iast 9.233 s 630.872 ms (7.3%)
Total iast_HARDCODED_SECRET_DISABLED 9.151 s 548.454 ms (6.4%)
Total iast_TELEMETRY_OFF 9.217 s 615.056 ms (7.1%)
gantt
    title insecure-bank - break down per module: candidate=1.46.0-SNAPSHOT~7fdfb44484, baseline=1.46.0-SNAPSHOT~06fade9467

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (722.431 ms) : 0, 722431
BytebuddyAgent [candidate] (718.061 ms) : 0, 718061
GlobalTracer [baseline] (259.083 ms) : 0, 259083
GlobalTracer [candidate] (256.435 ms) : 0, 256435
AppSec [baseline] (56.194 ms) : 0, 56194
AppSec [candidate] (55.564 ms) : 0, 55564
Remote Config [baseline] (762.818 µs) : 0, 763
Remote Config [candidate] (742.833 µs) : 0, 743
Telemetry [baseline] (15.975 ms) : 0, 15975
Telemetry [candidate] (15.917 ms) : 0, 15917
section iast
BytebuddyAgent [baseline] (830.032 ms) : 0, 830032
BytebuddyAgent [candidate] (833.24 ms) : 0, 833240
GlobalTracer [baseline] (246.213 ms) : 0, 246213
GlobalTracer [candidate] (246.903 ms) : 0, 246903
AppSec [baseline] (58.071 ms) : 0, 58071
AppSec [candidate] (57.909 ms) : 0, 57909
IAST [baseline] (21.543 ms) : 0, 21543
IAST [candidate] (21.635 ms) : 0, 21635
Remote Config [baseline] (677.618 µs) : 0, 678
Remote Config [candidate] (686.119 µs) : 0, 686
Telemetry [baseline] (8.773 ms) : 0, 8773
Telemetry [candidate] (8.832 ms) : 0, 8832
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (831.433 ms) : 0, 831433
BytebuddyAgent [candidate] (830.825 ms) : 0, 830825
GlobalTracer [baseline] (246.947 ms) : 0, 246947
GlobalTracer [candidate] (246.738 ms) : 0, 246738
AppSec [baseline] (58.335 ms) : 0, 58335
AppSec [candidate] (58.148 ms) : 0, 58148
IAST [baseline] (21.507 ms) : 0, 21507
IAST [candidate] (21.558 ms) : 0, 21558
Remote Config [baseline] (671.956 µs) : 0, 672
Remote Config [candidate] (679.098 µs) : 0, 679
Telemetry [baseline] (8.843 ms) : 0, 8843
Telemetry [candidate] (8.836 ms) : 0, 8836
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (833.313 ms) : 0, 833313
BytebuddyAgent [candidate] (835.568 ms) : 0, 835568
GlobalTracer [baseline] (247.942 ms) : 0, 247942
GlobalTracer [candidate] (248.585 ms) : 0, 248585
AppSec [baseline] (58.554 ms) : 0, 58554
AppSec [candidate] (58.269 ms) : 0, 58269
IAST [baseline] (21.69 ms) : 0, 21690
IAST [candidate] (21.053 ms) : 0, 21053
Remote Config [baseline] (695.83 µs) : 0, 696
Remote Config [candidate] (678.007 µs) : 0, 678
Telemetry [baseline] (8.881 ms) : 0, 8881
Telemetry [candidate] (8.768 ms) : 0, 8768
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-01-17T14:00:57 2025-01-17T14:08:00
git_branch master andrea.marziali/vertx-worker
git_commit_date 1737120835 1737121750
git_commit_sha 06fade9 7fdfb44
release_version 1.46.0-SNAPSHOT~06fade9467 1.46.0-SNAPSHOT~7fdfb44484
start_time 2025-01-17T14:00:43 2025-01-17T14:07:46
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1737123239 1737123239
ci_job_id 770707861 770707861
ci_pipeline_id 5330811 5330811
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 0 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 17 unstable metrics.

Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.46.0-SNAPSHOT~7fdfb44484, baseline=1.46.0-SNAPSHOT~06fade9467
    dateFormat X
    axisFormat %s
section baseline
no_agent (378.902 µs) : 359, 399
.   : milestone, 379,
iast (510.035 µs) : 488, 532
.   : milestone, 510,
iast_FULL (735.724 µs) : 714, 758
.   : milestone, 736,
iast_GLOBAL (556.269 µs) : 534, 578
.   : milestone, 556,
iast_HARDCODED_SECRET_DISABLED (505.842 µs) : 484, 528
.   : milestone, 506,
iast_INACTIVE (458.155 µs) : 437, 480
.   : milestone, 458,
iast_TELEMETRY_OFF (493.342 µs) : 471, 515
.   : milestone, 493,
tracing (449.538 µs) : 429, 470
.   : milestone, 450,
section candidate
no_agent (372.823 µs) : 353, 393
.   : milestone, 373,
iast (502.988 µs) : 481, 525
.   : milestone, 503,
iast_FULL (743.794 µs) : 722, 766
.   : milestone, 744,
iast_GLOBAL (555.095 µs) : 533, 577
.   : milestone, 555,
iast_HARDCODED_SECRET_DISABLED (525.981 µs) : 504, 548
.   : milestone, 526,
iast_INACTIVE (460.876 µs) : 439, 482
.   : milestone, 461,
iast_TELEMETRY_OFF (490.598 µs) : 469, 512
.   : milestone, 491,
tracing (454.519 µs) : 433, 476
.   : milestone, 455,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 378.902 µs [358.582 µs, 399.222 µs] -
iast 510.035 µs [487.966 µs, 532.104 µs] 131.133 µs (34.6%)
iast_FULL 735.724 µs [713.778 µs, 757.671 µs] 356.822 µs (94.2%)
iast_GLOBAL 556.269 µs [534.054 µs, 578.483 µs] 177.367 µs (46.8%)
iast_HARDCODED_SECRET_DISABLED 505.842 µs [483.634 µs, 528.049 µs] 126.94 µs (33.5%)
iast_INACTIVE 458.155 µs [436.736 µs, 479.574 µs] 79.253 µs (20.9%)
iast_TELEMETRY_OFF 493.342 µs [471.255 µs, 515.43 µs] 114.44 µs (30.2%)
tracing 449.538 µs [429.05 µs, 470.026 µs] 70.636 µs (18.6%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 372.823 µs [353.033 µs, 392.613 µs] -
iast 502.988 µs [481.19 µs, 524.785 µs] 130.165 µs (34.9%)
iast_FULL 743.794 µs [721.82 µs, 765.769 µs] 370.972 µs (99.5%)
iast_GLOBAL 555.095 µs [532.787 µs, 577.403 µs] 182.272 µs (48.9%)
iast_HARDCODED_SECRET_DISABLED 525.981 µs [504.295 µs, 547.667 µs] 153.158 µs (41.1%)
iast_INACTIVE 460.876 µs [439.494 µs, 482.258 µs] 88.053 µs (23.6%)
iast_TELEMETRY_OFF 490.598 µs [469.285 µs, 511.911 µs] 117.775 µs (31.6%)
tracing 454.519 µs [433.0 µs, 476.039 µs] 81.697 µs (21.9%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.46.0-SNAPSHOT~7fdfb44484, baseline=1.46.0-SNAPSHOT~06fade9467
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.341 ms) : 1322, 1360
.   : milestone, 1341,
appsec (1.734 ms) : 1710, 1758
.   : milestone, 1734,
appsec_no_iast (1.771 ms) : 1747, 1795
.   : milestone, 1771,
iast (1.515 ms) : 1491, 1539
.   : milestone, 1515,
profiling (1.504 ms) : 1480, 1527
.   : milestone, 1504,
tracing (1.48 ms) : 1455, 1506
.   : milestone, 1480,
section candidate
no_agent (1.363 ms) : 1343, 1383
.   : milestone, 1363,
appsec (1.773 ms) : 1750, 1796
.   : milestone, 1773,
appsec_no_iast (1.752 ms) : 1727, 1777
.   : milestone, 1752,
iast (1.515 ms) : 1490, 1539
.   : milestone, 1515,
profiling (1.533 ms) : 1510, 1556
.   : milestone, 1533,
tracing (1.498 ms) : 1472, 1523
.   : milestone, 1498,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.341 ms [1.322 ms, 1.36 ms] -
appsec 1.734 ms [1.71 ms, 1.758 ms] 392.616 µs (29.3%)
appsec_no_iast 1.771 ms [1.747 ms, 1.795 ms] 430.278 µs (32.1%)
iast 1.515 ms [1.491 ms, 1.539 ms] 173.843 µs (13.0%)
profiling 1.504 ms [1.48 ms, 1.527 ms] 162.763 µs (12.1%)
tracing 1.48 ms [1.455 ms, 1.506 ms] 139.292 µs (10.4%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.363 ms [1.343 ms, 1.383 ms] -
appsec 1.773 ms [1.75 ms, 1.796 ms] 409.681 µs (30.1%)
appsec_no_iast 1.752 ms [1.727 ms, 1.777 ms] 388.823 µs (28.5%)
iast 1.515 ms [1.49 ms, 1.539 ms] 151.795 µs (11.1%)
profiling 1.533 ms [1.51 ms, 1.556 ms] 169.673 µs (12.4%)
tracing 1.498 ms [1.472 ms, 1.523 ms] 134.774 µs (9.9%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master andrea.marziali/vertx-worker
git_commit_date 1737120835 1737121750
git_commit_sha 06fade9 7fdfb44
release_version 1.46.0-SNAPSHOT~06fade9467 1.46.0-SNAPSHOT~7fdfb44484
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1737123686 1737123686
ci_job_id 770707862 770707862
ci_pipeline_id 5330811 5330811
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 12 metrics, 0 unstable metrics.

Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.46.0-SNAPSHOT~7fdfb44484, baseline=1.46.0-SNAPSHOT~06fade9467
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.63 s) : 15630000, 15630000
.   : milestone, 15630000,
appsec (15.134 s) : 15134000, 15134000
.   : milestone, 15134000,
iast (18.562 s) : 18562000, 18562000
.   : milestone, 18562000,
iast_GLOBAL (17.622 s) : 17622000, 17622000
.   : milestone, 17622000,
profiling (15.112 s) : 15112000, 15112000
.   : milestone, 15112000,
tracing (15.071 s) : 15071000, 15071000
.   : milestone, 15071000,
section candidate
no_agent (15.331 s) : 15331000, 15331000
.   : milestone, 15331000,
appsec (14.828 s) : 14828000, 14828000
.   : milestone, 14828000,
iast (18.964 s) : 18964000, 18964000
.   : milestone, 18964000,
iast_GLOBAL (18.128 s) : 18128000, 18128000
.   : milestone, 18128000,
profiling (15.15 s) : 15150000, 15150000
.   : milestone, 15150000,
tracing (14.877 s) : 14877000, 14877000
.   : milestone, 14877000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.63 s [15.63 s, 15.63 s] -
appsec 15.134 s [15.134 s, 15.134 s] -496.0 ms (-3.2%)
iast 18.562 s [18.562 s, 18.562 s] 2.932 s (18.8%)
iast_GLOBAL 17.622 s [17.622 s, 17.622 s] 1.992 s (12.7%)
profiling 15.112 s [15.112 s, 15.112 s] -518.0 ms (-3.3%)
tracing 15.071 s [15.071 s, 15.071 s] -559.0 ms (-3.6%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.331 s [15.331 s, 15.331 s] -
appsec 14.828 s [14.828 s, 14.828 s] -503.0 ms (-3.3%)
iast 18.964 s [18.964 s, 18.964 s] 3.633 s (23.7%)
iast_GLOBAL 18.128 s [18.128 s, 18.128 s] 2.797 s (18.2%)
profiling 15.15 s [15.15 s, 15.15 s] -181.0 ms (-1.2%)
tracing 14.877 s [14.877 s, 14.877 s] -454.0 ms (-3.0%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.46.0-SNAPSHOT~7fdfb44484, baseline=1.46.0-SNAPSHOT~06fade9467
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.47 ms) : 1459, 1481
.   : milestone, 1470,
appsec (2.362 ms) : 2319, 2405
.   : milestone, 2362,
iast (2.098 ms) : 2044, 2152
.   : milestone, 2098,
iast_GLOBAL (2.147 ms) : 2092, 2202
.   : milestone, 2147,
profiling (1.977 ms) : 1933, 2021
.   : milestone, 1977,
tracing (1.949 ms) : 1907, 1991
.   : milestone, 1949,
section candidate
no_agent (1.468 ms) : 1457, 1480
.   : milestone, 1468,
appsec (2.357 ms) : 2314, 2400
.   : milestone, 2357,
iast (2.105 ms) : 2051, 2159
.   : milestone, 2105,
iast_GLOBAL (2.148 ms) : 2093, 2203
.   : milestone, 2148,
profiling (1.958 ms) : 1915, 2001
.   : milestone, 1958,
tracing (1.942 ms) : 1900, 1984
.   : milestone, 1942,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.47 ms [1.459 ms, 1.481 ms] -
appsec 2.362 ms [2.319 ms, 2.405 ms] 891.612 µs (60.7%)
iast 2.098 ms [2.044 ms, 2.152 ms] 628.111 µs (42.7%)
iast_GLOBAL 2.147 ms [2.092 ms, 2.202 ms] 676.985 µs (46.1%)
profiling 1.977 ms [1.933 ms, 2.021 ms] 507.004 µs (34.5%)
tracing 1.949 ms [1.907 ms, 1.991 ms] 478.898 µs (32.6%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.468 ms [1.457 ms, 1.48 ms] -
appsec 2.357 ms [2.314 ms, 2.4 ms] 888.54 µs (60.5%)
iast 2.105 ms [2.051 ms, 2.159 ms] 636.669 µs (43.4%)
iast_GLOBAL 2.148 ms [2.093 ms, 2.203 ms] 679.356 µs (46.3%)
profiling 1.958 ms [1.915 ms, 2.001 ms] 489.553 µs (33.3%)
tracing 1.942 ms [1.9 ms, 1.984 ms] 473.247 µs (32.2%)

@amarziali amarziali force-pushed the andrea.marziali/vertx-worker branch from 9f36456 to 6c6b179 Compare January 17, 2025 10:17
Comment on lines +42 to +47
int fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
Copy link
Contributor

Choose a reason for hiding this comment

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

"can you evaluate the complexity of this code ?" 😂
(ofc totally ok as it's for a test)

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

LOL..It's actually from the customer reproducer and it's useful to simulate some processing time

@amarziali amarziali requested a review from vandonr January 17, 2025 12:00
Copy link
Member

@manuel-alvarez-alvarez manuel-alvarez-alvarez left a comment

Choose a reason for hiding this comment

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

LGTM, I'm taking care of the broken ASM tests separately

@amarziali amarziali enabled auto-merge (squash) January 17, 2025 13:08
@amarziali amarziali added comp: api Tracer public API and removed comp: api Tracer public API labels Jan 17, 2025
@amarziali amarziali merged commit fbb36f9 into master Jan 17, 2025
170 of 172 checks passed
@amarziali amarziali deleted the andrea.marziali/vertx-worker branch January 17, 2025 14:35
@github-actions github-actions bot added this to the 1.46.0 milestone Jan 17, 2025
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
inst: vertx Eclipse Vert.x instrumentation type: bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants