Skip to content

Refactor CI Visibility to better encapsulate internal APIs#5747

Merged
nikita-tkachenko-datadog merged 5 commits into
masterfrom
nikita-tkachenko/encapsulate-ci-vis-api
Aug 29, 2023
Merged

Refactor CI Visibility to better encapsulate internal APIs#5747
nikita-tkachenko-datadog merged 5 commits into
masterfrom
nikita-tkachenko/encapsulate-ci-vis-api

Conversation

@nikita-tkachenko-datadog

Copy link
Copy Markdown
Contributor

What Does This Do

Moves some CI Visibility classes from internal-api module to agent-ci-visibility module.

Motivation

Better encapsulation: internal CI Visibility details should be hidden as much as possible in agent-ci-visibility module.
As the code evolves, some classes that previously had to be exposed for instrumentations to use can now be moved inside the product module.

@pr-commenter

pr-commenter Bot commented Aug 21, 2023

Copy link
Copy Markdown

Benchmarks

Startup

Parameters

Baseline Candidate
commit 1.20.0-SNAPSHOT~140e46f3c2 1.20.0-SNAPSHOT~3ec9b67b26
config baseline candidate
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
module Agent Agent
parent None None
variant appsec appsec

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 62 cases.

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.20.0-SNAPSHOT~3ec9b67b26, baseline=1.20.0-SNAPSHOT~140e46f3c2

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (988.031 ms) : 0, 988031
Total [baseline] (8.631 s) : 0, 8631211
Agent [candidate] (989.009 ms) : 0, 989009
Total [candidate] (8.656 s) : 0, 8655751
section appsec
Agent [baseline] (1.078 s) : 0, 1078338
Total [baseline] (8.719 s) : 0, 8719074
Agent [candidate] (1.092 s) : 0, 1092299
Total [candidate] (8.745 s) : 0, 8745316
section iast
Agent [baseline] (1.092 s) : 0, 1092266
Total [baseline] (9.179 s) : 0, 9178675
Agent [candidate] (1.094 s) : 0, 1093723
Total [candidate] (9.173 s) : 0, 9172899
section profiling
Agent [baseline] (1.16 s) : 0, 1159941
Total [baseline] (8.886 s) : 0, 8885881
Agent [candidate] (1.176 s) : 0, 1175573
Total [candidate] (8.916 s) : 0, 8916380
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 988.031 ms -
Agent appsec 1.078 s 90.307 ms (9.1%)
Agent iast 1.092 s 104.235 ms (10.5%)
Agent profiling 1.16 s 171.91 ms (17.4%)
Total tracing 8.631 s -
Total appsec 8.719 s 87.863 ms (1.0%)
Total iast 9.179 s 547.464 ms (6.3%)
Total profiling 8.886 s 254.67 ms (3.0%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 989.009 ms -
Agent appsec 1.092 s 103.291 ms (10.4%)
Agent iast 1.094 s 104.714 ms (10.6%)
Agent profiling 1.176 s 186.564 ms (18.9%)
Total tracing 8.656 s -
Total appsec 8.745 s 89.565 ms (1.0%)
Total iast 9.173 s 517.148 ms (6.0%)
Total profiling 8.916 s 260.629 ms (3.0%)
gantt
    title insecure-bank - break down per module: candidate=1.20.0-SNAPSHOT~3ec9b67b26, baseline=1.20.0-SNAPSHOT~140e46f3c2

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (613.694 ms) : 0, 613694
BytebuddyAgent [candidate] (613.587 ms) : 0, 613587
GlobalTracer [baseline] (283.354 ms) : 0, 283354
GlobalTracer [candidate] (284.279 ms) : 0, 284279
AppSec [baseline] (49.981 ms) : 0, 49981
AppSec [candidate] (50.146 ms) : 0, 50146
Remote Config [baseline] (662.712 µs) : 0, 663
Remote Config [candidate] (668.377 µs) : 0, 668
Telemetry [baseline] (5.98 ms) : 0, 5980
Telemetry [candidate] (6.022 ms) : 0, 6022
section appsec
BytebuddyAgent [baseline] (616.296 ms) : 0, 616296
BytebuddyAgent [candidate] (625.321 ms) : 0, 625321
GlobalTracer [baseline] (285.339 ms) : 0, 285339
GlobalTracer [candidate] (289.638 ms) : 0, 289638
AppSec [baseline] (135.733 ms) : 0, 135733
AppSec [candidate] (135.788 ms) : 0, 135788
Remote Config [baseline] (734.584 µs) : 0, 735
Remote Config [candidate] (753.885 µs) : 0, 754
Telemetry [baseline] (5.798 ms) : 0, 5798
Telemetry [candidate] (5.821 ms) : 0, 5821
section iast
BytebuddyAgent [baseline] (719.562 ms) : 0, 719562
BytebuddyAgent [candidate] (720.736 ms) : 0, 720736
GlobalTracer [baseline] (270.877 ms) : 0, 270877
GlobalTracer [candidate] (271.387 ms) : 0, 271387
AppSec [baseline] (46.837 ms) : 0, 46837
AppSec [candidate] (46.852 ms) : 0, 46852
Remote Config [baseline] (592.01 µs) : 0, 592
Remote Config [candidate] (567.009 µs) : 0, 567
Telemetry [baseline] (5.836 ms) : 0, 5836
Telemetry [candidate] (5.7 ms) : 0, 5700
IAST [baseline] (14.25 ms) : 0, 14250
IAST [candidate] (14.056 ms) : 0, 14056
section profiling
BytebuddyAgent [baseline] (626.052 ms) : 0, 626052
BytebuddyAgent [candidate] (635.003 ms) : 0, 635003
GlobalTracer [baseline] (348.335 ms) : 0, 348335
GlobalTracer [candidate] (351.751 ms) : 0, 351751
AppSec [baseline] (49.068 ms) : 0, 49068
AppSec [candidate] (49.819 ms) : 0, 49819
Remote Config [baseline] (644.073 µs) : 0, 644
Remote Config [candidate] (663.401 µs) : 0, 663
Telemetry [baseline] (5.994 ms) : 0, 5994
Telemetry [candidate] (6.037 ms) : 0, 6037
ProfilingAgent [baseline] (76.931 ms) : 0, 76931
ProfilingAgent [candidate] (78.749 ms) : 0, 78749
Profiling [baseline] (76.955 ms) : 0, 76955
Profiling [candidate] (78.773 ms) : 0, 78773
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.20.0-SNAPSHOT~3ec9b67b26, baseline=1.20.0-SNAPSHOT~140e46f3c2

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (994.368 ms) : 0, 994368
Total [baseline] (9.174 s) : 0, 9174070
Agent [candidate] (988.795 ms) : 0, 988795
Total [candidate] (9.169 s) : 0, 9169044
section appsec
Agent [baseline] (1.073 s) : 0, 1073492
Total [baseline] (9.26 s) : 0, 9259775
Agent [candidate] (1.079 s) : 0, 1079409
Total [candidate] (9.327 s) : 0, 9327461
section iast
Agent [baseline] (1.098 s) : 0, 1098214
Total [baseline] (9.407 s) : 0, 9407100
Agent [candidate] (1.091 s) : 0, 1091165
Total [candidate] (9.444 s) : 0, 9444483
section profiling
Agent [baseline] (1.16 s) : 0, 1159671
Total [baseline] (9.441 s) : 0, 9441472
Agent [candidate] (1.161 s) : 0, 1161031
Total [candidate] (9.465 s) : 0, 9464888
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 994.368 ms -
Agent appsec 1.073 s 79.125 ms (8.0%)
Agent iast 1.098 s 103.846 ms (10.4%)
Agent profiling 1.16 s 165.303 ms (16.6%)
Total tracing 9.174 s -
Total appsec 9.26 s 85.705 ms (0.9%)
Total iast 9.407 s 233.03 ms (2.5%)
Total profiling 9.441 s 267.402 ms (2.9%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 988.795 ms -
Agent appsec 1.079 s 90.614 ms (9.2%)
Agent iast 1.091 s 102.37 ms (10.4%)
Agent profiling 1.161 s 172.236 ms (17.4%)
Total tracing 9.169 s -
Total appsec 9.327 s 158.417 ms (1.7%)
Total iast 9.444 s 275.439 ms (3.0%)
Total profiling 9.465 s 295.844 ms (3.2%)
gantt
    title petclinic - break down per module: candidate=1.20.0-SNAPSHOT~3ec9b67b26, baseline=1.20.0-SNAPSHOT~140e46f3c2

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (616.933 ms) : 0, 616933
BytebuddyAgent [candidate] (612.867 ms) : 0, 612867
GlobalTracer [baseline] (286.347 ms) : 0, 286347
GlobalTracer [candidate] (284.602 ms) : 0, 284602
AppSec [baseline] (49.966 ms) : 0, 49966
AppSec [candidate] (50.367 ms) : 0, 50367
Remote Config [baseline] (674.23 µs) : 0, 674
Remote Config [candidate] (659.819 µs) : 0, 660
Telemetry [baseline] (6.008 ms) : 0, 6008
Telemetry [candidate] (5.958 ms) : 0, 5958
section appsec
BytebuddyAgent [baseline] (613.113 ms) : 0, 613113
BytebuddyAgent [candidate] (616.343 ms) : 0, 616343
GlobalTracer [baseline] (284.458 ms) : 0, 284458
GlobalTracer [candidate] (286.531 ms) : 0, 286531
AppSec [baseline] (135.174 ms) : 0, 135174
AppSec [candidate] (135.583 ms) : 0, 135583
Remote Config [baseline] (728.956 µs) : 0, 729
Remote Config [candidate] (721.468 µs) : 0, 721
Telemetry [baseline] (5.794 ms) : 0, 5794
Telemetry [candidate] (5.773 ms) : 0, 5773
section iast
BytebuddyAgent [baseline] (724.33 ms) : 0, 724330
BytebuddyAgent [candidate] (718.807 ms) : 0, 718807
GlobalTracer [baseline] (272.377 ms) : 0, 272377
GlobalTracer [candidate] (270.99 ms) : 0, 270990
AppSec [baseline] (46.652 ms) : 0, 46652
AppSec [candidate] (46.812 ms) : 0, 46812
Remote Config [baseline] (582.492 µs) : 0, 582
Remote Config [candidate] (562.994 µs) : 0, 563
Telemetry [baseline] (5.731 ms) : 0, 5731
Telemetry [candidate] (5.716 ms) : 0, 5716
IAST [baseline] (14.118 ms) : 0, 14118
IAST [candidate] (14.019 ms) : 0, 14019
section profiling
BytebuddyAgent [baseline] (625.965 ms) : 0, 625965
BytebuddyAgent [candidate] (625.79 ms) : 0, 625790
GlobalTracer [baseline] (347.984 ms) : 0, 347984
GlobalTracer [candidate] (349.48 ms) : 0, 349480
AppSec [baseline] (49.185 ms) : 0, 49185
AppSec [candidate] (49.329 ms) : 0, 49329
Remote Config [baseline] (649.833 µs) : 0, 650
Remote Config [candidate] (641.298 µs) : 0, 641
Telemetry [baseline] (5.998 ms) : 0, 5998
Telemetry [candidate] (5.932 ms) : 0, 5932
ProfilingAgent [baseline] (77.184 ms) : 0, 77184
ProfilingAgent [candidate] (77.137 ms) : 0, 77137
Profiling [baseline] (77.209 ms) : 0, 77209
Profiling [candidate] (77.161 ms) : 0, 77161
Loading

Load

Parameters

Baseline Candidate
commit 1.20.0-SNAPSHOT~140e46f3c2 1.20.0-SNAPSHOT~3ec9b67b26
config baseline candidate
end_time 2023-08-29T10:28:09 2023-08-29T10:46:15
start_time 2023-08-29T10:27:51 2023-08-29T10:45:57
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
variant appsec appsec

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 24 cases.

Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.20.0-SNAPSHOT~3ec9b67b26, baseline=1.20.0-SNAPSHOT~140e46f3c2
    dateFormat X
    axisFormat %s
section baseline
no_agent (360.414 µs) : 341, 380
.   : milestone, 360,
appsec (655.969 µs) : 635, 677
.   : milestone, 656,
iast (455.365 µs) : 435, 476
.   : milestone, 455,
iast_FULL (518.567 µs) : 498, 539
.   : milestone, 519,
iast_INACTIVE (431.363 µs) : 411, 452
.   : milestone, 431,
profiling (433.901 µs) : 413, 455
.   : milestone, 434,
tracing (430.222 µs) : 409, 452
.   : milestone, 430,
section candidate
no_agent (364.054 µs) : 344, 384
.   : milestone, 364,
appsec (663.196 µs) : 642, 684
.   : milestone, 663,
iast (444.527 µs) : 424, 465
.   : milestone, 445,
iast_FULL (513.551 µs) : 493, 534
.   : milestone, 514,
iast_INACTIVE (429.9 µs) : 409, 450
.   : milestone, 430,
profiling (434.297 µs) : 413, 455
.   : milestone, 434,
tracing (428.324 µs) : 408, 449
.   : milestone, 428,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 360.414 µs [340.541 µs, 380.288 µs] -
appsec 655.969 µs [635.358 µs, 676.58 µs] 295.555 µs (82.0%)
iast 455.365 µs [434.803 µs, 475.926 µs] 94.95 µs (26.3%)
iast_FULL 518.567 µs [497.873 µs, 539.26 µs] 158.152 µs (43.9%)
iast_INACTIVE 431.363 µs [411.133 µs, 451.592 µs] 70.948 µs (19.7%)
profiling 433.901 µs [412.66 µs, 455.143 µs] 73.487 µs (20.4%)
tracing 430.222 µs [408.916 µs, 451.529 µs] 69.808 µs (19.4%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 364.054 µs [343.89 µs, 384.217 µs] -
appsec 663.196 µs [641.988 µs, 684.404 µs] 299.142 µs (82.2%)
iast 444.527 µs [424.241 µs, 464.813 µs] 80.473 µs (22.1%)
iast_FULL 513.551 µs [492.993 µs, 534.109 µs] 149.497 µs (41.1%)
iast_INACTIVE 429.9 µs [409.445 µs, 450.355 µs] 65.846 µs (18.1%)
profiling 434.297 µs [413.489 µs, 455.105 µs] 70.243 µs (19.3%)
tracing 428.324 µs [407.931 µs, 448.718 µs] 64.271 µs (17.7%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.20.0-SNAPSHOT~3ec9b67b26, baseline=1.20.0-SNAPSHOT~140e46f3c2
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.329 ms) : 1310, 1348
.   : milestone, 1329,
appsec (1.692 ms) : 1667, 1716
.   : milestone, 1692,
iast (1.47 ms) : 1446, 1494
.   : milestone, 1470,
profiling (1.488 ms) : 1462, 1515
.   : milestone, 1488,
tracing (1.438 ms) : 1414, 1462
.   : milestone, 1438,
section candidate
no_agent (1.339 ms) : 1320, 1358
.   : milestone, 1339,
appsec (1.67 ms) : 1645, 1694
.   : milestone, 1670,
iast (1.456 ms) : 1431, 1480
.   : milestone, 1456,
profiling (1.459 ms) : 1433, 1485
.   : milestone, 1459,
tracing (1.439 ms) : 1415, 1463
.   : milestone, 1439,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.329 ms [1.31 ms, 1.348 ms] -
appsec 1.692 ms [1.667 ms, 1.716 ms] 363.019 µs (27.3%)
iast 1.47 ms [1.446 ms, 1.494 ms] 141.487 µs (10.6%)
profiling 1.488 ms [1.462 ms, 1.515 ms] 159.931 µs (12.0%)
tracing 1.438 ms [1.414 ms, 1.462 ms] 109.515 µs (8.2%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.339 ms [1.32 ms, 1.358 ms] -
appsec 1.67 ms [1.645 ms, 1.694 ms] 331.262 µs (24.7%)
iast 1.456 ms [1.431 ms, 1.48 ms] 117.066 µs (8.7%)
profiling 1.459 ms [1.433 ms, 1.485 ms] 120.233 µs (9.0%)
tracing 1.439 ms [1.415 ms, 1.463 ms] 100.239 µs (7.5%)

Base automatically changed from nikita-tkachenko/compiler-aided-method-lines to master August 24, 2023 14:32
@nikita-tkachenko-datadog
nikita-tkachenko-datadog force-pushed the nikita-tkachenko/encapsulate-ci-vis-api branch from e17cfa3 to 4cb40bb Compare August 25, 2023 09:27
@nikita-tkachenko-datadog
nikita-tkachenko-datadog marked this pull request as ready for review August 25, 2023 12:14

@PerfectSlayer PerfectSlayer 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 for splitting the refactoring in a dedicated PR 🙏

@nikita-tkachenko-datadog
nikita-tkachenko-datadog merged commit 6a3fe4d into master Aug 29, 2023
@nikita-tkachenko-datadog
nikita-tkachenko-datadog deleted the nikita-tkachenko/encapsulate-ci-vis-api branch August 29, 2023 10:55
@github-actions github-actions Bot added this to the 1.20.0 milestone Aug 29, 2023
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: refactoring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants