Skip to content

Add Reactor async result types support for OpenTelemetry annotations#5800

Merged
PerfectSlayer merged 1 commit into
masterfrom
bbujon/otel-annotations-extensions-reactor
Aug 30, 2023
Merged

Add Reactor async result types support for OpenTelemetry annotations#5800
PerfectSlayer merged 1 commit into
masterfrom
bbujon/otel-annotations-extensions-reactor

Conversation

@PerfectSlayer

Copy link
Copy Markdown
Contributor

What Does This Do

This features is a follow up of #5593 and #5737.
This brings the support for Reactor types: Mono and Flux.

Motivation

Those are the third asynchronous types according the most used libraries.

Additional Notes

@PerfectSlayer PerfectSlayer added type: feature Enhancements and improvements inst: opentelemetry OpenTelemetry instrumentation labels Aug 29, 2023
@PerfectSlayer
PerfectSlayer requested a review from a team as a code owner August 29, 2023 11:31
@pr-commenter

pr-commenter Bot commented Aug 29, 2023

Copy link
Copy Markdown

Benchmarks

Startup

Parameters

Baseline Candidate
commit 1.20.0-SNAPSHOT~a879971d94 1.20.0-SNAPSHOT~2bf4ef6b40
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~2bf4ef6b40, baseline=1.20.0-SNAPSHOT~a879971d94

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (988.194 ms) : 0, 988194
Total [baseline] (8.649 s) : 0, 8649279
Agent [candidate] (1.002 s) : 0, 1002090
Total [candidate] (8.686 s) : 0, 8686378
section appsec
Agent [baseline] (1.078 s) : 0, 1077580
Total [baseline] (8.715 s) : 0, 8714648
Agent [candidate] (1.073 s) : 0, 1073355
Total [candidate] (8.713 s) : 0, 8713242
section iast
Agent [baseline] (1.093 s) : 0, 1092827
Total [baseline] (9.181 s) : 0, 9180824
Agent [candidate] (1.092 s) : 0, 1091903
Total [candidate] (9.117 s) : 0, 9116912
section profiling
Agent [baseline] (1.163 s) : 0, 1162512
Total [baseline] (8.853 s) : 0, 8852925
Agent [candidate] (1.157 s) : 0, 1156575
Total [candidate] (8.871 s) : 0, 8871021
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 988.194 ms -
Agent appsec 1.078 s 89.386 ms (9.0%)
Agent iast 1.093 s 104.632 ms (10.6%)
Agent profiling 1.163 s 174.318 ms (17.6%)
Total tracing 8.649 s -
Total appsec 8.715 s 65.369 ms (0.8%)
Total iast 9.181 s 531.544 ms (6.1%)
Total profiling 8.853 s 203.645 ms (2.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.002 s -
Agent appsec 1.073 s 71.265 ms (7.1%)
Agent iast 1.092 s 89.812 ms (9.0%)
Agent profiling 1.157 s 154.485 ms (15.4%)
Total tracing 8.686 s -
Total appsec 8.713 s 26.865 ms (0.3%)
Total iast 9.117 s 430.535 ms (5.0%)
Total profiling 8.871 s 184.643 ms (2.1%)
gantt
    title insecure-bank - break down per module: candidate=1.20.0-SNAPSHOT~2bf4ef6b40, baseline=1.20.0-SNAPSHOT~a879971d94

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (612.536 ms) : 0, 612536
BytebuddyAgent [candidate] (621.199 ms) : 0, 621199
GlobalTracer [baseline] (284.499 ms) : 0, 284499
GlobalTracer [candidate] (289.033 ms) : 0, 289033
AppSec [baseline] (50.04 ms) : 0, 50040
AppSec [candidate] (50.355 ms) : 0, 50355
Remote Config [baseline] (676.402 µs) : 0, 676
Remote Config [candidate] (668.966 µs) : 0, 669
Telemetry [baseline] (6.045 ms) : 0, 6045
Telemetry [candidate] (6.078 ms) : 0, 6078
section appsec
BytebuddyAgent [baseline] (615.38 ms) : 0, 615380
BytebuddyAgent [candidate] (612.469 ms) : 0, 612469
GlobalTracer [baseline] (285.874 ms) : 0, 285874
GlobalTracer [candidate] (284.956 ms) : 0, 284956
AppSec [baseline] (135.38 ms) : 0, 135380
AppSec [candidate] (135.225 ms) : 0, 135225
Remote Config [baseline] (726.719 µs) : 0, 727
Remote Config [candidate] (726.087 µs) : 0, 726
Telemetry [baseline] (5.765 ms) : 0, 5765
Telemetry [candidate] (5.692 ms) : 0, 5692
section iast
BytebuddyAgent [baseline] (719.345 ms) : 0, 719345
BytebuddyAgent [candidate] (718.871 ms) : 0, 718871
GlobalTracer [baseline] (271.687 ms) : 0, 271687
GlobalTracer [candidate] (271.623 ms) : 0, 271623
AppSec [baseline] (46.848 ms) : 0, 46848
AppSec [candidate] (46.621 ms) : 0, 46621
Remote Config [baseline] (581.763 µs) : 0, 582
Remote Config [candidate] (572.872 µs) : 0, 573
Telemetry [baseline] (5.811 ms) : 0, 5811
Telemetry [candidate] (5.718 ms) : 0, 5718
IAST [baseline] (14.235 ms) : 0, 14235
IAST [candidate] (14.124 ms) : 0, 14124
section profiling
BytebuddyAgent [baseline] (628.387 ms) : 0, 628387
BytebuddyAgent [candidate] (624.344 ms) : 0, 624344
GlobalTracer [baseline] (348.939 ms) : 0, 348939
GlobalTracer [candidate] (348.059 ms) : 0, 348059
AppSec [baseline] (49.006 ms) : 0, 49006
AppSec [candidate] (48.803 ms) : 0, 48803
Remote Config [baseline] (641.976 µs) : 0, 642
Remote Config [candidate] (638.583 µs) : 0, 639
Telemetry [baseline] (5.999 ms) : 0, 5999
Telemetry [candidate] (5.966 ms) : 0, 5966
ProfilingAgent [baseline] (76.331 ms) : 0, 76331
ProfilingAgent [candidate] (75.947 ms) : 0, 75947
Profiling [baseline] (76.355 ms) : 0, 76355
Profiling [candidate] (75.971 ms) : 0, 75971
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.20.0-SNAPSHOT~2bf4ef6b40, baseline=1.20.0-SNAPSHOT~a879971d94

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (992.766 ms) : 0, 992766
Total [baseline] (9.178 s) : 0, 9178268
Agent [candidate] (988.079 ms) : 0, 988079
Total [candidate] (9.155 s) : 0, 9155212
section appsec
Agent [baseline] (1.072 s) : 0, 1072329
Total [baseline] (9.26 s) : 0, 9260302
Agent [candidate] (1.078 s) : 0, 1077994
Total [candidate] (9.324 s) : 0, 9324279
section iast
Agent [baseline] (1.094 s) : 0, 1093868
Total [baseline] (9.402 s) : 0, 9402276
Agent [candidate] (1.091 s) : 0, 1091228
Total [candidate] (9.393 s) : 0, 9393389
section profiling
Agent [baseline] (1.155 s) : 0, 1154617
Total [baseline] (9.424 s) : 0, 9424399
Agent [candidate] (1.158 s) : 0, 1157937
Total [candidate] (9.432 s) : 0, 9432072
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 992.766 ms -
Agent appsec 1.072 s 79.563 ms (8.0%)
Agent iast 1.094 s 101.102 ms (10.2%)
Agent profiling 1.155 s 161.851 ms (16.3%)
Total tracing 9.178 s -
Total appsec 9.26 s 82.034 ms (0.9%)
Total iast 9.402 s 224.007 ms (2.4%)
Total profiling 9.424 s 246.131 ms (2.7%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 988.079 ms -
Agent appsec 1.078 s 89.914 ms (9.1%)
Agent iast 1.091 s 103.148 ms (10.4%)
Agent profiling 1.158 s 169.858 ms (17.2%)
Total tracing 9.155 s -
Total appsec 9.324 s 169.067 ms (1.8%)
Total iast 9.393 s 238.177 ms (2.6%)
Total profiling 9.432 s 276.86 ms (3.0%)
gantt
    title petclinic - break down per module: candidate=1.20.0-SNAPSHOT~2bf4ef6b40, baseline=1.20.0-SNAPSHOT~a879971d94

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (616.2 ms) : 0, 616200
BytebuddyAgent [candidate] (612.523 ms) : 0, 612523
GlobalTracer [baseline] (285.423 ms) : 0, 285423
GlobalTracer [candidate] (284.548 ms) : 0, 284548
AppSec [baseline] (49.905 ms) : 0, 49905
AppSec [candidate] (50.079 ms) : 0, 50079
Remote Config [baseline] (664.166 µs) : 0, 664
Remote Config [candidate] (665.945 µs) : 0, 666
Telemetry [baseline] (6.032 ms) : 0, 6032
Telemetry [candidate] (6.001 ms) : 0, 6001
section appsec
BytebuddyAgent [baseline] (612.283 ms) : 0, 612283
BytebuddyAgent [candidate] (616.275 ms) : 0, 616275
GlobalTracer [baseline] (283.912 ms) : 0, 283912
GlobalTracer [candidate] (285.906 ms) : 0, 285906
AppSec [baseline] (135.327 ms) : 0, 135327
AppSec [candidate] (134.852 ms) : 0, 134852
Remote Config [baseline] (725.034 µs) : 0, 725
Remote Config [candidate] (713.165 µs) : 0, 713
Telemetry [baseline] (5.723 ms) : 0, 5723
Telemetry [candidate] (5.744 ms) : 0, 5744
section iast
BytebuddyAgent [baseline] (722.044 ms) : 0, 722044
BytebuddyAgent [candidate] (718.548 ms) : 0, 718548
GlobalTracer [baseline] (269.91 ms) : 0, 269910
GlobalTracer [candidate] (271.049 ms) : 0, 271049
AppSec [baseline] (46.97 ms) : 0, 46970
AppSec [candidate] (46.976 ms) : 0, 46976
Remote Config [baseline] (587.83 µs) : 0, 588
Remote Config [candidate] (582.077 µs) : 0, 582
Telemetry [baseline] (5.734 ms) : 0, 5734
Telemetry [candidate] (5.701 ms) : 0, 5701
IAST [baseline] (14.041 ms) : 0, 14041
IAST [candidate] (14.082 ms) : 0, 14082
section profiling
BytebuddyAgent [baseline] (623.683 ms) : 0, 623683
BytebuddyAgent [candidate] (624.974 ms) : 0, 624974
GlobalTracer [baseline] (346.174 ms) : 0, 346174
GlobalTracer [candidate] (348.292 ms) : 0, 348292
AppSec [baseline] (49.089 ms) : 0, 49089
AppSec [candidate] (48.91 ms) : 0, 48910
Remote Config [baseline] (658.025 µs) : 0, 658
Remote Config [candidate] (639.157 µs) : 0, 639
Telemetry [baseline] (5.992 ms) : 0, 5992
Telemetry [candidate] (5.952 ms) : 0, 5952
ProfilingAgent [baseline] (76.4 ms) : 0, 76400
ProfilingAgent [candidate] (76.434 ms) : 0, 76434
Profiling [baseline] (76.425 ms) : 0, 76425
Profiling [candidate] (76.458 ms) : 0, 76458
Loading

Load

Parameters

Baseline Candidate
commit 1.20.0-SNAPSHOT~a879971d94 1.20.0-SNAPSHOT~2bf4ef6b40
config baseline candidate
end_time 2023-08-29T12:07:16 2023-08-29T12:25:18
start_time 2023-08-29T12:06:59 2023-08-29T12:25:01
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~2bf4ef6b40, baseline=1.20.0-SNAPSHOT~a879971d94
    dateFormat X
    axisFormat %s
section baseline
no_agent (364.12 µs) : 344, 384
.   : milestone, 364,
appsec (653.271 µs) : 633, 674
.   : milestone, 653,
iast (451.071 µs) : 430, 472
.   : milestone, 451,
iast_FULL (515.03 µs) : 494, 536
.   : milestone, 515,
iast_INACTIVE (429.97 µs) : 409, 451
.   : milestone, 430,
profiling (428.768 µs) : 408, 449
.   : milestone, 429,
tracing (426.047 µs) : 406, 447
.   : milestone, 426,
section candidate
no_agent (358.654 µs) : 339, 378
.   : milestone, 359,
appsec (665.285 µs) : 644, 686
.   : milestone, 665,
iast (449.649 µs) : 429, 470
.   : milestone, 450,
iast_FULL (519.684 µs) : 499, 540
.   : milestone, 520,
iast_INACTIVE (428.026 µs) : 407, 449
.   : milestone, 428,
profiling (434.562 µs) : 414, 455
.   : milestone, 435,
tracing (430.287 µs) : 409, 451
.   : milestone, 430,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 364.12 µs [344.281 µs, 383.959 µs] -
appsec 653.271 µs [632.704 µs, 673.838 µs] 289.151 µs (79.4%)
iast 451.071 µs [430.299 µs, 471.843 µs] 86.951 µs (23.9%)
iast_FULL 515.03 µs [494.494 µs, 535.566 µs] 150.911 µs (41.4%)
iast_INACTIVE 429.97 µs [408.885 µs, 451.054 µs] 65.85 µs (18.1%)
profiling 428.768 µs [408.096 µs, 449.44 µs] 64.648 µs (17.8%)
tracing 426.047 µs [405.558 µs, 446.535 µs] 61.927 µs (17.0%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 358.654 µs [338.88 µs, 378.428 µs] -
appsec 665.285 µs [644.113 µs, 686.457 µs] 306.631 µs (85.5%)
iast 449.649 µs [429.102 µs, 470.196 µs] 90.995 µs (25.4%)
iast_FULL 519.684 µs [498.976 µs, 540.391 µs] 161.03 µs (44.9%)
iast_INACTIVE 428.026 µs [407.225 µs, 448.827 µs] 69.372 µs (19.3%)
profiling 434.562 µs [413.744 µs, 455.381 µs] 75.909 µs (21.2%)
tracing 430.287 µs [409.329 µs, 451.245 µs] 71.634 µs (20.0%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.20.0-SNAPSHOT~2bf4ef6b40, baseline=1.20.0-SNAPSHOT~a879971d94
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.328 ms) : 1309, 1347
.   : milestone, 1328,
appsec (1.678 ms) : 1653, 1703
.   : milestone, 1678,
iast (1.441 ms) : 1417, 1464
.   : milestone, 1441,
profiling (1.46 ms) : 1435, 1486
.   : milestone, 1460,
tracing (1.443 ms) : 1418, 1467
.   : milestone, 1443,
section candidate
no_agent (1.339 ms) : 1321, 1358
.   : milestone, 1339,
appsec (1.684 ms) : 1660, 1708
.   : milestone, 1684,
iast (1.431 ms) : 1407, 1455
.   : milestone, 1431,
profiling (1.446 ms) : 1421, 1471
.   : milestone, 1446,
tracing (1.444 ms) : 1420, 1468
.   : milestone, 1444,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.328 ms [1.309 ms, 1.347 ms] -
appsec 1.678 ms [1.653 ms, 1.703 ms] 349.677 µs (26.3%)
iast 1.441 ms [1.417 ms, 1.464 ms] 112.351 µs (8.5%)
profiling 1.46 ms [1.435 ms, 1.486 ms] 132.193 µs (10.0%)
tracing 1.443 ms [1.418 ms, 1.467 ms] 114.669 µs (8.6%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.339 ms [1.321 ms, 1.358 ms] -
appsec 1.684 ms [1.66 ms, 1.708 ms] 344.661 µs (25.7%)
iast 1.431 ms [1.407 ms, 1.455 ms] 91.664 µs (6.8%)
profiling 1.446 ms [1.421 ms, 1.471 ms] 106.873 µs (8.0%)
tracing 1.444 ms [1.42 ms, 1.468 ms] 104.482 µs (7.8%)

@PerfectSlayer
PerfectSlayer merged commit b2c7d02 into master Aug 30, 2023
@PerfectSlayer
PerfectSlayer deleted the bbujon/otel-annotations-extensions-reactor branch August 30, 2023 11:45
@github-actions github-actions Bot added this to the 1.20.0 milestone Aug 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

inst: opentelemetry OpenTelemetry instrumentation type: feature Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants