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

Implement span origin for JVM applications #7001

Merged
merged 1 commit into from
May 16, 2024
Merged

Conversation

evanchooly
Copy link
Contributor

@evanchooly evanchooly commented May 7, 2024

What Does This Do

This PR sets the foundation for updating other integrations to support span origin information. Currently supported is @trace and spring-boot/data (repositories). This PR is intended as a starting point for discussions and there are almost certainly details to cleaned up and clarified but my hope is that there's enough here to form the basis of efforts going forward.

Motivation

Additional Notes

Jira ticket: DEBUG-2366

@pr-commenter
Copy link

pr-commenter bot commented May 7, 2024

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master evanchooly/DEBUG-2366
git_commit_date 1715856651 1715871749
git_commit_sha d0bd085 90aa565
release_version 1.35.0-SNAPSHOT~d0bd085303 1.35.0-SNAPSHOT~90aa5652da
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1715874599 1715874599
ci_job_id 514261019 514261019
ci_pipeline_id 34463602 34463602
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
module Agent Agent
parent None None
variant iast iast

Summary

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

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.35.0-SNAPSHOT~90aa5652da, baseline=1.35.0-SNAPSHOT~d0bd085303

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.083 s) : 0, 1082720
Total [baseline] (10.381 s) : 0, 10380502
Agent [candidate] (1.078 s) : 0, 1078485
Total [candidate] (10.352 s) : 0, 10351726
section appsec
Agent [baseline] (1.196 s) : 0, 1196359
Total [baseline] (10.53 s) : 0, 10530056
Agent [candidate] (1.204 s) : 0, 1204290
Total [candidate] (10.575 s) : 0, 10574659
section iast
Agent [baseline] (1.205 s) : 0, 1204873
Total [baseline] (10.832 s) : 0, 10832173
Agent [candidate] (1.215 s) : 0, 1214726
Total [candidate] (10.858 s) : 0, 10858122
section profiling
Agent [baseline] (1.271 s) : 0, 1271074
Total [baseline] (10.644 s) : 0, 10644398
Agent [candidate] (1.282 s) : 0, 1281823
Total [candidate] (10.671 s) : 0, 10670573
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.083 s -
Agent appsec 1.196 s 113.639 ms (10.5%)
Agent iast 1.205 s 122.153 ms (11.3%)
Agent profiling 1.271 s 188.353 ms (17.4%)
Total tracing 10.381 s -
Total appsec 10.53 s 149.554 ms (1.4%)
Total iast 10.832 s 451.671 ms (4.4%)
Total profiling 10.644 s 263.896 ms (2.5%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.078 s -
Agent appsec 1.204 s 125.806 ms (11.7%)
Agent iast 1.215 s 136.241 ms (12.6%)
Agent profiling 1.282 s 203.338 ms (18.9%)
Total tracing 10.352 s -
Total appsec 10.575 s 222.933 ms (2.2%)
Total iast 10.858 s 506.396 ms (4.9%)
Total profiling 10.671 s 318.847 ms (3.1%)
gantt
    title petclinic - break down per module: candidate=1.35.0-SNAPSHOT~90aa5652da, baseline=1.35.0-SNAPSHOT~d0bd085303

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (678.397 ms) : 0, 678397
BytebuddyAgent [candidate] (675.952 ms) : 0, 675952
GlobalTracer [baseline] (311.688 ms) : 0, 311688
GlobalTracer [candidate] (310.365 ms) : 0, 310365
AppSec [baseline] (49.781 ms) : 0, 49781
AppSec [candidate] (49.367 ms) : 0, 49367
Remote Config [baseline] (669.0 µs) : 0, 669
Remote Config [candidate] (666.015 µs) : 0, 666
Telemetry [baseline] (7.601 ms) : 0, 7601
Telemetry [candidate] (7.602 ms) : 0, 7602
section appsec
BytebuddyAgent [baseline] (696.855 ms) : 0, 696855
BytebuddyAgent [candidate] (702.055 ms) : 0, 702055
GlobalTracer [baseline] (293.357 ms) : 0, 293357
GlobalTracer [candidate] (295.81 ms) : 0, 295810
AppSec [baseline] (152.686 ms) : 0, 152686
AppSec [candidate] (152.822 ms) : 0, 152822
Remote Config [baseline] (619.035 µs) : 0, 619
Remote Config [candidate] (626.64 µs) : 0, 627
Telemetry [baseline] (9.015 ms) : 0, 9015
Telemetry [candidate] (8.786 ms) : 0, 8786
IAST [baseline] (18.859 ms) : 0, 18859
IAST [candidate] (19.107 ms) : 0, 19107
section iast
BytebuddyAgent [baseline] (796.969 ms) : 0, 796969
BytebuddyAgent [candidate] (804.998 ms) : 0, 804998
GlobalTracer [baseline] (291.011 ms) : 0, 291011
GlobalTracer [candidate] (293.146 ms) : 0, 293146
AppSec [baseline] (49.603 ms) : 0, 49603
AppSec [candidate] (51.87 ms) : 0, 51870
Remote Config [baseline] (1.382 ms) : 0, 1382
Remote Config [candidate] (616.904 µs) : 0, 617
Telemetry [baseline] (6.742 ms) : 0, 6742
Telemetry [candidate] (6.656 ms) : 0, 6656
IAST [baseline] (24.778 ms) : 0, 24778
IAST [candidate] (22.854 ms) : 0, 22854
section profiling
BytebuddyAgent [baseline] (678.052 ms) : 0, 678052
BytebuddyAgent [candidate] (684.712 ms) : 0, 684712
GlobalTracer [baseline] (382.405 ms) : 0, 382405
GlobalTracer [candidate] (384.84 ms) : 0, 384840
AppSec [baseline] (49.849 ms) : 0, 49849
AppSec [candidate] (50.184 ms) : 0, 50184
Remote Config [baseline] (693.569 µs) : 0, 694
Remote Config [candidate] (707.702 µs) : 0, 708
Telemetry [baseline] (7.468 ms) : 0, 7468
Telemetry [candidate] (7.591 ms) : 0, 7591
ProfilingAgent [baseline] (96.222 ms) : 0, 96222
ProfilingAgent [candidate] (96.873 ms) : 0, 96873
Profiling [baseline] (96.246 ms) : 0, 96246
Profiling [candidate] (96.898 ms) : 0, 96898
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.35.0-SNAPSHOT~90aa5652da, baseline=1.35.0-SNAPSHOT~d0bd085303

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.076 s) : 0, 1076287
Total [baseline] (8.539 s) : 0, 8539425
Agent [candidate] (1.076 s) : 0, 1075993
Total [candidate] (8.542 s) : 0, 8542391
section iast
Agent [baseline] (1.204 s) : 0, 1203728
Total [baseline] (8.994 s) : 0, 8993640
Agent [candidate] (1.203 s) : 0, 1202693
Total [candidate] (9.06 s) : 0, 9060120
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.211 s) : 0, 1210740
Total [baseline] (8.984 s) : 0, 8983786
Agent [candidate] (1.219 s) : 0, 1218749
Total [candidate] (9.028 s) : 0, 9027710
section iast_TELEMETRY_OFF
Agent [baseline] (1.2 s) : 0, 1200440
Total [baseline] (9.019 s) : 0, 9018801
Agent [candidate] (1.202 s) : 0, 1201853
Total [candidate] (9.008 s) : 0, 9007641
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.076 s -
Agent iast 1.204 s 127.441 ms (11.8%)
Agent iast_HARDCODED_SECRET_DISABLED 1.211 s 134.453 ms (12.5%)
Agent iast_TELEMETRY_OFF 1.2 s 124.153 ms (11.5%)
Total tracing 8.539 s -
Total iast 8.994 s 454.215 ms (5.3%)
Total iast_HARDCODED_SECRET_DISABLED 8.984 s 444.361 ms (5.2%)
Total iast_TELEMETRY_OFF 9.019 s 479.376 ms (5.6%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.076 s -
Agent iast 1.203 s 126.7 ms (11.8%)
Agent iast_HARDCODED_SECRET_DISABLED 1.219 s 142.756 ms (13.3%)
Agent iast_TELEMETRY_OFF 1.202 s 125.86 ms (11.7%)
Total tracing 8.542 s -
Total iast 9.06 s 517.729 ms (6.1%)
Total iast_HARDCODED_SECRET_DISABLED 9.028 s 485.319 ms (5.7%)
Total iast_TELEMETRY_OFF 9.008 s 465.25 ms (5.4%)
gantt
    title insecure-bank - break down per module: candidate=1.35.0-SNAPSHOT~90aa5652da, baseline=1.35.0-SNAPSHOT~d0bd085303

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (674.083 ms) : 0, 674083
BytebuddyAgent [candidate] (674.127 ms) : 0, 674127
GlobalTracer [baseline] (310.237 ms) : 0, 310237
GlobalTracer [candidate] (309.607 ms) : 0, 309607
AppSec [baseline] (49.469 ms) : 0, 49469
AppSec [candidate] (49.667 ms) : 0, 49667
Remote Config [baseline] (649.529 µs) : 0, 650
Remote Config [candidate] (661.928 µs) : 0, 662
Telemetry [baseline] (7.6 ms) : 0, 7600
Telemetry [candidate] (7.561 ms) : 0, 7561
section iast
BytebuddyAgent [baseline] (796.608 ms) : 0, 796608
BytebuddyAgent [candidate] (795.872 ms) : 0, 795872
GlobalTracer [baseline] (291.272 ms) : 0, 291272
GlobalTracer [candidate] (290.996 ms) : 0, 290996
AppSec [baseline] (50.231 ms) : 0, 50231
AppSec [candidate] (50.705 ms) : 0, 50705
Remote Config [baseline] (598.152 µs) : 0, 598
Remote Config [candidate] (600.168 µs) : 0, 600
Telemetry [baseline] (6.536 ms) : 0, 6536
Telemetry [candidate] (6.586 ms) : 0, 6586
IAST [baseline] (24.171 ms) : 0, 24171
IAST [candidate] (23.673 ms) : 0, 23673
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (802.301 ms) : 0, 802301
BytebuddyAgent [candidate] (806.925 ms) : 0, 806925
GlobalTracer [baseline] (292.013 ms) : 0, 292013
GlobalTracer [candidate] (294.47 ms) : 0, 294470
AppSec [baseline] (50.176 ms) : 0, 50176
AppSec [candidate] (51.409 ms) : 0, 51409
Remote Config [baseline] (653.375 µs) : 0, 653
Remote Config [candidate] (614.596 µs) : 0, 615
Telemetry [baseline] (6.617 ms) : 0, 6617
Telemetry [candidate] (6.688 ms) : 0, 6688
IAST [baseline] (24.298 ms) : 0, 24298
IAST [candidate] (23.753 ms) : 0, 23753
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (793.357 ms) : 0, 793357
BytebuddyAgent [candidate] (795.282 ms) : 0, 795282
GlobalTracer [baseline] (290.655 ms) : 0, 290655
GlobalTracer [candidate] (291.655 ms) : 0, 291655
AppSec [baseline] (48.192 ms) : 0, 48192
AppSec [candidate] (52.395 ms) : 0, 52395
Remote Config [baseline] (601.414 µs) : 0, 601
Remote Config [candidate] (591.661 µs) : 0, 592
Telemetry [baseline] (8.728 ms) : 0, 8728
Telemetry [candidate] (7.279 ms) : 0, 7279
IAST [baseline] (24.501 ms) : 0, 24501
IAST [candidate] (20.123 ms) : 0, 20123

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2024-05-16T15:20:48 2024-05-16T15:27:38
git_branch master evanchooly/DEBUG-2366
git_commit_date 1715856651 1715871749
git_commit_sha d0bd085 90aa565
release_version 1.35.0-SNAPSHOT~d0bd085303 1.35.0-SNAPSHOT~90aa5652da
start_time 2024-05-16T15:20:35 2024-05-16T15:27:25
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1715873603 1715873603
ci_job_id 514261020 514261020
ci_pipeline_id 34463602 34463602
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 12 metrics, 16 unstable metrics.

Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.35.0-SNAPSHOT~90aa5652da, baseline=1.35.0-SNAPSHOT~d0bd085303
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.34 ms) : 1320, 1359
.   : milestone, 1340,
appsec (1.715 ms) : 1690, 1740
.   : milestone, 1715,
appsec_no_iast (1.738 ms) : 1712, 1763
.   : milestone, 1738,
iast (1.476 ms) : 1453, 1499
.   : milestone, 1476,
profiling (1.482 ms) : 1457, 1507
.   : milestone, 1482,
tracing (1.475 ms) : 1452, 1499
.   : milestone, 1475,
section candidate
no_agent (1.342 ms) : 1323, 1362
.   : milestone, 1342,
appsec (1.716 ms) : 1691, 1740
.   : milestone, 1716,
appsec_no_iast (1.715 ms) : 1691, 1739
.   : milestone, 1715,
iast (1.474 ms) : 1451, 1496
.   : milestone, 1474,
profiling (1.491 ms) : 1467, 1516
.   : milestone, 1491,
tracing (1.47 ms) : 1445, 1495
.   : milestone, 1470,
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.34 ms [1.32 ms, 1.359 ms] -
appsec 1.715 ms [1.69 ms, 1.74 ms] 374.974 µs (28.0%)
appsec_no_iast 1.738 ms [1.712 ms, 1.763 ms] 397.822 µs (29.7%)
iast 1.476 ms [1.453 ms, 1.499 ms] 136.057 µs (10.2%)
profiling 1.482 ms [1.457 ms, 1.507 ms] 142.328 µs (10.6%)
tracing 1.475 ms [1.452 ms, 1.499 ms] 135.421 µs (10.1%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.342 ms [1.323 ms, 1.362 ms] -
appsec 1.716 ms [1.691 ms, 1.74 ms] 373.201 µs (27.8%)
appsec_no_iast 1.715 ms [1.691 ms, 1.739 ms] 372.532 µs (27.8%)
iast 1.474 ms [1.451 ms, 1.496 ms] 131.342 µs (9.8%)
profiling 1.491 ms [1.467 ms, 1.516 ms] 148.917 µs (11.1%)
tracing 1.47 ms [1.445 ms, 1.495 ms] 127.832 µs (9.5%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.35.0-SNAPSHOT~90aa5652da, baseline=1.35.0-SNAPSHOT~d0bd085303
    dateFormat X
    axisFormat %s
section baseline
no_agent (373.118 µs) : 354, 393
.   : milestone, 373,
iast (482.512 µs) : 461, 504
.   : milestone, 483,
iast_FULL (552.478 µs) : 531, 574
.   : milestone, 552,
iast_GLOBAL (513.371 µs) : 492, 535
.   : milestone, 513,
iast_HARDCODED_SECRET_DISABLED (486.072 µs) : 465, 507
.   : milestone, 486,
iast_INACTIVE (455.639 µs) : 435, 477
.   : milestone, 456,
iast_TELEMETRY_OFF (474.887 µs) : 454, 496
.   : milestone, 475,
tracing (444.119 µs) : 423, 465
.   : milestone, 444,
section candidate
no_agent (370.086 µs) : 350, 390
.   : milestone, 370,
iast (481.232 µs) : 460, 502
.   : milestone, 481,
iast_FULL (551.18 µs) : 530, 572
.   : milestone, 551,
iast_GLOBAL (516.733 µs) : 494, 540
.   : milestone, 517,
iast_HARDCODED_SECRET_DISABLED (482.455 µs) : 462, 503
.   : milestone, 482,
iast_INACTIVE (453.914 µs) : 433, 475
.   : milestone, 454,
iast_TELEMETRY_OFF (471.251 µs) : 450, 492
.   : milestone, 471,
tracing (443.624 µs) : 423, 464
.   : milestone, 444,
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 373.118 µs [353.724 µs, 392.512 µs] -
iast 482.512 µs [461.428 µs, 503.596 µs] 109.394 µs (29.3%)
iast_FULL 552.478 µs [531.228 µs, 573.728 µs] 179.36 µs (48.1%)
iast_GLOBAL 513.371 µs [492.208 µs, 534.534 µs] 140.253 µs (37.6%)
iast_HARDCODED_SECRET_DISABLED 486.072 µs [464.905 µs, 507.239 µs] 112.954 µs (30.3%)
iast_INACTIVE 455.639 µs [434.559 µs, 476.719 µs] 82.521 µs (22.1%)
iast_TELEMETRY_OFF 474.887 µs [453.858 µs, 495.917 µs] 101.77 µs (27.3%)
tracing 444.119 µs [423.221 µs, 465.017 µs] 71.001 µs (19.0%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 370.086 µs [350.483 µs, 389.688 µs] -
iast 481.232 µs [460.326 µs, 502.137 µs] 111.146 µs (30.0%)
iast_FULL 551.18 µs [530.059 µs, 572.302 µs] 181.094 µs (48.9%)
iast_GLOBAL 516.733 µs [493.805 µs, 539.661 µs] 146.647 µs (39.6%)
iast_HARDCODED_SECRET_DISABLED 482.455 µs [461.635 µs, 503.276 µs] 112.369 µs (30.4%)
iast_INACTIVE 453.914 µs [432.701 µs, 475.126 µs] 83.828 µs (22.7%)
iast_TELEMETRY_OFF 471.251 µs [450.072 µs, 492.43 µs] 101.165 µs (27.3%)
tracing 443.624 µs [422.77 µs, 464.478 µs] 73.538 µs (19.9%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master evanchooly/DEBUG-2366
git_commit_date 1715856651 1715871749
git_commit_sha d0bd085 90aa565
release_version 1.35.0-SNAPSHOT~d0bd085303 1.35.0-SNAPSHOT~90aa5652da
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1715873980 1715873980
ci_job_id 514261021 514261021
ci_pipeline_id 34463602 34463602
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 tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.35.0-SNAPSHOT~90aa5652da, baseline=1.35.0-SNAPSHOT~d0bd085303
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.461 ms) : 1449, 1472
.   : milestone, 1461,
appsec (2.199 ms) : 2164, 2233
.   : milestone, 2199,
iast (1.951 ms) : 1910, 1991
.   : milestone, 1951,
iast_GLOBAL (2.007 ms) : 1966, 2049
.   : milestone, 2007,
profiling (1.852 ms) : 1819, 1886
.   : milestone, 1852,
tracing (1.829 ms) : 1797, 1861
.   : milestone, 1829,
section candidate
no_agent (1.466 ms) : 1455, 1478
.   : milestone, 1466,
appsec (2.208 ms) : 2173, 2242
.   : milestone, 2208,
iast (1.983 ms) : 1941, 2026
.   : milestone, 1983,
iast_GLOBAL (1.991 ms) : 1950, 2032
.   : milestone, 1991,
profiling (1.84 ms) : 1805, 1874
.   : milestone, 1840,
tracing (1.834 ms) : 1802, 1866
.   : milestone, 1834,
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.461 ms [1.449 ms, 1.472 ms] -
appsec 2.199 ms [2.164 ms, 2.233 ms] 737.73 µs (50.5%)
iast 1.951 ms [1.91 ms, 1.991 ms] 489.749 µs (33.5%)
iast_GLOBAL 2.007 ms [1.966 ms, 2.049 ms] 546.351 µs (37.4%)
profiling 1.852 ms [1.819 ms, 1.886 ms] 391.591 µs (26.8%)
tracing 1.829 ms [1.797 ms, 1.861 ms] 368.383 µs (25.2%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.466 ms [1.455 ms, 1.478 ms] -
appsec 2.208 ms [2.173 ms, 2.242 ms] 741.004 µs (50.5%)
iast 1.983 ms [1.941 ms, 2.026 ms] 516.766 µs (35.2%)
iast_GLOBAL 1.991 ms [1.95 ms, 2.032 ms] 524.624 µs (35.8%)
profiling 1.84 ms [1.805 ms, 1.874 ms] 373.127 µs (25.4%)
tracing 1.834 ms [1.802 ms, 1.866 ms] 367.805 µs (25.1%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.35.0-SNAPSHOT~90aa5652da, baseline=1.35.0-SNAPSHOT~d0bd085303
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.099 s) : 15099000, 15099000
.   : milestone, 15099000,
appsec (15.057 s) : 15057000, 15057000
.   : milestone, 15057000,
iast (19.08 s) : 19080000, 19080000
.   : milestone, 19080000,
iast_GLOBAL (17.957 s) : 17957000, 17957000
.   : milestone, 17957000,
profiling (15.804 s) : 15804000, 15804000
.   : milestone, 15804000,
tracing (15.151 s) : 15151000, 15151000
.   : milestone, 15151000,
section candidate
no_agent (15.468 s) : 15468000, 15468000
.   : milestone, 15468000,
appsec (15.273 s) : 15273000, 15273000
.   : milestone, 15273000,
iast (18.796 s) : 18796000, 18796000
.   : milestone, 18796000,
iast_GLOBAL (18.162 s) : 18162000, 18162000
.   : milestone, 18162000,
profiling (15.338 s) : 15338000, 15338000
.   : milestone, 15338000,
tracing (15.115 s) : 15115000, 15115000
.   : milestone, 15115000,
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.099 s [15.099 s, 15.099 s] -
appsec 15.057 s [15.057 s, 15.057 s] -42.0 ms (-0.3%)
iast 19.08 s [19.08 s, 19.08 s] 3.981 s (26.4%)
iast_GLOBAL 17.957 s [17.957 s, 17.957 s] 2.858 s (18.9%)
profiling 15.804 s [15.804 s, 15.804 s] 705.0 ms (4.7%)
tracing 15.151 s [15.151 s, 15.151 s] 52.0 ms (0.3%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.468 s [15.468 s, 15.468 s] -
appsec 15.273 s [15.273 s, 15.273 s] -195.0 ms (-1.3%)
iast 18.796 s [18.796 s, 18.796 s] 3.328 s (21.5%)
iast_GLOBAL 18.162 s [18.162 s, 18.162 s] 2.694 s (17.4%)
profiling 15.338 s [15.338 s, 15.338 s] -130.0 ms (-0.8%)
tracing 15.115 s [15.115 s, 15.115 s] -353.0 ms (-2.3%)

@evanchooly evanchooly force-pushed the evanchooly/DEBUG-2366 branch 2 times, most recently from d9af11a to 8dcb47a Compare May 8, 2024 18:00
@evanchooly evanchooly marked this pull request as ready for review May 8, 2024 19:26
@evanchooly evanchooly requested a review from a team as a code owner May 8, 2024 19:26
@evanchooly
Copy link
Contributor Author

I'm not quite sure what to make of the CI failures. I'm not even sure how to tell if they're related to my change or not.

@evanchooly evanchooly requested a review from shatzi May 9, 2024 17:33
Copy link
Contributor

@shatzi shatzi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very interesting and clean.

return origins.computeIfAbsent(method.toString(), (key) -> new ExitSpanOriginInfo(method));
}

public ExitSpanOriginInfo(Method method) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there is assumption that each method have only 1 stack. but the same method can be called from multiple location

params.add(parameterType.getName());
}

signature = Strings.join(",", params);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does this match the probe definition signature? I want to make sure the UI can use this to create a probe.

.collect(Collectors.toList()));
}

public void apply(AgentSpan span) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does that match the RFC? do we need to add limit here?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here, I think we need to revisit the heuristic but after integration with Third-Party detection.

@evanchooly evanchooly requested a review from a team as a code owner May 9, 2024 20:28
Copy link
Member

@jpbempel jpbempel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I got it correctly merging this will activate the usage of Psan Origin directly We need to implement the config parameter to activate the feature: DD_TRACE_SPAN_ORIGIN_ENABLED and false by default

.collect(Collectors.toList()));
}

public void apply(AgentSpan span) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here, I think we need to revisit the heuristic but after integration with Third-Party detection.

@evanchooly
Copy link
Contributor Author

If I got it correctly merging this will activate the usage of Psan Origin directly We need to implement the config parameter to activate the feature: DD_TRACE_SPAN_ORIGIN_ENABLED and false by default

That's the plan once the PR is done. I hadn't wanted to add it to an in progress PR but I could be talked in to it. Might be more friendly to external teams, honestly.

https://datadoghq.atlassian.net/issues/DEBUG-2368

@evanchooly evanchooly force-pushed the evanchooly/DEBUG-2366 branch 4 times, most recently from 000b426 to d964bd1 Compare May 13, 2024 20:23
@evanchooly evanchooly requested a review from mcculls May 13, 2024 20:39
@evanchooly
Copy link
Contributor Author

I've added the configuration bits to turn this on/off and added the default to off. So this is ready for hard scrutiny and, hopefully, merging.

import java.util.function.Function;
import java.util.stream.Stream;

public class FindFirstStackTraceElement
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: I would add a comment why we are implementing a Single Abstract Method type with named class instead of using lambda

@evanchooly evanchooly force-pushed the evanchooly/DEBUG-2366 branch 2 times, most recently from 925b612 to f842d3f Compare May 16, 2024 13:19
@evanchooly evanchooly merged commit 3eb2828 into master May 16, 2024
80 checks passed
@evanchooly evanchooly deleted the evanchooly/DEBUG-2366 branch May 16, 2024 16:02
@github-actions github-actions bot added this to the 1.35.0 milestone May 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants