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

Introduce context helpers API #8134

Merged
merged 1 commit into from
Jan 30, 2025
Merged

Introduce context helpers API #8134

merged 1 commit into from
Jan 30, 2025

Conversation

PerfectSlayer
Copy link
Contributor

@PerfectSlayer PerfectSlayer commented Dec 30, 2024

What Does This Do

This PR introduces few helper methods to help manipulate context and carrier collections.

Motivation

This should help with Context adoption and make its usage simpler while not enriching Context interface itself.

Additional Notes

The helper API comes from the Context API scratchpad discussions and are open to feedback.
The more we get, the best they will be.

Contributor Checklist

Jira ticket: LANGPLAT-39

@pr-commenter
Copy link

pr-commenter bot commented Dec 30, 2024

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/context-helper
git_commit_date 1738237225 1738238400
git_commit_sha a6b67c3 2eac34e
release_version 1.46.0-SNAPSHOT~a6b67c32c5 1.46.0-SNAPSHOT~2eac34e214
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1738240997 1738240997
ci_job_id 787164966 787164966
ci_pipeline_id 54433577 54433577
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-unakjcuf-project-304-concurrent-0-spi8x530 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux Linux runner-unakjcuf-project-304-concurrent-0-spi8x530 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None
variant iast iast

Summary

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

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.46.0-SNAPSHOT~2eac34e214, baseline=1.46.0-SNAPSHOT~a6b67c32c5

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.042 s) : 0, 1041990
Total [baseline] (8.626 s) : 0, 8626194
Agent [candidate] (1.037 s) : 0, 1037009
Total [candidate] (8.635 s) : 0, 8635204
section iast
Agent [baseline] (1.168 s) : 0, 1167911
Total [baseline] (9.229 s) : 0, 9229133
Agent [candidate] (1.167 s) : 0, 1166701
Total [candidate] (9.194 s) : 0, 9194248
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.174 s) : 0, 1174071
Total [baseline] (9.184 s) : 0, 9184203
Agent [candidate] (1.167 s) : 0, 1167042
Total [candidate] (9.18 s) : 0, 9179836
section iast_TELEMETRY_OFF
Agent [baseline] (1.165 s) : 0, 1165272
Total [baseline] (9.206 s) : 0, 9206271
Agent [candidate] (1.174 s) : 0, 1173951
Total [candidate] (9.244 s) : 0, 9243726
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.042 s -
Agent iast 1.168 s 125.921 ms (12.1%)
Agent iast_HARDCODED_SECRET_DISABLED 1.174 s 132.082 ms (12.7%)
Agent iast_TELEMETRY_OFF 1.165 s 123.282 ms (11.8%)
Total tracing 8.626 s -
Total iast 9.229 s 602.939 ms (7.0%)
Total iast_HARDCODED_SECRET_DISABLED 9.184 s 558.009 ms (6.5%)
Total iast_TELEMETRY_OFF 9.206 s 580.077 ms (6.7%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.037 s -
Agent iast 1.167 s 129.692 ms (12.5%)
Agent iast_HARDCODED_SECRET_DISABLED 1.167 s 130.033 ms (12.5%)
Agent iast_TELEMETRY_OFF 1.174 s 136.942 ms (13.2%)
Total tracing 8.635 s -
Total iast 9.194 s 559.044 ms (6.5%)
Total iast_HARDCODED_SECRET_DISABLED 9.18 s 544.632 ms (6.3%)
Total iast_TELEMETRY_OFF 9.244 s 608.522 ms (7.0%)
gantt
    title insecure-bank - break down per module: candidate=1.46.0-SNAPSHOT~2eac34e214, baseline=1.46.0-SNAPSHOT~a6b67c32c5

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (717.243 ms) : 0, 717243
BytebuddyAgent [candidate] (714.331 ms) : 0, 714331
GlobalTracer [baseline] (241.551 ms) : 0, 241551
GlobalTracer [candidate] (239.05 ms) : 0, 239050
AppSec [baseline] (55.705 ms) : 0, 55705
AppSec [candidate] (56.012 ms) : 0, 56012
Remote Config [baseline] (707.599 µs) : 0, 708
Remote Config [candidate] (710.517 µs) : 0, 711
Telemetry [baseline] (11.563 ms) : 0, 11563
Telemetry [candidate] (11.703 ms) : 0, 11703
section iast
BytebuddyAgent [baseline] (833.078 ms) : 0, 833078
BytebuddyAgent [candidate] (832.368 ms) : 0, 832368
GlobalTracer [baseline] (230.814 ms) : 0, 230814
GlobalTracer [candidate] (230.138 ms) : 0, 230138
IAST [baseline] (27.362 ms) : 0, 27362
IAST [candidate] (25.789 ms) : 0, 25789
AppSec [baseline] (52.074 ms) : 0, 52074
AppSec [candidate] (53.909 ms) : 0, 53909
Remote Config [baseline] (622.905 µs) : 0, 623
Remote Config [candidate] (614.104 µs) : 0, 614
Telemetry [baseline] (8.747 ms) : 0, 8747
Telemetry [candidate] (8.703 ms) : 0, 8703
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (838.077 ms) : 0, 838077
BytebuddyAgent [candidate] (832.805 ms) : 0, 832805
GlobalTracer [baseline] (231.067 ms) : 0, 231067
GlobalTracer [candidate] (230.178 ms) : 0, 230178
IAST [baseline] (27.465 ms) : 0, 27465
IAST [candidate] (26.557 ms) : 0, 26557
AppSec [baseline] (52.593 ms) : 0, 52593
AppSec [candidate] (52.925 ms) : 0, 52925
Remote Config [baseline] (623.238 µs) : 0, 623
Remote Config [candidate] (605.134 µs) : 0, 605
Telemetry [baseline] (8.872 ms) : 0, 8872
Telemetry [candidate] (8.643 ms) : 0, 8643
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (831.033 ms) : 0, 831033
BytebuddyAgent [candidate] (836.845 ms) : 0, 836845
GlobalTracer [baseline] (230.728 ms) : 0, 230728
GlobalTracer [candidate] (232.706 ms) : 0, 232706
IAST [baseline] (25.217 ms) : 0, 25217
IAST [candidate] (27.891 ms) : 0, 27891
AppSec [baseline] (53.893 ms) : 0, 53893
AppSec [candidate] (51.726 ms) : 0, 51726
Remote Config [baseline] (610.267 µs) : 0, 610
Remote Config [candidate] (632.637 µs) : 0, 633
Telemetry [baseline] (8.491 ms) : 0, 8491
Telemetry [candidate] (8.731 ms) : 0, 8731
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.46.0-SNAPSHOT~2eac34e214, baseline=1.46.0-SNAPSHOT~a6b67c32c5

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.042 s) : 0, 1042236
Total [baseline] (10.477 s) : 0, 10476563
Agent [candidate] (1.042 s) : 0, 1041807
Total [candidate] (10.434 s) : 0, 10433765
section appsec
Agent [baseline] (1.18 s) : 0, 1179573
Total [baseline] (10.714 s) : 0, 10713787
Agent [candidate] (1.183 s) : 0, 1183075
Total [candidate] (10.741 s) : 0, 10741068
section iast
Agent [baseline] (1.167 s) : 0, 1167144
Total [baseline] (10.925 s) : 0, 10924673
Agent [candidate] (1.168 s) : 0, 1168193
Total [candidate] (10.947 s) : 0, 10947479
section profiling
Agent [baseline] (1.259 s) : 0, 1259064
Total [baseline] (10.854 s) : 0, 10854056
Agent [candidate] (1.257 s) : 0, 1257130
Total [candidate] (10.872 s) : 0, 10872267
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.042 s -
Agent appsec 1.18 s 137.337 ms (13.2%)
Agent iast 1.167 s 124.908 ms (12.0%)
Agent profiling 1.259 s 216.828 ms (20.8%)
Total tracing 10.477 s -
Total appsec 10.714 s 237.224 ms (2.3%)
Total iast 10.925 s 448.11 ms (4.3%)
Total profiling 10.854 s 377.493 ms (3.6%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.042 s -
Agent appsec 1.183 s 141.267 ms (13.6%)
Agent iast 1.168 s 126.385 ms (12.1%)
Agent profiling 1.257 s 215.322 ms (20.7%)
Total tracing 10.434 s -
Total appsec 10.741 s 307.304 ms (2.9%)
Total iast 10.947 s 513.714 ms (4.9%)
Total profiling 10.872 s 438.502 ms (4.2%)
gantt
    title petclinic - break down per module: candidate=1.46.0-SNAPSHOT~2eac34e214, baseline=1.46.0-SNAPSHOT~a6b67c32c5

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (717.657 ms) : 0, 717657
BytebuddyAgent [candidate] (717.317 ms) : 0, 717317
GlobalTracer [baseline] (239.642 ms) : 0, 239642
GlobalTracer [candidate] (239.54 ms) : 0, 239540
AppSec [baseline] (55.251 ms) : 0, 55251
AppSec [candidate] (55.396 ms) : 0, 55396
Remote Config [baseline] (710.045 µs) : 0, 710
Remote Config [candidate] (712.259 µs) : 0, 712
Telemetry [baseline] (13.704 ms) : 0, 13704
Telemetry [candidate] (13.556 ms) : 0, 13556
section appsec
BytebuddyAgent [baseline] (731.424 ms) : 0, 731424
BytebuddyAgent [candidate] (733.956 ms) : 0, 733956
GlobalTracer [baseline] (237.032 ms) : 0, 237032
GlobalTracer [candidate] (237.69 ms) : 0, 237690
AppSec [baseline] (176.196 ms) : 0, 176196
AppSec [candidate] (176.302 ms) : 0, 176302
Remote Config [baseline] (651.195 µs) : 0, 651
Remote Config [candidate] (653.538 µs) : 0, 654
Telemetry [baseline] (8.279 ms) : 0, 8279
Telemetry [candidate] (8.284 ms) : 0, 8284
IAST [baseline] (21.483 ms) : 0, 21483
IAST [candidate] (21.777 ms) : 0, 21777
section iast
BytebuddyAgent [baseline] (832.732 ms) : 0, 832732
BytebuddyAgent [candidate] (833.845 ms) : 0, 833845
GlobalTracer [baseline] (230.653 ms) : 0, 230653
GlobalTracer [candidate] (230.527 ms) : 0, 230527
AppSec [baseline] (53.746 ms) : 0, 53746
AppSec [candidate] (52.985 ms) : 0, 52985
Remote Config [baseline] (613.897 µs) : 0, 614
Remote Config [candidate] (606.445 µs) : 0, 606
Telemetry [baseline] (8.66 ms) : 0, 8660
Telemetry [candidate] (8.638 ms) : 0, 8638
IAST [baseline] (25.402 ms) : 0, 25402
IAST [candidate] (26.321 ms) : 0, 26321
section profiling
ProfilingAgent [baseline] (95.41 ms) : 0, 95410
ProfilingAgent [candidate] (95.388 ms) : 0, 95388
BytebuddyAgent [baseline] (706.175 ms) : 0, 706175
BytebuddyAgent [candidate] (704.438 ms) : 0, 704438
GlobalTracer [baseline] (350.36 ms) : 0, 350360
GlobalTracer [candidate] (351.497 ms) : 0, 351497
AppSec [baseline] (55.318 ms) : 0, 55318
AppSec [candidate] (53.978 ms) : 0, 53978
Remote Config [baseline] (698.06 µs) : 0, 698
Remote Config [candidate] (715.053 µs) : 0, 715
Telemetry [baseline] (8.792 ms) : 0, 8792
Telemetry [candidate] (8.88 ms) : 0, 8880
Profiling [baseline] (95.434 ms) : 0, 95434
Profiling [candidate] (95.412 ms) : 0, 95412
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-01-30T12:11:09 2025-01-30T12:18:14
git_branch master bbujon/context-helper
git_commit_date 1738237225 1738238400
git_commit_sha a6b67c3 2eac34e
release_version 1.46.0-SNAPSHOT~a6b67c32c5 1.46.0-SNAPSHOT~2eac34e214
start_time 2025-01-30T12:10:55 2025-01-30T12:18:00
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1738239853 1738239853
ci_job_id 787164968 787164968
ci_pipeline_id 54433577 54433577
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-pgoe76dg-project-304-concurrent-0-akg4gb09 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux Linux runner-pgoe76dg-project-304-concurrent-0-akg4gb09 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
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 insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.46.0-SNAPSHOT~2eac34e214, baseline=1.46.0-SNAPSHOT~a6b67c32c5
    dateFormat X
    axisFormat %s
section baseline
no_agent (381.721 µs) : 361, 403
.   : milestone, 382,
iast (513.099 µs) : 490, 536
.   : milestone, 513,
iast_FULL (754.552 µs) : 732, 777
.   : milestone, 755,
iast_GLOBAL (555.704 µs) : 533, 579
.   : milestone, 556,
iast_HARDCODED_SECRET_DISABLED (514.77 µs) : 491, 538
.   : milestone, 515,
iast_INACTIVE (464.022 µs) : 443, 485
.   : milestone, 464,
iast_TELEMETRY_OFF (511.13 µs) : 487, 535
.   : milestone, 511,
tracing (455.672 µs) : 435, 477
.   : milestone, 456,
section candidate
no_agent (389.671 µs) : 370, 409
.   : milestone, 390,
iast (517.611 µs) : 494, 541
.   : milestone, 518,
iast_FULL (749.673 µs) : 728, 771
.   : milestone, 750,
iast_GLOBAL (555.08 µs) : 533, 577
.   : milestone, 555,
iast_HARDCODED_SECRET_DISABLED (515.406 µs) : 492, 538
.   : milestone, 515,
iast_INACTIVE (463.554 µs) : 442, 485
.   : milestone, 464,
iast_TELEMETRY_OFF (499.715 µs) : 477, 523
.   : milestone, 500,
tracing (459.436 µs) : 438, 481
.   : milestone, 459,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 381.721 µs [360.921 µs, 402.522 µs] -
iast 513.099 µs [489.837 µs, 536.362 µs] 131.378 µs (34.4%)
iast_FULL 754.552 µs [731.661 µs, 777.444 µs] 372.831 µs (97.7%)
iast_GLOBAL 555.704 µs [532.539 µs, 578.87 µs] 173.983 µs (45.6%)
iast_HARDCODED_SECRET_DISABLED 514.77 µs [491.175 µs, 538.366 µs] 133.049 µs (34.9%)
iast_INACTIVE 464.022 µs [442.767 µs, 485.277 µs] 82.301 µs (21.6%)
iast_TELEMETRY_OFF 511.13 µs [487.287 µs, 534.973 µs] 129.409 µs (33.9%)
tracing 455.672 µs [434.566 µs, 476.778 µs] 73.95 µs (19.4%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 389.671 µs [369.937 µs, 409.405 µs] -
iast 517.611 µs [494.074 µs, 541.147 µs] 127.939 µs (32.8%)
iast_FULL 749.673 µs [727.852 µs, 771.495 µs] 360.002 µs (92.4%)
iast_GLOBAL 555.08 µs [533.305 µs, 576.855 µs] 165.409 µs (42.4%)
iast_HARDCODED_SECRET_DISABLED 515.406 µs [492.35 µs, 538.461 µs] 125.734 µs (32.3%)
iast_INACTIVE 463.554 µs [441.783 µs, 485.325 µs] 73.882 µs (19.0%)
iast_TELEMETRY_OFF 499.715 µs [476.592 µs, 522.838 µs] 110.044 µs (28.2%)
tracing 459.436 µs [438.079 µs, 480.792 µs] 69.765 µs (17.9%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.46.0-SNAPSHOT~2eac34e214, baseline=1.46.0-SNAPSHOT~a6b67c32c5
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.351 ms) : 1331, 1370
.   : milestone, 1351,
appsec (1.742 ms) : 1718, 1766
.   : milestone, 1742,
appsec_no_iast (1.752 ms) : 1726, 1778
.   : milestone, 1752,
iast (1.499 ms) : 1475, 1523
.   : milestone, 1499,
profiling (1.53 ms) : 1507, 1553
.   : milestone, 1530,
tracing (1.489 ms) : 1464, 1514
.   : milestone, 1489,
section candidate
no_agent (1.361 ms) : 1341, 1382
.   : milestone, 1361,
appsec (1.759 ms) : 1736, 1783
.   : milestone, 1759,
appsec_no_iast (1.77 ms) : 1747, 1793
.   : milestone, 1770,
iast (1.512 ms) : 1487, 1536
.   : milestone, 1512,
profiling (1.52 ms) : 1497, 1543
.   : milestone, 1520,
tracing (1.503 ms) : 1477, 1528
.   : milestone, 1503,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.351 ms [1.331 ms, 1.37 ms] -
appsec 1.742 ms [1.718 ms, 1.766 ms] 391.33 µs (29.0%)
appsec_no_iast 1.752 ms [1.726 ms, 1.778 ms] 401.31 µs (29.7%)
iast 1.499 ms [1.475 ms, 1.523 ms] 148.309 µs (11.0%)
profiling 1.53 ms [1.507 ms, 1.553 ms] 179.134 µs (13.3%)
tracing 1.489 ms [1.464 ms, 1.514 ms] 138.023 µs (10.2%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.361 ms [1.341 ms, 1.382 ms] -
appsec 1.759 ms [1.736 ms, 1.783 ms] 397.89 µs (29.2%)
appsec_no_iast 1.77 ms [1.747 ms, 1.793 ms] 408.797 µs (30.0%)
iast 1.512 ms [1.487 ms, 1.536 ms] 150.384 µs (11.0%)
profiling 1.52 ms [1.497 ms, 1.543 ms] 158.653 µs (11.7%)
tracing 1.503 ms [1.477 ms, 1.528 ms] 141.262 µs (10.4%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/context-helper
git_commit_date 1738237225 1738238400
git_commit_sha a6b67c3 2eac34e
release_version 1.46.0-SNAPSHOT~a6b67c32c5 1.46.0-SNAPSHOT~2eac34e214
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1738240434 1738240434
ci_job_id 787164971 787164971
ci_pipeline_id 54433577 54433577
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-unakjcuf-project-304-concurrent-1-eqa84c0q 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux Linux runner-unakjcuf-project-304-concurrent-1-eqa84c0q 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
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.46.0-SNAPSHOT~2eac34e214, baseline=1.46.0-SNAPSHOT~a6b67c32c5
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.613 s) : 15613000, 15613000
.   : milestone, 15613000,
appsec (15.031 s) : 15031000, 15031000
.   : milestone, 15031000,
iast (18.585 s) : 18585000, 18585000
.   : milestone, 18585000,
iast_GLOBAL (17.983 s) : 17983000, 17983000
.   : milestone, 17983000,
profiling (15.7 s) : 15700000, 15700000
.   : milestone, 15700000,
tracing (14.857 s) : 14857000, 14857000
.   : milestone, 14857000,
section candidate
no_agent (14.92 s) : 14920000, 14920000
.   : milestone, 14920000,
appsec (15.033 s) : 15033000, 15033000
.   : milestone, 15033000,
iast (18.513 s) : 18513000, 18513000
.   : milestone, 18513000,
iast_GLOBAL (17.994 s) : 17994000, 17994000
.   : milestone, 17994000,
profiling (15.132 s) : 15132000, 15132000
.   : milestone, 15132000,
tracing (15.018 s) : 15018000, 15018000
.   : milestone, 15018000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.613 s [15.613 s, 15.613 s] -
appsec 15.031 s [15.031 s, 15.031 s] -582.0 ms (-3.7%)
iast 18.585 s [18.585 s, 18.585 s] 2.972 s (19.0%)
iast_GLOBAL 17.983 s [17.983 s, 17.983 s] 2.37 s (15.2%)
profiling 15.7 s [15.7 s, 15.7 s] 87.0 ms (0.6%)
tracing 14.857 s [14.857 s, 14.857 s] -756.0 ms (-4.8%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.92 s [14.92 s, 14.92 s] -
appsec 15.033 s [15.033 s, 15.033 s] 113.0 ms (0.8%)
iast 18.513 s [18.513 s, 18.513 s] 3.593 s (24.1%)
iast_GLOBAL 17.994 s [17.994 s, 17.994 s] 3.074 s (20.6%)
profiling 15.132 s [15.132 s, 15.132 s] 212.0 ms (1.4%)
tracing 15.018 s [15.018 s, 15.018 s] 98.0 ms (0.7%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.46.0-SNAPSHOT~2eac34e214, baseline=1.46.0-SNAPSHOT~a6b67c32c5
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.475 ms) : 1464, 1487
.   : milestone, 1475,
appsec (2.378 ms) : 2334, 2421
.   : milestone, 2378,
iast (2.122 ms) : 2067, 2177
.   : milestone, 2122,
iast_GLOBAL (2.162 ms) : 2107, 2218
.   : milestone, 2162,
profiling (1.966 ms) : 1923, 2010
.   : milestone, 1966,
tracing (1.954 ms) : 1912, 1996
.   : milestone, 1954,
section candidate
no_agent (1.477 ms) : 1465, 1488
.   : milestone, 1477,
appsec (2.378 ms) : 2334, 2421
.   : milestone, 2378,
iast (2.125 ms) : 2070, 2180
.   : milestone, 2125,
iast_GLOBAL (2.16 ms) : 2105, 2215
.   : milestone, 2160,
profiling (2.01 ms) : 1964, 2055
.   : milestone, 2010,
tracing (1.957 ms) : 1915, 2000
.   : milestone, 1957,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.475 ms [1.464 ms, 1.487 ms] -
appsec 2.378 ms [2.334 ms, 2.421 ms] 902.326 µs (61.2%)
iast 2.122 ms [2.067 ms, 2.177 ms] 646.733 µs (43.8%)
iast_GLOBAL 2.162 ms [2.107 ms, 2.218 ms] 687.075 µs (46.6%)
profiling 1.966 ms [1.923 ms, 2.01 ms] 491.042 µs (33.3%)
tracing 1.954 ms [1.912 ms, 1.996 ms] 478.728 µs (32.4%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.477 ms [1.465 ms, 1.488 ms] -
appsec 2.378 ms [2.334 ms, 2.421 ms] 901.154 µs (61.0%)
iast 2.125 ms [2.07 ms, 2.18 ms] 648.182 µs (43.9%)
iast_GLOBAL 2.16 ms [2.105 ms, 2.215 ms] 683.591 µs (46.3%)
profiling 2.01 ms [1.964 ms, 2.055 ms] 532.995 µs (36.1%)
tracing 1.957 ms [1.915 ms, 2.0 ms] 480.612 µs (32.6%)

@mcculls mcculls force-pushed the bbujon/context-helper branch from 6f7c96d to 2eac34e Compare January 30, 2025 12:00
Copy link
Contributor

@mcculls mcculls left a comment

Choose a reason for hiding this comment

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

LGTM - additional work will be needed to handle context implementations outside of the empty/single/indexed case, but that will be done in a separate PR (just thinking through the implications) and doesn't need to block merging of this PR

@PerfectSlayer
Copy link
Contributor Author

As the scope manager is not in place, there is currently no use for this API.
Instrumentation can start using it once there will be multiple sources of context available.
We can merge it for now, and revise the API or implementation with the first use case then 🤔

@PerfectSlayer PerfectSlayer merged commit 51fc9b9 into master Jan 30, 2025
197 of 198 checks passed
@PerfectSlayer PerfectSlayer deleted the bbujon/context-helper branch January 30, 2025 16:52
@github-actions github-actions bot added this to the 1.46.0 milestone Jan 30, 2025
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Jan 31, 2025
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
|
[com.google.cloud:google-cloud-datastore](https://github.com/googleapis/java-datastore)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.25.4` -> `2.26.0` |
| [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.45.2` -> `1.46.0` |
| [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.45.2` -> `1.46.0` |
| [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
|
[software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
| [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
| [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
| [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |
| [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.9` -> `2.30.10` |

---

### Release Notes

<details>
<summary>googleapis/java-datastore
(com.google.cloud:google-cloud-datastore)</summary>

###
[`v2.26.0`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2260-2025-01-29)

##### Features

- Add firestoreInDatastoreMode for datastore emulator
([#&#8203;1698](googleapis/java-datastore#1698))
([50f106d](googleapis/java-datastore@50f106d))

##### Dependencies

- Update dependency com.google.cloud:sdk-platform-java-config to v3.42.0
([#&#8203;1725](googleapis/java-datastore#1725))
([1cbaf22](googleapis/java-datastore@1cbaf22))

</details>

<details>
<summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary>

###
[`v1.46.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.46.0):
1.46.0

##### Breaking Changes

> \[!WARNING]
> jnr-unixsocket is now an external dependency of dd-trace-ot and must
be included when deploying dd-trace-ot.

> \[!NOTE]
> The API `TracerScope.setAsync(boolean)`, used to manually control
asynchronous span propagation, does no more apply to the scope instance
but to the active span scope.

##### Components

##### Application Security Management (IAST)

- 🐛 Fix String.replace instrumentation for IAST
([#&#8203;8281](DataDog/dd-trace-java#8281) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Apply the standard nomenclature to the stacktrace configs
([#&#8203;8244](DataDog/dd-trace-java#8244) -
[@&#8203;jandro996](https://github.com/jandro996))
- 🐛 Exclude false positive weak randomness
([#&#8203;8232](DataDog/dd-trace-java#8232) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Propagation of translateEscapes of String class
([#&#8203;8186](DataDog/dd-trace-java#8186) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))
- ✨ Add security control metrics
([#&#8203;8175](DataDog/dd-trace-java#8175) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Increase IAST propagation to StringBuffer setLength
([#&#8203;8128](DataDog/dd-trace-java#8128) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Add IAST taint tracking for DB values
([#&#8203;8072](DataDog/dd-trace-java#8072) -
[@&#8203;Mariovido](https://github.com/Mariovido))

##### Application Security Management (WAF)

- 🐛 Prevents a NPE when there is no subscriber for user events
([#&#8203;8258](DataDog/dd-trace-java#8258) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Apply the standard nomenclature to the stacktrace configs
([#&#8203;8244](DataDog/dd-trace-java#8244) -
[@&#8203;jandro996](https://github.com/jandro996))
- 🐛 Ensure cached subscriptions are cleared on reconfiguration via
RC ([#&#8203;8229](DataDog/dd-trace-java#8229)
-
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Add support for session tracking in Vertx
([#&#8203;8167](DataDog/dd-trace-java#8167) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Create span tag: \_dd.appsec.rasp.timeout
([#&#8203;8269](DataDog/dd-trace-java#8269) -
[@&#8203;Mariovido](https://github.com/Mariovido))

##### Build & Tooling

- 🐛 Ensure shaded helpers have unique names when injected into
class-loaders
([#&#8203;8192](DataDog/dd-trace-java#8192) -
[@&#8203;mcculls](https://github.com/mcculls))

##### Configuration at Runtime

- 🐛 Remove filtering of `DD_SERVICE` and `DD_ENV` from the tracer
([#&#8203;8176](DataDog/dd-trace-java#8176) -
[@&#8203;mhlidd](https://github.com/mhlidd))

##### Continuous Integration Visibility

- 🧹 Generalize TestRetryPolicy to TestExecutionPolicy
([#&#8203;8302](DataDog/dd-trace-java#8302) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🧹 Parallelize CI Visibility settings requests
([#&#8203;8299](DataDog/dd-trace-java#8299) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🧹 Generalize test retry logic
([#&#8203;8289](DataDog/dd-trace-java#8289) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🧹 Generalize tests skipping logic
([#&#8203;8288](DataDog/dd-trace-java#8288) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🧹 Remove skip and shouldBeSkipped methods from TestEventsHandler
in favor of isSkippable
([#&#8203;8286](DataDog/dd-trace-java#8286) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨⚡ Optimize Git repository information computation
([#&#8203;8270](DataDog/dd-trace-java#8270) -
[@&#8203;dougqh](https://github.com/dougqh))
- ✨ Always request known tests from the backend
([#&#8203;8268](DataDog/dd-trace-java#8268) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Fix NPE when trying to get retry analyzer in Test NG
([#&#8203;8253](DataDog/dd-trace-java#8253) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Set test framework and test framework version tags atomically
([#&#8203;8252](DataDog/dd-trace-java#8252) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Add debug logging to Android Gradle module layout logic
([#&#8203;8251](DataDog/dd-trace-java#8251) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Fix source and destination folders computation for Android
Gradle projects
([#&#8203;8190](DataDog/dd-trace-java#8190) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Add basic Scala Weaver sbt support
([#&#8203;8189](DataDog/dd-trace-java#8189) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Implement impacted tests detection
([#&#8203;8188](DataDog/dd-trace-java#8188) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))

##### Data Streams Monitoring

- ✨ Change hash computation for protobuf to better represent
impacting changes + save proto number in schema
([#&#8203;8201](DataDog/dd-trace-java#8201) -
[@&#8203;vandonr](https://github.com/vandonr))

##### Database Monitoring

- Add peer service tag in dbm sql commenter
([#&#8203;7913](DataDog/dd-trace-java#7913) -
[@&#8203;jordan-wong](https://github.com/jordan-wong))

##### Dynamic Instrumentation

- ✨ Add support for SymDB to scan directories
([#&#8203;8306](DataDog/dd-trace-java#8306) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Add SymDB report for any jar scanning failures
([#&#8203;8300](DataDog/dd-trace-java#8300) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Use two budgets depending on type
([#&#8203;8283](DataDog/dd-trace-java#8283) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- ✨ Institute a 10 snapshot per probe per trace budget
([#&#8203;8277](DataDog/dd-trace-java#8277) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- 🐛 Avoid double snapshots for Exception Replay
([#&#8203;8273](DataDog/dd-trace-java#8273) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Simplify code origins. Separate out snapshot generation.
([#&#8203;8263](DataDog/dd-trace-java#8263) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- ✨ Add Exception probe custom instrumentation
([#&#8203;8230](DataDog/dd-trace-java#8230) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Enhance log probes to honor debug session tags
([#&#8203;8215](DataDog/dd-trace-java#8215) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- 🐛 Don't redact env tokens from debugger probe snapshots
([#&#8203;8211](DataDog/dd-trace-java#8211) -
[@&#8203;watson](https://github.com/watson))
- ✨⚡ Move Trace/SpanId capture at commit time
([#&#8203;8184](DataDog/dd-trace-java#8184) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Capture values at entry for method probe
([#&#8203;8169](DataDog/dd-trace-java#8169) -
[@&#8203;jpbempel](https://github.com/jpbempel))

##### JMX fetch

- 🐛 Mute JMXFetch Shutdown in progress error
([#&#8203;8068](DataDog/dd-trace-java#8068) -
[@&#8203;ygree](https://github.com/ygree))

##### OpenTracing

- ⚠️🧹 Make jnr-unixsocket an explicit dependency of
dd-trace-ot
([#&#8203;8307](DataDog/dd-trace-java#8307) -
[@&#8203;mcculls](https://github.com/mcculls))

##### Profiling

- 🐛 Avoid unsupported API call for creating folders on windows
([#&#8203;8304](DataDog/dd-trace-java#8304) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ Tag profiles for serverless
([#&#8203;8279](DataDog/dd-trace-java#8279) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ add queue type and length to queue events
([#&#8203;8242](DataDog/dd-trace-java#8242) -
[@&#8203;richardstartin](https://github.com/richardstartin))
- 🐛 TempLocationManager Fixes and Improvements
([#&#8203;8191](DataDog/dd-trace-java#8191) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ Bump ddprof to 1.18.0
([#&#8203;8173](DataDog/dd-trace-java#8173) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ Report profiler initialization and configuration errors to
telemetry
([#&#8203;8171](DataDog/dd-trace-java#8171) -
[@&#8203;jbachorik](https://github.com/jbachorik))

##### Telemetry

- ✨ Add pending traces report in tracer flares
([#&#8203;8053](DataDog/dd-trace-java#8053) -
[@&#8203;mhlidd](https://github.com/mhlidd))

##### Testing

- ✨ Test http server requests in parallel
([#&#8203;8222](DataDog/dd-trace-java#8222) -
[@&#8203;amarziali](https://github.com/amarziali))

##### Trace context propagation

- ✨ Add non default propagator registration
([#&#8203;8310](DataDog/dd-trace-java#8310) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

##### Tracer core

- ✨ Probe for existence of IBMSASL or ACCP security providers
([#&#8203;8276](DataDog/dd-trace-java#8276) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨⚡ Overhead improvement to agent feedback based sampling
([#&#8203;8265](DataDog/dd-trace-java#8265) -
[@&#8203;dougqh](https://github.com/dougqh))
- 🧹 Move async propagation API from scope to tracer
([#&#8203;8231](DataDog/dd-trace-java#8231) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨ Introduce context propagation API
([#&#8203;8161](DataDog/dd-trace-java#8161) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨🧪 Use env-entry to add tags per webapp deployment
([#&#8203;8138](DataDog/dd-trace-java#8138) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Introduce context helpers API
([#&#8203;8134](DataDog/dd-trace-java#8134) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨ Support IPv6 values for `DD_AGENT_HOST` and
`DD_TRACE_AGENT_URL`
([#&#8203;7984](DataDog/dd-trace-java#7984) -
[@&#8203;mhlidd](https://github.com/mhlidd))

##### Instrumentations

##### Apache HttpComponents

- 🐛 Properly finish spans and support latest apache httpclient5
([#&#8203;8272](DataDog/dd-trace-java#8272) -
[@&#8203;amarziali](https://github.com/amarziali))

##### AWS Lambda instrumentation

- 🐛 Properly capture lambda payloads for all handler types.
([#&#8203;8264](DataDog/dd-trace-java#8264) -
[@&#8203;purple4reina](https://github.com/purple4reina))

##### AWS S3 instrumentation

- 💡 Create S3 instrumentation + add span pointers
([#&#8203;8075](DataDog/dd-trace-java#8075) -
[@&#8203;nhulston](https://github.com/nhulston))

##### AWS SDK instrumentation

- 🐛 Revert "Add avoid double instrumenting lambda non-streaming
handlers."
([#&#8203;8247](DataDog/dd-trace-java#8247) -
[@&#8203;nhulston](https://github.com/nhulston))

##### Cassandra

- ✨ Allow extracting keyspace from statement result
([#&#8203;8239](DataDog/dd-trace-java#8239) -
[@&#8203;amarziali](https://github.com/amarziali))

##### Core Java language instrumentation

- ✨ Propagation of translateEscapes of String class
([#&#8203;8186](DataDog/dd-trace-java#8186) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))

##### Eclipse Vert.x instrumentation

- 🐛 Fix vertx worker propagation and error handling
([#&#8203;8237](DataDog/dd-trace-java#8237) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Support vertx 5
([#&#8203;8220](DataDog/dd-trace-java#8220) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Add support for session tracking in Vertx
([#&#8203;8167](DataDog/dd-trace-java#8167) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))

##### Kafka instrumentation

- 🐛 Prevent possible NPE calculating Kafka record header size
([#&#8203;8292](DataDog/dd-trace-java#8292) -
[@&#8203;ygree](https://github.com/ygree))

##### Mule instrumentation

- 🐛 Fix crash using Mule with JPMS
([#&#8203;8187](DataDog/dd-trace-java#8187) -
[@&#8203;amarziali](https://github.com/amarziali))

##### Protocol Buffer instrumentation

- ✨ Change hash computation for protobuf to better represent
impacting changes + save proto number in schema
([#&#8203;8201](DataDog/dd-trace-java#8201) -
[@&#8203;vandonr](https://github.com/vandonr))

##### Spring instrumentation

- 🐛 Preserve getQualifier from spring scheduling runnables
([#&#8203;8293](DataDog/dd-trace-java#8293) -
[@&#8203;amarziali](https://github.com/amarziali))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am
every weekday" in timezone Australia/Melbourne, Automerge - At any time
(no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

GitOrigin-RevId: bb09d47e4eed77a003f630273b4d0a84003eb899
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants