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

Filter out bridge methods when instrumenting methods #6785

Merged
merged 5 commits into from Mar 13, 2024

Conversation

evanchooly
Copy link
Contributor

@evanchooly evanchooly commented Mar 6, 2024

What Does This Do

This PR will filter out bridge methods from instrumentation to reduce the number of duplicate events from a probe.

Motivation

Bridge methods are generated by javac to support generics and are invisible to end users. Currently they get instrumented along with user methods resulting in trace information that is duplicated by the actual method of interest.

Jira ticket: DEBUG-2177

@evanchooly evanchooly requested a review from jpbempel March 6, 2024 17:24
@evanchooly evanchooly requested a review from a team as a code owner March 6, 2024 17:24
@evanchooly evanchooly force-pushed the DEBUG-2177-Remove-bridge-method-instrumentation branch from 7bb9df3 to f8623cd Compare March 11, 2024 18:23
@evanchooly
Copy link
Contributor Author

This PR needs the circle CI run to complete but it's blocked because of a missing config file. Where do I go from here?

@pr-commenter
Copy link

pr-commenter bot commented Mar 11, 2024

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master DEBUG-2177-Remove-bridge-method-instrumentation
git_commit_date 1710236254 1710334806
git_commit_sha a786410 2e88832
release_version 1.32.0-SNAPSHOT~a786410129 1.32.0-SNAPSHOT~2e88832adb
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1710337983 1710337983
ci_job_id 458631591 458631591
ci_pipeline_id 30019721 30019721
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 50 metrics, 13 unstable metrics.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.32.0-SNAPSHOT~2e88832adb, baseline=1.32.0-SNAPSHOT~a786410129

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.08 s) : 0, 1079654
Total [baseline] (9.232 s) : 0, 9231889
Agent [candidate] (1.083 s) : 0, 1083042
Total [candidate] (9.186 s) : 0, 9185728
section appsec
Agent [baseline] (1.21 s) : 0, 1210309
Total [baseline] (9.362 s) : 0, 9361867
Agent [candidate] (1.207 s) : 0, 1207192
Total [candidate] (9.368 s) : 0, 9368023
section iast
Agent [baseline] (1.219 s) : 0, 1219063
Total [baseline] (9.405 s) : 0, 9405208
Agent [candidate] (1.208 s) : 0, 1207914
Total [candidate] (9.336 s) : 0, 9336441
section profiling
Agent [baseline] (1.28 s) : 0, 1280064
Total [baseline] (9.54 s) : 0, 9539671
Agent [candidate] (1.282 s) : 0, 1282294
Total [candidate] (9.426 s) : 0, 9425616
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.08 s -
Agent appsec 1.21 s 130.655 ms (12.1%)
Agent iast 1.219 s 139.409 ms (12.9%)
Agent profiling 1.28 s 200.41 ms (18.6%)
Total tracing 9.232 s -
Total appsec 9.362 s 129.978 ms (1.4%)
Total iast 9.405 s 173.318 ms (1.9%)
Total profiling 9.54 s 307.782 ms (3.3%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.083 s -
Agent appsec 1.207 s 124.15 ms (11.5%)
Agent iast 1.208 s 124.872 ms (11.5%)
Agent profiling 1.282 s 199.252 ms (18.4%)
Total tracing 9.186 s -
Total appsec 9.368 s 182.295 ms (2.0%)
Total iast 9.336 s 150.712 ms (1.6%)
Total profiling 9.426 s 239.888 ms (2.6%)
gantt
    title petclinic - break down per module: candidate=1.32.0-SNAPSHOT~2e88832adb, baseline=1.32.0-SNAPSHOT~a786410129

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (695.718 ms) : 0, 695718
BytebuddyAgent [candidate] (697.246 ms) : 0, 697246
GlobalTracer [baseline] (292.053 ms) : 0, 292053
GlobalTracer [candidate] (293.478 ms) : 0, 293478
AppSec [baseline] (49.197 ms) : 0, 49197
AppSec [candidate] (49.418 ms) : 0, 49418
Remote Config [baseline] (731.481 µs) : 0, 731
Remote Config [candidate] (737.082 µs) : 0, 737
Telemetry [baseline] (7.722 ms) : 0, 7722
Telemetry [candidate] (7.766 ms) : 0, 7766
section appsec
BytebuddyAgent [baseline] (701.959 ms) : 0, 701959
BytebuddyAgent [candidate] (701.163 ms) : 0, 701163
GlobalTracer [baseline] (294.541 ms) : 0, 294541
GlobalTracer [candidate] (292.671 ms) : 0, 292671
AppSec [baseline] (153.781 ms) : 0, 153781
AppSec [candidate] (153.446 ms) : 0, 153446
Remote Config [baseline] (607.596 µs) : 0, 608
Remote Config [candidate] (606.46 µs) : 0, 606
Telemetry [baseline] (6.931 ms) : 0, 6931
Telemetry [candidate] (6.902 ms) : 0, 6902
IAST [baseline] (17.838 ms) : 0, 17838
IAST [candidate] (17.87 ms) : 0, 17870
section iast
BytebuddyAgent [baseline] (811.25 ms) : 0, 811250
BytebuddyAgent [candidate] (803.053 ms) : 0, 803053
GlobalTracer [baseline] (291.726 ms) : 0, 291726
GlobalTracer [candidate] (289.994 ms) : 0, 289994
AppSec [baseline] (48.907 ms) : 0, 48907
AppSec [candidate] (49.851 ms) : 0, 49851
Remote Config [baseline] (598.949 µs) : 0, 599
Remote Config [candidate] (607.921 µs) : 0, 608
Telemetry [baseline] (6.537 ms) : 0, 6537
Telemetry [candidate] (7.396 ms) : 0, 7396
IAST [baseline] (25.226 ms) : 0, 25226
IAST [candidate] (22.619 ms) : 0, 22619
section profiling
BytebuddyAgent [baseline] (693.016 ms) : 0, 693016
BytebuddyAgent [candidate] (694.256 ms) : 0, 694256
GlobalTracer [baseline] (377.533 ms) : 0, 377533
GlobalTracer [candidate] (378.839 ms) : 0, 378839
AppSec [baseline] (49.938 ms) : 0, 49938
AppSec [candidate] (49.919 ms) : 0, 49919
Remote Config [baseline] (733.631 µs) : 0, 734
Remote Config [candidate] (813.469 µs) : 0, 813
Telemetry [baseline] (7.499 ms) : 0, 7499
Telemetry [candidate] (7.389 ms) : 0, 7389
ProfilingAgent [baseline] (94.899 ms) : 0, 94899
ProfilingAgent [candidate] (94.463 ms) : 0, 94463
Profiling [baseline] (94.922 ms) : 0, 94922
Profiling [candidate] (94.487 ms) : 0, 94487
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.32.0-SNAPSHOT~2e88832adb, baseline=1.32.0-SNAPSHOT~a786410129

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.088 s) : 0, 1087908
Total [baseline] (8.622 s) : 0, 8621542
Agent [candidate] (1.081 s) : 0, 1080967
Total [candidate] (8.575 s) : 0, 8575232
section iast
Agent [baseline] (1.204 s) : 0, 1204056
Total [baseline] (9.049 s) : 0, 9049038
Agent [candidate] (1.215 s) : 0, 1215356
Total [candidate] (9.147 s) : 0, 9146573
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.21 s) : 0, 1210047
Total [baseline] (9.074 s) : 0, 9074044
Agent [candidate] (1.207 s) : 0, 1206560
Total [candidate] (9.031 s) : 0, 9030686
section iast_TELEMETRY_OFF
Agent [baseline] (1.198 s) : 0, 1197823
Total [baseline] (9.049 s) : 0, 9048516
Agent [candidate] (1.199 s) : 0, 1199014
Total [candidate] (9.066 s) : 0, 9065613
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.088 s -
Agent iast 1.204 s 116.148 ms (10.7%)
Agent iast_HARDCODED_SECRET_DISABLED 1.21 s 122.139 ms (11.2%)
Agent iast_TELEMETRY_OFF 1.198 s 109.915 ms (10.1%)
Total tracing 8.622 s -
Total iast 9.049 s 427.496 ms (5.0%)
Total iast_HARDCODED_SECRET_DISABLED 9.074 s 452.502 ms (5.2%)
Total iast_TELEMETRY_OFF 9.049 s 426.973 ms (5.0%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.081 s -
Agent iast 1.215 s 134.389 ms (12.4%)
Agent iast_HARDCODED_SECRET_DISABLED 1.207 s 125.593 ms (11.6%)
Agent iast_TELEMETRY_OFF 1.199 s 118.047 ms (10.9%)
Total tracing 8.575 s -
Total iast 9.147 s 571.341 ms (6.7%)
Total iast_HARDCODED_SECRET_DISABLED 9.031 s 455.454 ms (5.3%)
Total iast_TELEMETRY_OFF 9.066 s 490.381 ms (5.7%)
gantt
    title insecure-bank - break down per module: candidate=1.32.0-SNAPSHOT~2e88832adb, baseline=1.32.0-SNAPSHOT~a786410129

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (701.673 ms) : 0, 701673
BytebuddyAgent [candidate] (696.86 ms) : 0, 696860
GlobalTracer [baseline] (293.699 ms) : 0, 293699
GlobalTracer [candidate] (292.159 ms) : 0, 292159
AppSec [baseline] (49.424 ms) : 0, 49424
AppSec [candidate] (49.193 ms) : 0, 49193
Remote Config [baseline] (739.378 µs) : 0, 739
Remote Config [candidate] (729.248 µs) : 0, 729
Telemetry [baseline] (7.757 ms) : 0, 7757
Telemetry [candidate] (7.671 ms) : 0, 7671
section iast
BytebuddyAgent [baseline] (800.041 ms) : 0, 800041
BytebuddyAgent [candidate] (807.286 ms) : 0, 807286
GlobalTracer [baseline] (288.44 ms) : 0, 288440
GlobalTracer [candidate] (291.516 ms) : 0, 291516
AppSec [baseline] (48.487 ms) : 0, 48487
AppSec [candidate] (50.322 ms) : 0, 50322
IAST [baseline] (22.167 ms) : 0, 22167
IAST [candidate] (23.407 ms) : 0, 23407
Remote Config [baseline] (612.325 µs) : 0, 612
Remote Config [candidate] (633.963 µs) : 0, 634
Telemetry [baseline] (9.857 ms) : 0, 9857
Telemetry [candidate] (7.469 ms) : 0, 7469
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (805.105 ms) : 0, 805105
BytebuddyAgent [candidate] (801.307 ms) : 0, 801307
GlobalTracer [baseline] (289.03 ms) : 0, 289030
GlobalTracer [candidate] (289.672 ms) : 0, 289672
AppSec [baseline] (50.932 ms) : 0, 50932
AppSec [candidate] (50.624 ms) : 0, 50624
IAST [baseline] (23.078 ms) : 0, 23078
IAST [candidate] (23.131 ms) : 0, 23131
Remote Config [baseline] (625.823 µs) : 0, 626
Remote Config [candidate] (622.081 µs) : 0, 622
Telemetry [baseline] (6.661 ms) : 0, 6661
Telemetry [candidate] (6.673 ms) : 0, 6673
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (792.932 ms) : 0, 792932
BytebuddyAgent [candidate] (793.465 ms) : 0, 793465
GlobalTracer [baseline] (289.355 ms) : 0, 289355
GlobalTracer [candidate] (290.018 ms) : 0, 290018
AppSec [baseline] (47.912 ms) : 0, 47912
AppSec [candidate] (51.081 ms) : 0, 51081
IAST [baseline] (26.219 ms) : 0, 26219
IAST [candidate] (22.411 ms) : 0, 22411
Remote Config [baseline] (577.473 µs) : 0, 577
Remote Config [candidate] (558.433 µs) : 0, 558
Telemetry [baseline] (6.453 ms) : 0, 6453
Telemetry [candidate] (7.138 ms) : 0, 7138

Load

Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.32.0-SNAPSHOT~2e88832adb, baseline=1.32.0-SNAPSHOT~a786410129
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.378 ms) : 1359, 1398
.   : milestone, 1378,
appsec (1.763 ms) : 1739, 1787
.   : milestone, 1763,
iast (1.554 ms) : 1530, 1578
.   : milestone, 1554,
profiling (1.567 ms) : 1542, 1591
.   : milestone, 1567,
tracing (1.498 ms) : 1475, 1522
.   : milestone, 1498,
section candidate
no_agent (1.363 ms) : 1344, 1382
.   : milestone, 1363,
appsec (1.764 ms) : 1740, 1788
.   : milestone, 1764,
iast (1.524 ms) : 1501, 1548
.   : milestone, 1524,
profiling (1.525 ms) : 1501, 1550
.   : milestone, 1525,
tracing (1.514 ms) : 1490, 1537
.   : milestone, 1514,
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.378 ms [1.359 ms, 1.398 ms] -
appsec 1.763 ms [1.739 ms, 1.787 ms] 384.681 µs (27.9%)
iast 1.554 ms [1.53 ms, 1.578 ms] 175.95 µs (12.8%)
profiling 1.567 ms [1.542 ms, 1.591 ms] 188.219 µs (13.7%)
tracing 1.498 ms [1.475 ms, 1.522 ms] 120.009 µs (8.7%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.363 ms [1.344 ms, 1.382 ms] -
appsec 1.764 ms [1.74 ms, 1.788 ms] 401.409 µs (29.5%)
iast 1.524 ms [1.501 ms, 1.548 ms] 161.643 µs (11.9%)
profiling 1.525 ms [1.501 ms, 1.55 ms] 162.78 µs (11.9%)
tracing 1.514 ms [1.49 ms, 1.537 ms] 151.183 µs (11.1%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.32.0-SNAPSHOT~2e88832adb, baseline=1.32.0-SNAPSHOT~a786410129
    dateFormat X
    axisFormat %s
section baseline
no_agent (363.024 µs) : 343, 383
.   : milestone, 363,
iast (477.543 µs) : 457, 498
.   : milestone, 478,
iast_FULL (550.837 µs) : 530, 571
.   : milestone, 551,
iast_GLOBAL (504.522 µs) : 482, 527
.   : milestone, 505,
iast_HARDCODED_SECRET_DISABLED (475.181 µs) : 455, 495
.   : milestone, 475,
iast_INACTIVE (456.245 µs) : 436, 477
.   : milestone, 456,
iast_TELEMETRY_OFF (475.093 µs) : 455, 496
.   : milestone, 475,
tracing (446.954 µs) : 426, 468
.   : milestone, 447,
section candidate
no_agent (367.87 µs) : 347, 389
.   : milestone, 368,
iast (475.204 µs) : 454, 496
.   : milestone, 475,
iast_FULL (541.657 µs) : 521, 562
.   : milestone, 542,
iast_GLOBAL (495.49 µs) : 475, 516
.   : milestone, 495,
iast_HARDCODED_SECRET_DISABLED (475.486 µs) : 455, 496
.   : milestone, 475,
iast_INACTIVE (446.857 µs) : 426, 468
.   : milestone, 447,
iast_TELEMETRY_OFF (471.016 µs) : 450, 492
.   : milestone, 471,
tracing (449.71 µs) : 429, 471
.   : milestone, 450,
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 363.024 µs [343.054 µs, 382.993 µs] -
iast 477.543 µs [456.746 µs, 498.341 µs] 114.52 µs (31.5%)
iast_FULL 550.837 µs [530.328 µs, 571.346 µs] 187.814 µs (51.7%)
iast_GLOBAL 504.522 µs [482.245 µs, 526.799 µs] 141.498 µs (39.0%)
iast_HARDCODED_SECRET_DISABLED 475.181 µs [455.203 µs, 495.158 µs] 112.157 µs (30.9%)
iast_INACTIVE 456.245 µs [435.646 µs, 476.844 µs] 93.221 µs (25.7%)
iast_TELEMETRY_OFF 475.093 µs [454.589 µs, 495.597 µs] 112.069 µs (30.9%)
tracing 446.954 µs [426.214 µs, 467.694 µs] 83.931 µs (23.1%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 367.87 µs [347.098 µs, 388.641 µs] -
iast 475.204 µs [454.46 µs, 495.948 µs] 107.335 µs (29.2%)
iast_FULL 541.657 µs [520.97 µs, 562.344 µs] 173.788 µs (47.2%)
iast_GLOBAL 495.49 µs [475.276 µs, 515.704 µs] 127.62 µs (34.7%)
iast_HARDCODED_SECRET_DISABLED 475.486 µs [454.942 µs, 496.03 µs] 107.617 µs (29.3%)
iast_INACTIVE 446.857 µs [425.805 µs, 467.909 µs] 78.987 µs (21.5%)
iast_TELEMETRY_OFF 471.016 µs [450.053 µs, 491.98 µs] 103.147 µs (28.0%)
tracing 449.71 µs [428.629 µs, 470.792 µs] 81.841 µs (22.2%)

@evanchooly evanchooly merged commit a598d44 into master Mar 13, 2024
79 of 80 checks passed
@evanchooly evanchooly deleted the DEBUG-2177-Remove-bridge-method-instrumentation branch March 13, 2024 14:37
@github-actions github-actions bot added this to the 1.32.0 milestone Mar 13, 2024
@PerfectSlayer PerfectSlayer added the comp: debugger Dynamic Instrumentation label Apr 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp: debugger Dynamic Instrumentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants