-
Notifications
You must be signed in to change notification settings - Fork 305
Add PR performance gate #8970
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 PR performance gate #8970
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 45 metrics, 8 unstable metrics. Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.51.0-SNAPSHOT~333b53aa04, baseline=1.51.0-SNAPSHOT~cb3d9928f7
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (996.401 ms) : 0, 996401
Total [baseline] (10.674 s) : 0, 10674365
Agent [candidate] (1.002 s) : 0, 1001530
Total [candidate] (10.775 s) : 0, 10775086
section appsec
Agent [baseline] (1.182 s) : 0, 1182397
Total [baseline] (10.903 s) : 0, 10903298
Agent [candidate] (1.181 s) : 0, 1180962
Total [candidate] (10.833 s) : 0, 10833404
section iast
Agent [baseline] (1.147 s) : 0, 1146960
Total [baseline] (10.912 s) : 0, 10911770
Agent [candidate] (1.138 s) : 0, 1137821
Total [candidate] (10.874 s) : 0, 10874421
section profiling
Agent [baseline] (1.252 s) : 0, 1252388
Total [baseline] (10.289 s) : 0, 10289185
Agent [candidate] (1.259 s) : 0, 1258987
Total [candidate] (11.099 s) : 0, 11099266
gantt
title petclinic - break down per module: candidate=1.51.0-SNAPSHOT~333b53aa04, baseline=1.51.0-SNAPSHOT~cb3d9928f7
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (687.178 ms) : 0, 687178
BytebuddyAgent [candidate] (691.414 ms) : 0, 691414
GlobalTracer [baseline] (242.931 ms) : 0, 242931
GlobalTracer [candidate] (243.571 ms) : 0, 243571
AppSec [baseline] (30.407 ms) : 0, 30407
AppSec [candidate] (30.492 ms) : 0, 30492
Debugger [baseline] (6.054 ms) : 0, 6054
Debugger [candidate] (6.104 ms) : 0, 6104
Remote Config [baseline] (683.044 µs) : 0, 683
Remote Config [candidate] (679.191 µs) : 0, 679
Telemetry [baseline] (8.292 ms) : 0, 8292
Telemetry [candidate] (8.265 ms) : 0, 8265
section appsec
BytebuddyAgent [baseline] (714.862 ms) : 0, 714862
BytebuddyAgent [candidate] (713.977 ms) : 0, 713977
GlobalTracer [baseline] (237.834 ms) : 0, 237834
GlobalTracer [candidate] (237.747 ms) : 0, 237747
IAST [baseline] (22.208 ms) : 0, 22208
IAST [candidate] (22.137 ms) : 0, 22137
AppSec [baseline] (171.876 ms) : 0, 171876
AppSec [candidate] (171.536 ms) : 0, 171536
Debugger [baseline] (5.878 ms) : 0, 5878
Debugger [candidate] (5.845 ms) : 0, 5845
Remote Config [baseline] (619.202 µs) : 0, 619
Remote Config [candidate] (608.466 µs) : 0, 608
Telemetry [baseline] (8.208 ms) : 0, 8208
Telemetry [candidate] (8.158 ms) : 0, 8158
section iast
BytebuddyAgent [baseline] (818.644 ms) : 0, 818644
BytebuddyAgent [candidate] (812.037 ms) : 0, 812037
GlobalTracer [baseline] (236.28 ms) : 0, 236280
GlobalTracer [candidate] (234.497 ms) : 0, 234497
IAST [baseline] (28.193 ms) : 0, 28193
IAST [candidate] (28.847 ms) : 0, 28847
AppSec [baseline] (28.176 ms) : 0, 28176
AppSec [candidate] (26.975 ms) : 0, 26975
Debugger [baseline] (5.92 ms) : 0, 5920
Debugger [candidate] (5.904 ms) : 0, 5904
Remote Config [baseline] (589.345 µs) : 0, 589
Remote Config [candidate] (598.88 µs) : 0, 599
Telemetry [baseline] (8.065 ms) : 0, 8065
Telemetry [candidate] (7.975 ms) : 0, 7975
section profiling
BytebuddyAgent [baseline] (682.964 ms) : 0, 682964
BytebuddyAgent [candidate] (686.582 ms) : 0, 686582
GlobalTracer [baseline] (363.127 ms) : 0, 363127
GlobalTracer [candidate] (365.662 ms) : 0, 365662
AppSec [baseline] (32.655 ms) : 0, 32655
AppSec [candidate] (31.884 ms) : 0, 31884
Debugger [baseline] (11.105 ms) : 0, 11105
Debugger [candidate] (12.988 ms) : 0, 12988
Remote Config [baseline] (657.311 µs) : 0, 657
Remote Config [candidate] (667.301 µs) : 0, 667
Telemetry [baseline] (8.85 ms) : 0, 8850
Telemetry [candidate] (8.071 ms) : 0, 8071
ProfilingAgent [baseline] (104.106 ms) : 0, 104106
ProfilingAgent [candidate] (103.737 ms) : 0, 103737
Profiling [baseline] (104.13 ms) : 0, 104130
Profiling [candidate] (103.762 ms) : 0, 103762
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.51.0-SNAPSHOT~333b53aa04, baseline=1.51.0-SNAPSHOT~cb3d9928f7
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.005 s) : 0, 1004683
Total [baseline] (8.552 s) : 0, 8552071
Agent [candidate] (1.001 s) : 0, 1001094
Total [candidate] (8.63 s) : 0, 8630363
section iast
Agent [baseline] (1.133 s) : 0, 1132885
Total [baseline] (9.258 s) : 0, 9257600
Agent [candidate] (1.137 s) : 0, 1137057
Total [candidate] (9.313 s) : 0, 9313008
gantt
title insecure-bank - break down per module: candidate=1.51.0-SNAPSHOT~333b53aa04, baseline=1.51.0-SNAPSHOT~cb3d9928f7
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (693.765 ms) : 0, 693765
BytebuddyAgent [candidate] (690.07 ms) : 0, 690070
GlobalTracer [baseline] (244.134 ms) : 0, 244134
GlobalTracer [candidate] (244.227 ms) : 0, 244227
AppSec [baseline] (30.524 ms) : 0, 30524
AppSec [candidate] (30.717 ms) : 0, 30717
Debugger [baseline] (6.115 ms) : 0, 6115
Debugger [candidate] (6.152 ms) : 0, 6152
Remote Config [baseline] (680.316 µs) : 0, 680
Remote Config [candidate] (679.268 µs) : 0, 679
Telemetry [baseline] (8.309 ms) : 0, 8309
Telemetry [candidate] (8.386 ms) : 0, 8386
section iast
BytebuddyAgent [baseline] (809.097 ms) : 0, 809097
BytebuddyAgent [candidate] (811.752 ms) : 0, 811752
GlobalTracer [baseline] (233.402 ms) : 0, 233402
GlobalTracer [candidate] (233.732 ms) : 0, 233732
AppSec [baseline] (25.969 ms) : 0, 25969
AppSec [candidate] (29.686 ms) : 0, 29686
Debugger [baseline] (5.841 ms) : 0, 5841
Debugger [candidate] (5.855 ms) : 0, 5855
Remote Config [baseline] (593.248 µs) : 0, 593
Remote Config [candidate] (582.633 µs) : 0, 583
Telemetry [baseline] (7.925 ms) : 0, 7925
Telemetry [candidate] (8.076 ms) : 0, 8076
IAST [baseline] (29.281 ms) : 0, 29281
IAST [candidate] (26.43 ms) : 0, 26430
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 1 performance regressions! Performance is the same for 11 metrics, 12 unstable metrics.
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.51.0-SNAPSHOT~333b53aa04, baseline=1.51.0-SNAPSHOT~cb3d9928f7
dateFormat X
axisFormat %s
section baseline
no_agent (37.658 ms) : 37352, 37964
. : milestone, 37658,
appsec (49.345 ms) : 48914, 49775
. : milestone, 49345,
code_origins (45.157 ms) : 44775, 45539
. : milestone, 45157,
iast (44.792 ms) : 44396, 45188
. : milestone, 44792,
profiling (48.683 ms) : 48238, 49128
. : milestone, 48683,
tracing (43.581 ms) : 43228, 43934
. : milestone, 43581,
section candidate
no_agent (37.394 ms) : 37090, 37698
. : milestone, 37394,
appsec (48.376 ms) : 47956, 48796
. : milestone, 48376,
code_origins (45.332 ms) : 44952, 45712
. : milestone, 45332,
iast (43.879 ms) : 43504, 44253
. : milestone, 43879,
profiling (47.966 ms) : 47528, 48404
. : milestone, 47966,
tracing (45.301 ms) : 44935, 45668
. : milestone, 45301,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.51.0-SNAPSHOT~333b53aa04, baseline=1.51.0-SNAPSHOT~cb3d9928f7
dateFormat X
axisFormat %s
section baseline
no_agent (4.409 ms) : 4359, 4460
. : milestone, 4409,
iast (8.949 ms) : 8806, 9092
. : milestone, 8949,
iast_FULL (14.111 ms) : 13830, 14393
. : milestone, 14111,
iast_GLOBAL (9.68 ms) : 9501, 9859
. : milestone, 9680,
profiling (8.593 ms) : 8461, 8726
. : milestone, 8593,
tracing (7.862 ms) : 7751, 7974
. : milestone, 7862,
section candidate
no_agent (4.392 ms) : 4343, 4442
. : milestone, 4392,
iast (9.264 ms) : 9111, 9418
. : milestone, 9264,
iast_FULL (13.763 ms) : 13489, 14037
. : milestone, 13763,
iast_GLOBAL (9.856 ms) : 9679, 10034
. : milestone, 9856,
profiling (8.87 ms) : 8732, 9008
. : milestone, 8870,
tracing (7.63 ms) : 7521, 7739
. : milestone, 7630,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics. Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.51.0-SNAPSHOT~333b53aa04, baseline=1.51.0-SNAPSHOT~cb3d9928f7
dateFormat X
axisFormat %s
section baseline
no_agent (1.473 ms) : 1461, 1484
. : milestone, 1473,
appsec (2.406 ms) : 2357, 2455
. : milestone, 2406,
iast (2.184 ms) : 2122, 2245
. : milestone, 2184,
iast_GLOBAL (2.226 ms) : 2164, 2288
. : milestone, 2226,
profiling (2.049 ms) : 1999, 2100
. : milestone, 2049,
tracing (2.006 ms) : 1958, 2053
. : milestone, 2006,
section candidate
no_agent (1.473 ms) : 1461, 1484
. : milestone, 1473,
appsec (2.405 ms) : 2356, 2454
. : milestone, 2405,
iast (2.193 ms) : 2132, 2254
. : milestone, 2193,
iast_GLOBAL (2.226 ms) : 2165, 2288
. : milestone, 2226,
profiling (2.029 ms) : 1980, 2079
. : milestone, 2029,
tracing (2.009 ms) : 1961, 2056
. : milestone, 2009,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.51.0-SNAPSHOT~333b53aa04, baseline=1.51.0-SNAPSHOT~cb3d9928f7
dateFormat X
axisFormat %s
section baseline
no_agent (15.539 s) : 15539000, 15539000
. : milestone, 15539000,
appsec (15.133 s) : 15133000, 15133000
. : milestone, 15133000,
iast (18.353 s) : 18353000, 18353000
. : milestone, 18353000,
iast_GLOBAL (18.079 s) : 18079000, 18079000
. : milestone, 18079000,
profiling (15.017 s) : 15017000, 15017000
. : milestone, 15017000,
tracing (14.787 s) : 14787000, 14787000
. : milestone, 14787000,
section candidate
no_agent (15.08 s) : 15080000, 15080000
. : milestone, 15080000,
appsec (14.711 s) : 14711000, 14711000
. : milestone, 14711000,
iast (18.557 s) : 18557000, 18557000
. : milestone, 18557000,
iast_GLOBAL (17.691 s) : 17691000, 17691000
. : milestone, 17691000,
profiling (15.212 s) : 15212000, 15212000
. : milestone, 15212000,
tracing (14.845 s) : 14845000, 14845000
. : milestone, 14845000,
|
f806916
to
4aeb1c8
Compare
…on-regression.yml path
.gitlab/benchmarks.yml
Outdated
artifacts: true | ||
when: on_success | ||
tags: ["arch:amd64"] | ||
allow_failure: true # Exercise the job before making it mandatory |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
todo: From @ddyurchenko
Could you please rebase your PR on the latest master and remove
allow_failure: true
from gating job?
In worst case scenario if we block something that should not be blocked, there is a label mechanism to bypass the gate
Ignore mechanism in bp-runner
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for flagging it! We need to remove allow_failure: true
, the bypass mechanism inside bp-runner is specified in https://datadoghq.atlassian.net/wiki/x/LgI1LgE#How-to-bypass%3F.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! Both cases where gates should block and where they should let pass work. ✔️
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you link doc about it?
Gate skippable via performance/ignore-performance-regression label
Is that a GitHub issue label? If so, is it configurable as it does not fit our usual pattern?
@PerfectSlayer The bypass link is mentioned in @ddyurchenko's comment, I added it in the PR description.
Yes.
I already brought this to @ddyurchenko, this is something to be addressed in bp-runner PR (which is not merged yet). (Hence the higher threshold at this time). |
There are still some concerns about the variability of the benchmarks.
|
20% was chosen due to variability of the results on unrelated changes. After discussion in lp-sync, 20% won't get us to move forward and entice to fix the problems. So instead choose a closer threshold to 10%.
What Does This Do
Adds a PR Gate
Motivation
Additional Notes
Depends on
Gate skippable via
performance/ignore-performance-regression
label,bp-runner
PR still in progress.=> https://datadoghq.atlassian.net/wiki/x/8YFzMwE
Contributor Checklist
type:
and (comp:
orinst:
) labels in addition to any usefull labelsclose
,fix
or any linking keywords when referencing an issue.Use
solves
instead, and assign the PR milestone to the issueJira ticket: [PROJ-IDENT]