Skip to content

Add RxJava async result types support for OpenTelemetry annotations#5801

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

Add RxJava async result types support for OpenTelemetry annotations#5801
PerfectSlayer merged 1 commit into
masterfrom
bbujon/otel-annotations-extensions-rxjava

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 RxJava types: Completable, Maybe, Single, Observable, and Flowable.

Motivation

Those are the fourth asynchronous type 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:34
@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~b2481bc94d
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 petclinic
gantt
    title petclinic - global startup overhead: candidate=1.20.0-SNAPSHOT~b2481bc94d, baseline=1.20.0-SNAPSHOT~a879971d94

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (988.107 ms) : 0, 988107
Total [baseline] (9.141 s) : 0, 9140615
Agent [candidate] (994.864 ms) : 0, 994864
Total [candidate] (9.188 s) : 0, 9187864
section appsec
Agent [baseline] (1.072 s) : 0, 1071752
Total [baseline] (9.266 s) : 0, 9266136
Agent [candidate] (1.07 s) : 0, 1070483
Total [candidate] (9.263 s) : 0, 9263326
section iast
Agent [baseline] (1.099 s) : 0, 1098642
Total [baseline] (9.395 s) : 0, 9394897
Agent [candidate] (1.1 s) : 0, 1100309
Total [candidate] (9.41 s) : 0, 9409973
section profiling
Agent [baseline] (1.156 s) : 0, 1156055
Total [baseline] (9.454 s) : 0, 9454241
Agent [candidate] (1.16 s) : 0, 1160166
Total [candidate] (9.425 s) : 0, 9425444
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 988.107 ms -
Agent appsec 1.072 s 83.645 ms (8.5%)
Agent iast 1.099 s 110.536 ms (11.2%)
Agent profiling 1.156 s 167.949 ms (17.0%)
Total tracing 9.141 s -
Total appsec 9.266 s 125.52 ms (1.4%)
Total iast 9.395 s 254.282 ms (2.8%)
Total profiling 9.454 s 313.626 ms (3.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 994.864 ms -
Agent appsec 1.07 s 75.619 ms (7.6%)
Agent iast 1.1 s 105.445 ms (10.6%)
Agent profiling 1.16 s 165.302 ms (16.6%)
Total tracing 9.188 s -
Total appsec 9.263 s 75.462 ms (0.8%)
Total iast 9.41 s 222.109 ms (2.4%)
Total profiling 9.425 s 237.58 ms (2.6%)
gantt
    title petclinic - break down per module: candidate=1.20.0-SNAPSHOT~b2481bc94d, baseline=1.20.0-SNAPSHOT~a879971d94

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (613.081 ms) : 0, 613081
BytebuddyAgent [candidate] (616.773 ms) : 0, 616773
GlobalTracer [baseline] (283.817 ms) : 0, 283817
GlobalTracer [candidate] (286.499 ms) : 0, 286499
AppSec [baseline] (50.214 ms) : 0, 50214
AppSec [candidate] (50.266 ms) : 0, 50266
Remote Config [baseline] (667.698 µs) : 0, 668
Remote Config [candidate] (670.749 µs) : 0, 671
Telemetry [baseline] (6.018 ms) : 0, 6018
Telemetry [candidate] (6.049 ms) : 0, 6049
section appsec
BytebuddyAgent [baseline] (612.402 ms) : 0, 612402
BytebuddyAgent [candidate] (611.667 ms) : 0, 611667
GlobalTracer [baseline] (283.754 ms) : 0, 283754
GlobalTracer [candidate] (283.547 ms) : 0, 283547
AppSec [baseline] (134.809 ms) : 0, 134809
AppSec [candidate] (134.713 ms) : 0, 134713
Remote Config [baseline] (728.955 µs) : 0, 729
Remote Config [candidate] (723.306 µs) : 0, 723
Telemetry [baseline] (5.742 ms) : 0, 5742
Telemetry [candidate] (5.683 ms) : 0, 5683
section iast
BytebuddyAgent [baseline] (724.822 ms) : 0, 724822
BytebuddyAgent [candidate] (724.184 ms) : 0, 724184
GlobalTracer [baseline] (271.874 ms) : 0, 271874
GlobalTracer [candidate] (273.571 ms) : 0, 273571
AppSec [baseline] (46.97 ms) : 0, 46970
AppSec [candidate] (47.36 ms) : 0, 47360
Remote Config [baseline] (571.918 µs) : 0, 572
Remote Config [candidate] (574.597 µs) : 0, 575
Telemetry [baseline] (5.749 ms) : 0, 5749
Telemetry [candidate] (5.801 ms) : 0, 5801
IAST [baseline] (14.082 ms) : 0, 14082
IAST [candidate] (14.288 ms) : 0, 14288
section profiling
ProfilingAgent [baseline] (75.683 ms) : 0, 75683
ProfilingAgent [candidate] (76.714 ms) : 0, 76714
BytebuddyAgent [baseline] (624.61 ms) : 0, 624610
BytebuddyAgent [candidate] (626.266 ms) : 0, 626266
GlobalTracer [baseline] (346.921 ms) : 0, 346921
GlobalTracer [candidate] (348.524 ms) : 0, 348524
AppSec [baseline] (49.258 ms) : 0, 49258
AppSec [candidate] (49.228 ms) : 0, 49228
Remote Config [baseline] (643.408 µs) : 0, 643
Remote Config [candidate] (645.5 µs) : 0, 646
Telemetry [baseline] (6.026 ms) : 0, 6026
Telemetry [candidate] (5.989 ms) : 0, 5989
Profiling [baseline] (75.707 ms) : 0, 75707
Profiling [candidate] (76.738 ms) : 0, 76738
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.20.0-SNAPSHOT~b2481bc94d, baseline=1.20.0-SNAPSHOT~a879971d94

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (993.96 ms) : 0, 993960
Total [baseline] (8.653 s) : 0, 8652684
Agent [candidate] (992.956 ms) : 0, 992956
Total [candidate] (8.623 s) : 0, 8623303
section appsec
Agent [baseline] (1.072 s) : 0, 1071878
Total [baseline] (8.687 s) : 0, 8686911
Agent [candidate] (1.074 s) : 0, 1073772
Total [candidate] (8.715 s) : 0, 8715277
section iast
Agent [baseline] (1.098 s) : 0, 1098262
Total [baseline] (9.188 s) : 0, 9187517
Agent [candidate] (1.1 s) : 0, 1100443
Total [candidate] (9.144 s) : 0, 9143727
section profiling
Agent [baseline] (1.158 s) : 0, 1158322
Total [baseline] (8.852 s) : 0, 8851909
Agent [candidate] (1.159 s) : 0, 1159351
Total [candidate] (8.823 s) : 0, 8823351
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 993.96 ms -
Agent appsec 1.072 s 77.918 ms (7.8%)
Agent iast 1.098 s 104.302 ms (10.5%)
Agent profiling 1.158 s 164.362 ms (16.5%)
Total tracing 8.653 s -
Total appsec 8.687 s 34.227 ms (0.4%)
Total iast 9.188 s 534.832 ms (6.2%)
Total profiling 8.852 s 199.225 ms (2.3%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 992.956 ms -
Agent appsec 1.074 s 80.815 ms (8.1%)
Agent iast 1.1 s 107.486 ms (10.8%)
Agent profiling 1.159 s 166.395 ms (16.8%)
Total tracing 8.623 s -
Total appsec 8.715 s 91.973 ms (1.1%)
Total iast 9.144 s 520.424 ms (6.0%)
Total profiling 8.823 s 200.048 ms (2.3%)
gantt
    title insecure-bank - break down per module: candidate=1.20.0-SNAPSHOT~b2481bc94d, baseline=1.20.0-SNAPSHOT~a879971d94

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (616.292 ms) : 0, 616292
BytebuddyAgent [candidate] (615.517 ms) : 0, 615517
GlobalTracer [baseline] (286.112 ms) : 0, 286112
GlobalTracer [candidate] (285.819 ms) : 0, 285819
AppSec [baseline] (50.323 ms) : 0, 50323
AppSec [candidate] (50.557 ms) : 0, 50557
Remote Config [baseline] (671.188 µs) : 0, 671
Remote Config [candidate] (670.077 µs) : 0, 670
Telemetry [baseline] (6.063 ms) : 0, 6063
Telemetry [candidate] (5.988 ms) : 0, 5988
section appsec
BytebuddyAgent [baseline] (612.013 ms) : 0, 612013
BytebuddyAgent [candidate] (613.713 ms) : 0, 613713
GlobalTracer [baseline] (284.024 ms) : 0, 284024
GlobalTracer [candidate] (285.005 ms) : 0, 285005
AppSec [baseline] (135.107 ms) : 0, 135107
AppSec [candidate] (134.404 ms) : 0, 134404
Remote Config [baseline] (722.147 µs) : 0, 722
Remote Config [candidate] (727.676 µs) : 0, 728
Telemetry [baseline] (5.717 ms) : 0, 5717
Telemetry [candidate] (5.713 ms) : 0, 5713
section iast
BytebuddyAgent [baseline] (724.652 ms) : 0, 724652
BytebuddyAgent [candidate] (725.772 ms) : 0, 725772
GlobalTracer [baseline] (270.948 ms) : 0, 270948
GlobalTracer [candidate] (272.472 ms) : 0, 272472
AppSec [baseline] (47.482 ms) : 0, 47482
AppSec [candidate] (47.197 ms) : 0, 47197
Remote Config [baseline] (588.648 µs) : 0, 589
Remote Config [candidate] (573.41 µs) : 0, 573
Telemetry [baseline] (5.797 ms) : 0, 5797
Telemetry [candidate] (5.735 ms) : 0, 5735
IAST [baseline] (14.247 ms) : 0, 14247
IAST [candidate] (14.136 ms) : 0, 14136
section profiling
ProfilingAgent [baseline] (78.489 ms) : 0, 78489
ProfilingAgent [candidate] (77.942 ms) : 0, 77942
BytebuddyAgent [baseline] (624.484 ms) : 0, 624484
BytebuddyAgent [candidate] (625.455 ms) : 0, 625455
GlobalTracer [baseline] (347.124 ms) : 0, 347124
GlobalTracer [candidate] (347.864 ms) : 0, 347864
AppSec [baseline] (48.821 ms) : 0, 48821
AppSec [candidate] (48.819 ms) : 0, 48819
Remote Config [baseline] (646.588 µs) : 0, 647
Remote Config [candidate] (639.382 µs) : 0, 639
Telemetry [baseline] (6.004 ms) : 0, 6004
Telemetry [candidate] (5.946 ms) : 0, 5946
Profiling [baseline] (78.513 ms) : 0, 78513
Profiling [candidate] (77.966 ms) : 0, 77966
Loading

Load

Parameters

Baseline Candidate
commit 1.20.0-SNAPSHOT~a879971d94 1.20.0-SNAPSHOT~b2481bc94d
config baseline candidate
end_time 2023-08-29T12:08:38 2023-08-29T12:26:37
start_time 2023-08-29T12:08:20 2023-08-29T12:26:20
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 petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.20.0-SNAPSHOT~b2481bc94d, baseline=1.20.0-SNAPSHOT~a879971d94
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.328 ms) : 1309, 1347
.   : milestone, 1328,
appsec (1.653 ms) : 1629, 1677
.   : milestone, 1653,
iast (1.46 ms) : 1436, 1483
.   : milestone, 1460,
profiling (1.46 ms) : 1435, 1485
.   : milestone, 1460,
tracing (1.445 ms) : 1421, 1469
.   : milestone, 1445,
section candidate
no_agent (1.326 ms) : 1307, 1346
.   : milestone, 1326,
appsec (1.639 ms) : 1615, 1664
.   : milestone, 1639,
iast (1.443 ms) : 1419, 1467
.   : milestone, 1443,
profiling (1.477 ms) : 1451, 1503
.   : milestone, 1477,
tracing (1.442 ms) : 1418, 1466
.   : milestone, 1442,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.328 ms [1.309 ms, 1.347 ms] -
appsec 1.653 ms [1.629 ms, 1.677 ms] 325.06 µs (24.5%)
iast 1.46 ms [1.436 ms, 1.483 ms] 131.554 µs (9.9%)
profiling 1.46 ms [1.435 ms, 1.485 ms] 131.826 µs (9.9%)
tracing 1.445 ms [1.421 ms, 1.469 ms] 116.435 µs (8.8%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.326 ms [1.307 ms, 1.346 ms] -
appsec 1.639 ms [1.615 ms, 1.664 ms] 312.891 µs (23.6%)
iast 1.443 ms [1.419 ms, 1.467 ms] 116.824 µs (8.8%)
profiling 1.477 ms [1.451 ms, 1.503 ms] 150.566 µs (11.4%)
tracing 1.442 ms [1.418 ms, 1.466 ms] 115.385 µs (8.7%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.20.0-SNAPSHOT~b2481bc94d, baseline=1.20.0-SNAPSHOT~a879971d94
    dateFormat X
    axisFormat %s
section baseline
no_agent (355.373 µs) : 336, 375
.   : milestone, 355,
appsec (653.159 µs) : 633, 673
.   : milestone, 653,
iast (444.006 µs) : 423, 465
.   : milestone, 444,
iast_FULL (512.64 µs) : 492, 533
.   : milestone, 513,
iast_INACTIVE (428.009 µs) : 407, 449
.   : milestone, 428,
profiling (430.04 µs) : 409, 451
.   : milestone, 430,
tracing (420.757 µs) : 400, 441
.   : milestone, 421,
section candidate
no_agent (358.961 µs) : 339, 379
.   : milestone, 359,
appsec (654.903 µs) : 634, 675
.   : milestone, 655,
iast (447.027 µs) : 426, 468
.   : milestone, 447,
iast_FULL (514.248 µs) : 494, 535
.   : milestone, 514,
iast_INACTIVE (425.88 µs) : 405, 446
.   : milestone, 426,
profiling (429.774 µs) : 409, 450
.   : milestone, 430,
tracing (425.12 µs) : 404, 446
.   : milestone, 425,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 355.373 µs [335.695 µs, 375.051 µs] -
appsec 653.159 µs [632.86 µs, 673.457 µs] 297.785 µs (83.8%)
iast 444.006 µs [423.301 µs, 464.712 µs] 88.633 µs (24.9%)
iast_FULL 512.64 µs [492.153 µs, 533.128 µs] 157.267 µs (44.3%)
iast_INACTIVE 428.009 µs [406.733 µs, 449.286 µs] 72.636 µs (20.4%)
profiling 430.04 µs [408.921 µs, 451.158 µs] 74.666 µs (21.0%)
tracing 420.757 µs [400.415 µs, 441.099 µs] 65.384 µs (18.4%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 358.961 µs [338.893 µs, 379.03 µs] -
appsec 654.903 µs [634.324 µs, 675.483 µs] 295.942 µs (82.4%)
iast 447.027 µs [426.218 µs, 467.835 µs] 88.065 µs (24.5%)
iast_FULL 514.248 µs [493.587 µs, 534.91 µs] 155.287 µs (43.3%)
iast_INACTIVE 425.88 µs [405.456 µs, 446.303 µs] 66.918 µs (18.6%)
profiling 429.774 µs [409.136 µs, 450.412 µs] 70.813 µs (19.7%)
tracing 425.12 µs [404.457 µs, 445.782 µs] 66.158 µs (18.4%)

@PerfectSlayer
PerfectSlayer merged commit 88b4a36 into master Aug 30, 2023
@PerfectSlayer
PerfectSlayer deleted the bbujon/otel-annotations-extensions-rxjava branch August 30, 2023 06:55
@github-actions github-actions Bot added this to the 1.20.0 milestone Aug 30, 2023
@bric3 bric3 added the tag: concurrency Virtual Threads, Coroutines, Async, RX, Executors label Feb 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

inst: opentelemetry OpenTelemetry instrumentation tag: concurrency Virtual Threads, Coroutines, Async, RX, Executors type: feature Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants