Skip to content
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

Align classLoaderMatcher signature with OpenTelemetry #7125

Merged
merged 3 commits into from
Jun 4, 2024

Conversation

mcculls
Copy link
Contributor

@mcculls mcculls commented Jun 4, 2024

Motivation

This avoids the need to generate a bridge method when mapping OpenTelemetry extensions.

Additional Notes

This PR also fixes a resource leak in RequestImplementationClassLoaderMatcher which I spotted while refactoring.

Jira ticket: APMAPI-6

@mcculls mcculls added tag: no release notes Changes to exclude from release notes inst: opentelemetry OpenTelemetry instrumentation labels Jun 4, 2024
@pr-commenter
Copy link

pr-commenter bot commented Jun 4, 2024

Benchmarks

Startup

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2024-06-04T19:09:14 2024-06-04T19:16:02
git_branch master mcculls/otel-classloader-matcher-bridge
git_commit_date 1717507610 1717526934
git_commit_sha 8a0a406 22eb622
release_version 1.35.0-SNAPSHOT~8a0a406b34 1.35.0-SNAPSHOT~22eb622473
start_time 2024-06-04T19:09:01 2024-06-04T19:15:48
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1717528904 1717528904
ci_job_id 532298981 532298981
ci_pipeline_id 35844724 35844724
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
variant iast iast

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 17 unstable metrics.

Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.35.0-SNAPSHOT~22eb622473, baseline=1.35.0-SNAPSHOT~8a0a406b34
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.348 ms) : 1328, 1368
.   : milestone, 1348,
appsec (1.712 ms) : 1687, 1737
.   : milestone, 1712,
appsec_no_iast (1.717 ms) : 1693, 1741
.   : milestone, 1717,
iast (1.478 ms) : 1454, 1503
.   : milestone, 1478,
profiling (1.512 ms) : 1488, 1537
.   : milestone, 1512,
tracing (1.444 ms) : 1421, 1468
.   : milestone, 1444,
section candidate
no_agent (1.325 ms) : 1306, 1345
.   : milestone, 1325,
appsec (1.704 ms) : 1679, 1729
.   : milestone, 1704,
appsec_no_iast (1.712 ms) : 1688, 1736
.   : milestone, 1712,
iast (1.469 ms) : 1445, 1494
.   : milestone, 1469,
profiling (1.484 ms) : 1461, 1507
.   : milestone, 1484,
tracing (1.451 ms) : 1427, 1475
.   : milestone, 1451,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.348 ms [1.328 ms, 1.368 ms] -
appsec 1.712 ms [1.687 ms, 1.737 ms] 363.487 µs (27.0%)
appsec_no_iast 1.717 ms [1.693 ms, 1.741 ms] 368.608 µs (27.3%)
iast 1.478 ms [1.454 ms, 1.503 ms] 130.311 µs (9.7%)
profiling 1.512 ms [1.488 ms, 1.537 ms] 164.22 µs (12.2%)
tracing 1.444 ms [1.421 ms, 1.468 ms] 96.092 µs (7.1%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.325 ms [1.306 ms, 1.345 ms] -
appsec 1.704 ms [1.679 ms, 1.729 ms] 378.856 µs (28.6%)
appsec_no_iast 1.712 ms [1.688 ms, 1.736 ms] 386.835 µs (29.2%)
iast 1.469 ms [1.445 ms, 1.494 ms] 143.859 µs (10.9%)
profiling 1.484 ms [1.461 ms, 1.507 ms] 158.59 µs (12.0%)
tracing 1.451 ms [1.427 ms, 1.475 ms] 125.584 µs (9.5%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.35.0-SNAPSHOT~22eb622473, baseline=1.35.0-SNAPSHOT~8a0a406b34
    dateFormat X
    axisFormat %s
section baseline
no_agent (371.332 µs) : 351, 392
.   : milestone, 371,
iast (476.952 µs) : 456, 498
.   : milestone, 477,
iast_FULL (541.592 µs) : 521, 563
.   : milestone, 542,
iast_GLOBAL (500.881 µs) : 480, 522
.   : milestone, 501,
iast_HARDCODED_SECRET_DISABLED (474.136 µs) : 453, 495
.   : milestone, 474,
iast_INACTIVE (447.369 µs) : 426, 469
.   : milestone, 447,
iast_TELEMETRY_OFF (468.366 µs) : 447, 490
.   : milestone, 468,
tracing (432.162 µs) : 412, 452
.   : milestone, 432,
section candidate
no_agent (367.538 µs) : 348, 387
.   : milestone, 368,
iast (477.939 µs) : 456, 500
.   : milestone, 478,
iast_FULL (545.68 µs) : 525, 567
.   : milestone, 546,
iast_GLOBAL (501.104 µs) : 480, 522
.   : milestone, 501,
iast_HARDCODED_SECRET_DISABLED (480.577 µs) : 459, 503
.   : milestone, 481,
iast_INACTIVE (447.506 µs) : 426, 469
.   : milestone, 448,
iast_TELEMETRY_OFF (466.116 µs) : 445, 487
.   : milestone, 466,
tracing (439.058 µs) : 418, 460
.   : milestone, 439,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 371.332 µs [350.611 µs, 392.052 µs] -
iast 476.952 µs [455.839 µs, 498.065 µs] 105.62 µs (28.4%)
iast_FULL 541.592 µs [520.502 µs, 562.682 µs] 170.261 µs (45.9%)
iast_GLOBAL 500.881 µs [480.11 µs, 521.652 µs] 129.549 µs (34.9%)
iast_HARDCODED_SECRET_DISABLED 474.136 µs [453.215 µs, 495.057 µs] 102.805 µs (27.7%)
iast_INACTIVE 447.369 µs [425.967 µs, 468.772 µs] 76.038 µs (20.5%)
iast_TELEMETRY_OFF 468.366 µs [447.101 µs, 489.631 µs] 97.034 µs (26.1%)
tracing 432.162 µs [412.062 µs, 452.263 µs] 60.831 µs (16.4%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 367.538 µs [348.147 µs, 386.929 µs] -
iast 477.939 µs [456.301 µs, 499.578 µs] 110.401 µs (30.0%)
iast_FULL 545.68 µs [524.683 µs, 566.677 µs] 178.142 µs (48.5%)
iast_GLOBAL 501.104 µs [479.913 µs, 522.294 µs] 133.566 µs (36.3%)
iast_HARDCODED_SECRET_DISABLED 480.577 µs [458.575 µs, 502.579 µs] 113.039 µs (30.8%)
iast_INACTIVE 447.506 µs [426.32 µs, 468.692 µs] 79.968 µs (21.8%)
iast_TELEMETRY_OFF 466.116 µs [445.055 µs, 487.176 µs] 98.578 µs (26.8%)
tracing 439.058 µs [418.114 µs, 460.001 µs] 71.52 µs (19.5%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mcculls/otel-classloader-matcher-bridge
git_commit_date 1717507610 1717526934
git_commit_sha 8a0a406 22eb622
release_version 1.35.0-SNAPSHOT~8a0a406b34 1.35.0-SNAPSHOT~22eb622473
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1717529411 1717529411
ci_job_id 532298982 532298982
ci_pipeline_id 35844724 35844724
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
variant appsec appsec

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics.

Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.35.0-SNAPSHOT~22eb622473, baseline=1.35.0-SNAPSHOT~8a0a406b34
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.237 s) : 15237000, 15237000
.   : milestone, 15237000,
appsec (15.273 s) : 15273000, 15273000
.   : milestone, 15273000,
iast (18.711 s) : 18711000, 18711000
.   : milestone, 18711000,
iast_GLOBAL (17.761 s) : 17761000, 17761000
.   : milestone, 17761000,
profiling (15.07 s) : 15070000, 15070000
.   : milestone, 15070000,
tracing (15.111 s) : 15111000, 15111000
.   : milestone, 15111000,
section candidate
no_agent (14.987 s) : 14987000, 14987000
.   : milestone, 14987000,
appsec (15.309 s) : 15309000, 15309000
.   : milestone, 15309000,
iast (19.063 s) : 19063000, 19063000
.   : milestone, 19063000,
iast_GLOBAL (17.929 s) : 17929000, 17929000
.   : milestone, 17929000,
profiling (15.466 s) : 15466000, 15466000
.   : milestone, 15466000,
tracing (15.04 s) : 15040000, 15040000
.   : milestone, 15040000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.237 s [15.237 s, 15.237 s] -
appsec 15.273 s [15.273 s, 15.273 s] 36.0 ms (0.2%)
iast 18.711 s [18.711 s, 18.711 s] 3.474 s (22.8%)
iast_GLOBAL 17.761 s [17.761 s, 17.761 s] 2.524 s (16.6%)
profiling 15.07 s [15.07 s, 15.07 s] -167.0 ms (-1.1%)
tracing 15.111 s [15.111 s, 15.111 s] -126.0 ms (-0.8%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.987 s [14.987 s, 14.987 s] -
appsec 15.309 s [15.309 s, 15.309 s] 322.0 ms (2.1%)
iast 19.063 s [19.063 s, 19.063 s] 4.076 s (27.2%)
iast_GLOBAL 17.929 s [17.929 s, 17.929 s] 2.942 s (19.6%)
profiling 15.466 s [15.466 s, 15.466 s] 479.0 ms (3.2%)
tracing 15.04 s [15.04 s, 15.04 s] 53.0 ms (0.4%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.35.0-SNAPSHOT~22eb622473, baseline=1.35.0-SNAPSHOT~8a0a406b34
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.467 ms) : 1456, 1478
.   : milestone, 1467,
appsec (2.208 ms) : 2174, 2242
.   : milestone, 2208,
iast (1.972 ms) : 1931, 2013
.   : milestone, 1972,
iast_GLOBAL (2.01 ms) : 1969, 2051
.   : milestone, 2010,
profiling (1.864 ms) : 1830, 1897
.   : milestone, 1864,
tracing (1.848 ms) : 1816, 1880
.   : milestone, 1848,
section candidate
no_agent (1.473 ms) : 1461, 1484
.   : milestone, 1473,
appsec (2.212 ms) : 2178, 2246
.   : milestone, 2212,
iast (1.975 ms) : 1934, 2017
.   : milestone, 1975,
iast_GLOBAL (2.011 ms) : 1970, 2052
.   : milestone, 2011,
profiling (1.856 ms) : 1823, 1889
.   : milestone, 1856,
tracing (1.82 ms) : 1789, 1852
.   : milestone, 1820,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.467 ms [1.456 ms, 1.478 ms] -
appsec 2.208 ms [2.174 ms, 2.242 ms] 740.976 µs (50.5%)
iast 1.972 ms [1.931 ms, 2.013 ms] 504.857 µs (34.4%)
iast_GLOBAL 2.01 ms [1.969 ms, 2.051 ms] 543.263 µs (37.0%)
profiling 1.864 ms [1.83 ms, 1.897 ms] 396.665 µs (27.0%)
tracing 1.848 ms [1.816 ms, 1.88 ms] 381.06 µs (26.0%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.473 ms [1.461 ms, 1.484 ms] -
appsec 2.212 ms [2.178 ms, 2.246 ms] 739.697 µs (50.2%)
iast 1.975 ms [1.934 ms, 2.017 ms] 502.841 µs (34.1%)
iast_GLOBAL 2.011 ms [1.97 ms, 2.052 ms] 538.721 µs (36.6%)
profiling 1.856 ms [1.823 ms, 1.889 ms] 383.164 µs (26.0%)
tracing 1.82 ms [1.789 ms, 1.852 ms] 347.928 µs (23.6%)

@mcculls mcculls marked this pull request as ready for review June 4, 2024 19:54
@mcculls mcculls requested review from a team as code owners June 4, 2024 19:54
@mcculls mcculls merged commit 239d9a9 into master Jun 4, 2024
83 checks passed
@mcculls mcculls deleted the mcculls/otel-classloader-matcher-bridge branch June 4, 2024 22:46
@github-actions github-actions bot added this to the 1.35.0 milestone Jun 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
inst: opentelemetry OpenTelemetry instrumentation tag: no release notes Changes to exclude from release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants