Skip to content

Add Guava async result type support for OpenTelemetry annotations#5799

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

Add Guava async result type support for OpenTelemetry annotations#5799
PerfectSlayer merged 1 commit into
masterfrom
bbujon/otel-annotations-extensions-guava

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 Guava type: ListenableFuture.

Motivation

This is the second 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:27
@PerfectSlayer
PerfectSlayer requested review from am312 and ygree August 29, 2023 11:27
@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~716b0d79c5
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~716b0d79c5, baseline=1.20.0-SNAPSHOT~a879971d94

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (987.368 ms) : 0, 987368
Total [baseline] (9.208 s) : 0, 9207606
Agent [candidate] (988.827 ms) : 0, 988827
Total [candidate] (9.148 s) : 0, 9147653
section appsec
Agent [baseline] (1.071 s) : 0, 1071323
Total [baseline] (9.259 s) : 0, 9259281
Agent [candidate] (1.073 s) : 0, 1072947
Total [candidate] (9.236 s) : 0, 9235737
section iast
Agent [baseline] (1.097 s) : 0, 1096509
Total [baseline] (9.412 s) : 0, 9411781
Agent [candidate] (1.093 s) : 0, 1092791
Total [candidate] (9.437 s) : 0, 9437164
section profiling
Agent [baseline] (1.156 s) : 0, 1156393
Total [baseline] (9.433 s) : 0, 9433368
Agent [candidate] (1.159 s) : 0, 1159199
Total [candidate] (9.436 s) : 0, 9436315
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 987.368 ms -
Agent appsec 1.071 s 83.956 ms (8.5%)
Agent iast 1.097 s 109.142 ms (11.1%)
Agent profiling 1.156 s 169.025 ms (17.1%)
Total tracing 9.208 s -
Total appsec 9.259 s 51.675 ms (0.6%)
Total iast 9.412 s 204.174 ms (2.2%)
Total profiling 9.433 s 225.762 ms (2.5%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 988.827 ms -
Agent appsec 1.073 s 84.121 ms (8.5%)
Agent iast 1.093 s 103.965 ms (10.5%)
Agent profiling 1.159 s 170.372 ms (17.2%)
Total tracing 9.148 s -
Total appsec 9.236 s 88.084 ms (1.0%)
Total iast 9.437 s 289.511 ms (3.2%)
Total profiling 9.436 s 288.662 ms (3.2%)
gantt
    title petclinic - break down per module: candidate=1.20.0-SNAPSHOT~716b0d79c5, baseline=1.20.0-SNAPSHOT~a879971d94

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (612.477 ms) : 0, 612477
BytebuddyAgent [candidate] (613.125 ms) : 0, 613125
GlobalTracer [baseline] (283.598 ms) : 0, 283598
GlobalTracer [candidate] (284.518 ms) : 0, 284518
AppSec [baseline] (50.238 ms) : 0, 50238
AppSec [candidate] (50.142 ms) : 0, 50142
Remote Config [baseline] (663.501 µs) : 0, 664
Remote Config [candidate] (661.523 µs) : 0, 662
Telemetry [baseline] (5.974 ms) : 0, 5974
Telemetry [candidate] (5.936 ms) : 0, 5936
section appsec
BytebuddyAgent [baseline] (611.898 ms) : 0, 611898
BytebuddyAgent [candidate] (612.949 ms) : 0, 612949
GlobalTracer [baseline] (283.521 ms) : 0, 283521
GlobalTracer [candidate] (284.196 ms) : 0, 284196
AppSec [baseline] (135.232 ms) : 0, 135232
AppSec [candidate] (135.021 ms) : 0, 135021
Remote Config [baseline] (725.476 µs) : 0, 725
Remote Config [candidate] (734.843 µs) : 0, 735
Telemetry [baseline] (5.708 ms) : 0, 5708
Telemetry [candidate] (5.727 ms) : 0, 5727
section iast
BytebuddyAgent [baseline] (723.432 ms) : 0, 723432
BytebuddyAgent [candidate] (720.209 ms) : 0, 720209
GlobalTracer [baseline] (271.12 ms) : 0, 271120
GlobalTracer [candidate] (271.193 ms) : 0, 271193
AppSec [baseline] (47.036 ms) : 0, 47036
AppSec [candidate] (46.663 ms) : 0, 46663
IAST [baseline] (14.043 ms) : 0, 14043
IAST [candidate] (14.107 ms) : 0, 14107
Remote Config [baseline] (570.024 µs) : 0, 570
Remote Config [candidate] (571.217 µs) : 0, 571
Telemetry [baseline] (5.709 ms) : 0, 5709
Telemetry [candidate] (5.724 ms) : 0, 5724
section profiling
BytebuddyAgent [baseline] (623.617 ms) : 0, 623617
BytebuddyAgent [candidate] (625.419 ms) : 0, 625419
GlobalTracer [baseline] (346.256 ms) : 0, 346256
GlobalTracer [candidate] (347.446 ms) : 0, 347446
AppSec [baseline] (48.856 ms) : 0, 48856
AppSec [candidate] (48.894 ms) : 0, 48894
Remote Config [baseline] (641.461 µs) : 0, 641
Remote Config [candidate] (651.421 µs) : 0, 651
Telemetry [baseline] (5.915 ms) : 0, 5915
Telemetry [candidate] (6.029 ms) : 0, 6029
ProfilingAgent [baseline] (78.416 ms) : 0, 78416
ProfilingAgent [candidate] (77.844 ms) : 0, 77844
Profiling [baseline] (78.441 ms) : 0, 78441
Profiling [candidate] (77.869 ms) : 0, 77869
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.20.0-SNAPSHOT~716b0d79c5, baseline=1.20.0-SNAPSHOT~a879971d94

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (992.521 ms) : 0, 992521
Total [baseline] (8.638 s) : 0, 8638157
Agent [candidate] (993.826 ms) : 0, 993826
Total [candidate] (8.641 s) : 0, 8640687
section appsec
Agent [baseline] (1.08 s) : 0, 1079668
Total [baseline] (8.745 s) : 0, 8745445
Agent [candidate] (1.073 s) : 0, 1072960
Total [candidate] (8.688 s) : 0, 8688356
section iast
Agent [baseline] (1.092 s) : 0, 1091601
Total [baseline] (9.158 s) : 0, 9158105
Agent [candidate] (1.093 s) : 0, 1092948
Total [candidate] (9.158 s) : 0, 9157763
section profiling
Agent [baseline] (1.156 s) : 0, 1155508
Total [baseline] (8.862 s) : 0, 8861612
Agent [candidate] (1.158 s) : 0, 1157743
Total [candidate] (8.875 s) : 0, 8875247
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 992.521 ms -
Agent appsec 1.08 s 87.148 ms (8.8%)
Agent iast 1.092 s 99.08 ms (10.0%)
Agent profiling 1.156 s 162.988 ms (16.4%)
Total tracing 8.638 s -
Total appsec 8.745 s 107.288 ms (1.2%)
Total iast 9.158 s 519.948 ms (6.0%)
Total profiling 8.862 s 223.455 ms (2.6%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 993.826 ms -
Agent appsec 1.073 s 79.134 ms (8.0%)
Agent iast 1.093 s 99.122 ms (10.0%)
Agent profiling 1.158 s 163.917 ms (16.5%)
Total tracing 8.641 s -
Total appsec 8.688 s 47.668 ms (0.6%)
Total iast 9.158 s 517.076 ms (6.0%)
Total profiling 8.875 s 234.559 ms (2.7%)
gantt
    title insecure-bank - break down per module: candidate=1.20.0-SNAPSHOT~716b0d79c5, baseline=1.20.0-SNAPSHOT~a879971d94

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (615.805 ms) : 0, 615805
BytebuddyAgent [candidate] (616.356 ms) : 0, 616356
GlobalTracer [baseline] (285.584 ms) : 0, 285584
GlobalTracer [candidate] (286.196 ms) : 0, 286196
AppSec [baseline] (49.914 ms) : 0, 49914
AppSec [candidate] (50.099 ms) : 0, 50099
Remote Config [baseline] (659.537 µs) : 0, 660
Remote Config [candidate] (662.896 µs) : 0, 663
Telemetry [baseline] (6.012 ms) : 0, 6012
Telemetry [candidate] (5.97 ms) : 0, 5970
section appsec
BytebuddyAgent [baseline] (617.024 ms) : 0, 617024
BytebuddyAgent [candidate] (612.433 ms) : 0, 612433
GlobalTracer [baseline] (286.171 ms) : 0, 286171
GlobalTracer [candidate] (284.453 ms) : 0, 284453
AppSec [baseline] (135.285 ms) : 0, 135285
AppSec [candidate] (135.326 ms) : 0, 135326
Remote Config [baseline] (757.579 µs) : 0, 758
Remote Config [candidate] (717.461 µs) : 0, 717
Telemetry [baseline] (5.777 ms) : 0, 5777
Telemetry [candidate] (5.694 ms) : 0, 5694
section iast
BytebuddyAgent [baseline] (719.732 ms) : 0, 719732
BytebuddyAgent [candidate] (720.03 ms) : 0, 720030
GlobalTracer [baseline] (270.417 ms) : 0, 270417
GlobalTracer [candidate] (271.35 ms) : 0, 271350
AppSec [baseline] (46.782 ms) : 0, 46782
AppSec [candidate] (46.899 ms) : 0, 46899
IAST [baseline] (14.063 ms) : 0, 14063
IAST [candidate] (14.111 ms) : 0, 14111
Remote Config [baseline] (563.944 µs) : 0, 564
Remote Config [candidate] (563.131 µs) : 0, 563
Telemetry [baseline] (5.693 ms) : 0, 5693
Telemetry [candidate] (5.746 ms) : 0, 5746
section profiling
BytebuddyAgent [baseline] (624.173 ms) : 0, 624173
BytebuddyAgent [candidate] (624.305 ms) : 0, 624305
GlobalTracer [baseline] (345.966 ms) : 0, 345966
GlobalTracer [candidate] (346.903 ms) : 0, 346903
AppSec [baseline] (48.999 ms) : 0, 48999
AppSec [candidate] (49.337 ms) : 0, 49337
Remote Config [baseline] (637.494 µs) : 0, 637
Remote Config [candidate] (640.642 µs) : 0, 641
Telemetry [baseline] (5.927 ms) : 0, 5927
Telemetry [candidate] (5.993 ms) : 0, 5993
ProfilingAgent [baseline] (77.023 ms) : 0, 77023
ProfilingAgent [candidate] (77.868 ms) : 0, 77868
Profiling [baseline] (77.047 ms) : 0, 77047
Profiling [candidate] (77.892 ms) : 0, 77892
Loading

Load

Parameters

Baseline Candidate
commit 1.20.0-SNAPSHOT~a879971d94 1.20.0-SNAPSHOT~716b0d79c5
config baseline candidate
end_time 2023-08-29T11:54:11 2023-08-29T12:12:12
start_time 2023-08-29T11:53:53 2023-08-29T12:11:55
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~716b0d79c5, baseline=1.20.0-SNAPSHOT~a879971d94
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.331 ms) : 1312, 1350
.   : milestone, 1331,
appsec (1.67 ms) : 1646, 1694
.   : milestone, 1670,
iast (1.457 ms) : 1433, 1481
.   : milestone, 1457,
profiling (1.478 ms) : 1451, 1505
.   : milestone, 1478,
tracing (1.434 ms) : 1409, 1458
.   : milestone, 1434,
section candidate
no_agent (1.316 ms) : 1298, 1335
.   : milestone, 1316,
appsec (1.681 ms) : 1657, 1705
.   : milestone, 1681,
iast (1.474 ms) : 1449, 1498
.   : milestone, 1474,
profiling (1.452 ms) : 1427, 1476
.   : milestone, 1452,
tracing (1.451 ms) : 1427, 1475
.   : milestone, 1451,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.331 ms [1.312 ms, 1.35 ms] -
appsec 1.67 ms [1.646 ms, 1.694 ms] 338.702 µs (25.4%)
iast 1.457 ms [1.433 ms, 1.481 ms] 125.885 µs (9.5%)
profiling 1.478 ms [1.451 ms, 1.505 ms] 146.659 µs (11.0%)
tracing 1.434 ms [1.409 ms, 1.458 ms] 102.384 µs (7.7%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.316 ms [1.298 ms, 1.335 ms] -
appsec 1.681 ms [1.657 ms, 1.705 ms] 364.721 µs (27.7%)
iast 1.474 ms [1.449 ms, 1.498 ms] 157.241 µs (11.9%)
profiling 1.452 ms [1.427 ms, 1.476 ms] 135.551 µs (10.3%)
tracing 1.451 ms [1.427 ms, 1.475 ms] 134.528 µs (10.2%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.20.0-SNAPSHOT~716b0d79c5, baseline=1.20.0-SNAPSHOT~a879971d94
    dateFormat X
    axisFormat %s
section baseline
no_agent (363.838 µs) : 343, 385
.   : milestone, 364,
appsec (664.887 µs) : 644, 686
.   : milestone, 665,
iast (445.393 µs) : 425, 466
.   : milestone, 445,
iast_FULL (513.478 µs) : 493, 534
.   : milestone, 513,
iast_INACTIVE (430.871 µs) : 410, 451
.   : milestone, 431,
profiling (438.644 µs) : 417, 460
.   : milestone, 439,
tracing (426.454 µs) : 406, 447
.   : milestone, 426,
section candidate
no_agent (364.712 µs) : 345, 385
.   : milestone, 365,
appsec (663.892 µs) : 643, 685
.   : milestone, 664,
iast (444.58 µs) : 424, 465
.   : milestone, 445,
iast_FULL (507.851 µs) : 487, 529
.   : milestone, 508,
iast_INACTIVE (427.514 µs) : 407, 448
.   : milestone, 428,
profiling (432.239 µs) : 411, 453
.   : milestone, 432,
tracing (429.323 µs) : 409, 450
.   : milestone, 429,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 363.838 µs [342.984 µs, 384.691 µs] -
appsec 664.887 µs [643.647 µs, 686.128 µs] 301.05 µs (82.7%)
iast 445.393 µs [424.781 µs, 466.006 µs] 81.555 µs (22.4%)
iast_FULL 513.478 µs [493.078 µs, 533.878 µs] 149.64 µs (41.1%)
iast_INACTIVE 430.871 µs [410.246 µs, 451.497 µs] 67.033 µs (18.4%)
profiling 438.644 µs [416.944 µs, 460.344 µs] 74.806 µs (20.6%)
tracing 426.454 µs [405.767 µs, 447.142 µs] 62.616 µs (17.2%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 364.712 µs [344.778 µs, 384.645 µs] -
appsec 663.892 µs [642.757 µs, 685.026 µs] 299.18 µs (82.0%)
iast 444.58 µs [424.378 µs, 464.782 µs] 79.868 µs (21.9%)
iast_FULL 507.851 µs [487.168 µs, 528.534 µs] 143.139 µs (39.2%)
iast_INACTIVE 427.514 µs [406.707 µs, 448.32 µs] 62.802 µs (17.2%)
profiling 432.239 µs [411.151 µs, 453.327 µs] 67.527 µs (18.5%)
tracing 429.323 µs [408.807 µs, 449.839 µs] 64.612 µs (17.7%)

@PerfectSlayer
PerfectSlayer merged commit 360dce2 into master Aug 30, 2023
@PerfectSlayer
PerfectSlayer deleted the bbujon/otel-annotations-extensions-guava 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