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

Add aws.object.key tag for aws-sdk-2 #6709

Merged
merged 1 commit into from Mar 4, 2024

Conversation

paul-laffon-dd
Copy link
Contributor

What Does This Do

Add aws.object.key for aws-sdk-2 to know which key is targeted by S3 get/put requests. Similar to this PR #6555 where it was done for aws-sdk-1

Motivation

More information on S3 request by having the key of the targeted object. It also unlocks object-level data lineage for S3

Additional Notes

@pr-commenter
Copy link

pr-commenter bot commented Feb 21, 2024

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master paul.laffon/aws-sdk-2-object-key
git_commit_date 1709116341 1709117514
git_commit_sha 0ee4826 0afbdb0
release_version 1.31.0-SNAPSHOT~0ee4826618 1.31.0-SNAPSHOT~0afbdb073f
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1709120749 1709120749
ci_job_id 445615437 445615437
ci_pipeline_id 29105006 29105006
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 43 metrics, 11 unstable metrics.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.31.0-SNAPSHOT~0afbdb073f, baseline=1.31.0-SNAPSHOT~0ee4826618

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.079 s) : 0, 1078801
Total [baseline] (9.143 s) : 0, 9142616
Agent [candidate] (1.079 s) : 0, 1079412
Total [candidate] (9.173 s) : 0, 9172612
section appsec
Agent [baseline] (1.179 s) : 0, 1179299
Total [baseline] (9.343 s) : 0, 9343051
Agent [candidate] (1.186 s) : 0, 1186420
Total [candidate] (9.347 s) : 0, 9347070
section iast
Agent [baseline] (1.208 s) : 0, 1207612
Total [baseline] (9.362 s) : 0, 9361717
Agent [candidate] (1.215 s) : 0, 1215146
Total [candidate] (9.391 s) : 0, 9391178
section profiling
Agent [baseline] (1.27 s) : 0, 1269567
Total [baseline] (9.335 s) : 0, 9334759
Agent [candidate] (1.28 s) : 0, 1279502
Total [candidate] (9.326 s) : 0, 9326189
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.079 s -
Agent appsec 1.179 s 100.498 ms (9.3%)
Agent iast 1.208 s 128.811 ms (11.9%)
Agent profiling 1.27 s 190.765 ms (17.7%)
Total tracing 9.143 s -
Total appsec 9.343 s 200.435 ms (2.2%)
Total iast 9.362 s 219.101 ms (2.4%)
Total profiling 9.335 s 192.143 ms (2.1%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.079 s -
Agent appsec 1.186 s 107.008 ms (9.9%)
Agent iast 1.215 s 135.734 ms (12.6%)
Agent profiling 1.28 s 200.089 ms (18.5%)
Total tracing 9.173 s -
Total appsec 9.347 s 174.458 ms (1.9%)
Total iast 9.391 s 218.567 ms (2.4%)
Total profiling 9.326 s 153.577 ms (1.7%)
gantt
    title petclinic - break down per module: candidate=1.31.0-SNAPSHOT~0afbdb073f, baseline=1.31.0-SNAPSHOT~0ee4826618

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (687.388 ms) : 0, 687388
BytebuddyAgent [candidate] (688.123 ms) : 0, 688123
GlobalTracer [baseline] (296.79 ms) : 0, 296790
GlobalTracer [candidate] (297.401 ms) : 0, 297401
AppSec [baseline] (51.641 ms) : 0, 51641
AppSec [candidate] (51.075 ms) : 0, 51075
Remote Config [baseline] (718.93 µs) : 0, 719
Remote Config [candidate] (712.43 µs) : 0, 712
Telemetry [baseline] (7.95 ms) : 0, 7950
Telemetry [candidate] (7.772 ms) : 0, 7772
section appsec
BytebuddyAgent [baseline] (688.978 ms) : 0, 688978
BytebuddyAgent [candidate] (692.198 ms) : 0, 692198
GlobalTracer [baseline] (297.286 ms) : 0, 297286
GlobalTracer [candidate] (300.179 ms) : 0, 300179
AppSec [baseline] (151.174 ms) : 0, 151174
AppSec [candidate] (151.838 ms) : 0, 151838
Remote Config [baseline] (637.912 µs) : 0, 638
Remote Config [candidate] (642.988 µs) : 0, 643
Telemetry [baseline] (6.945 ms) : 0, 6945
Telemetry [candidate] (7.009 ms) : 0, 7009
section iast
BytebuddyAgent [baseline] (800.568 ms) : 0, 800568
BytebuddyAgent [candidate] (805.919 ms) : 0, 805919
GlobalTracer [baseline] (289.248 ms) : 0, 289248
GlobalTracer [candidate] (291.499 ms) : 0, 291499
AppSec [baseline] (52.171 ms) : 0, 52171
AppSec [candidate] (52.577 ms) : 0, 52577
Remote Config [baseline] (609.62 µs) : 0, 610
Remote Config [candidate] (623.434 µs) : 0, 623
Telemetry [baseline] (6.697 ms) : 0, 6697
Telemetry [candidate] (9.043 ms) : 0, 9043
IAST [baseline] (23.995 ms) : 0, 23995
IAST [candidate] (20.807 ms) : 0, 20807
section profiling
ProfilingAgent [baseline] (93.715 ms) : 0, 93715
ProfilingAgent [candidate] (92.627 ms) : 0, 92627
BytebuddyAgent [baseline] (678.116 ms) : 0, 678116
BytebuddyAgent [candidate] (683.552 ms) : 0, 683552
GlobalTracer [baseline] (379.361 ms) : 0, 379361
GlobalTracer [candidate] (382.575 ms) : 0, 382575
AppSec [baseline] (52.635 ms) : 0, 52635
AppSec [candidate] (53.219 ms) : 0, 53219
Remote Config [baseline] (785.275 µs) : 0, 785
Remote Config [candidate] (802.795 µs) : 0, 803
Telemetry [baseline] (8.969 ms) : 0, 8969
Telemetry [candidate] (10.278 ms) : 0, 10278
Profiling [baseline] (93.739 ms) : 0, 93739
Profiling [candidate] (92.651 ms) : 0, 92651

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2024-02-28T11:22:12 2024-02-28T11:40:49
git_branch master paul.laffon/aws-sdk-2-object-key
git_commit_date 1709116341 1709117514
git_commit_sha 0ee4826 0afbdb0
release_version 1.31.0-SNAPSHOT~0ee4826618 1.31.0-SNAPSHOT~0afbdb073f
start_time 2024-02-28T11:21:59 2024-02-28T11:40:36
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1709120749 1709120749
ci_job_id 445615437 445615437
ci_pipeline_id 29105006 29105006
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, 14 unstable metrics.

Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.31.0-SNAPSHOT~0afbdb073f, baseline=1.31.0-SNAPSHOT~0ee4826618
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.355 ms) : 1336, 1373
.   : milestone, 1355,
appsec (1.789 ms) : 1765, 1813
.   : milestone, 1789,
iast (1.525 ms) : 1501, 1548
.   : milestone, 1525,
profiling (1.519 ms) : 1495, 1542
.   : milestone, 1519,
tracing (1.513 ms) : 1490, 1536
.   : milestone, 1513,
section candidate
no_agent (1.359 ms) : 1339, 1378
.   : milestone, 1359,
appsec (1.775 ms) : 1751, 1798
.   : milestone, 1775,
iast (1.537 ms) : 1514, 1560
.   : milestone, 1537,
profiling (1.517 ms) : 1494, 1541
.   : milestone, 1517,
tracing (1.499 ms) : 1476, 1523
.   : milestone, 1499,
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.355 ms [1.336 ms, 1.373 ms] -
appsec 1.789 ms [1.765 ms, 1.813 ms] 434.46 µs (32.1%)
iast 1.525 ms [1.501 ms, 1.548 ms] 170.014 µs (12.6%)
profiling 1.519 ms [1.495 ms, 1.542 ms] 163.996 µs (12.1%)
tracing 1.513 ms [1.49 ms, 1.536 ms] 158.003 µs (11.7%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.359 ms [1.339 ms, 1.378 ms] -
appsec 1.775 ms [1.751 ms, 1.798 ms] 416.144 µs (30.6%)
iast 1.537 ms [1.514 ms, 1.56 ms] 178.612 µs (13.1%)
profiling 1.517 ms [1.494 ms, 1.541 ms] 158.841 µs (11.7%)
tracing 1.499 ms [1.476 ms, 1.523 ms] 140.727 µs (10.4%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.31.0-SNAPSHOT~0afbdb073f, baseline=1.31.0-SNAPSHOT~0ee4826618
    dateFormat X
    axisFormat %s
section baseline
no_agent (365.448 µs) : 346, 385
.   : milestone, 365,
iast (473.095 µs) : 452, 494
.   : milestone, 473,
iast_FULL (536.707 µs) : 516, 557
.   : milestone, 537,
iast_GLOBAL (493.981 µs) : 473, 515
.   : milestone, 494,
iast_HARDCODED_SECRET_DISABLED (472.213 µs) : 451, 493
.   : milestone, 472,
iast_INACTIVE (453.51 µs) : 433, 474
.   : milestone, 454,
iast_TELEMETRY_OFF (468.321 µs) : 447, 489
.   : milestone, 468,
tracing (441.746 µs) : 421, 462
.   : milestone, 442,
section candidate
no_agent (364.333 µs) : 345, 384
.   : milestone, 364,
iast (472.528 µs) : 452, 493
.   : milestone, 473,
iast_FULL (534.523 µs) : 514, 555
.   : milestone, 535,
iast_GLOBAL (497.885 µs) : 477, 519
.   : milestone, 498,
iast_HARDCODED_SECRET_DISABLED (466.716 µs) : 447, 487
.   : milestone, 467,
iast_INACTIVE (439.832 µs) : 419, 460
.   : milestone, 440,
iast_TELEMETRY_OFF (469.489 µs) : 449, 490
.   : milestone, 469,
tracing (437.236 µs) : 417, 458
.   : milestone, 437,
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 365.448 µs [345.564 µs, 385.332 µs] -
iast 473.095 µs [452.185 µs, 494.005 µs] 107.647 µs (29.5%)
iast_FULL 536.707 µs [516.081 µs, 557.333 µs] 171.259 µs (46.9%)
iast_GLOBAL 493.981 µs [472.857 µs, 515.106 µs] 128.533 µs (35.2%)
iast_HARDCODED_SECRET_DISABLED 472.213 µs [451.29 µs, 493.135 µs] 106.765 µs (29.2%)
iast_INACTIVE 453.51 µs [433.269 µs, 473.752 µs] 88.062 µs (24.1%)
iast_TELEMETRY_OFF 468.321 µs [447.494 µs, 489.148 µs] 102.873 µs (28.1%)
tracing 441.746 µs [421.469 µs, 462.024 µs] 76.298 µs (20.9%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 364.333 µs [344.897 µs, 383.77 µs] -
iast 472.528 µs [451.978 µs, 493.078 µs] 108.195 µs (29.7%)
iast_FULL 534.523 µs [514.126 µs, 554.921 µs] 170.19 µs (46.7%)
iast_GLOBAL 497.885 µs [477.046 µs, 518.724 µs] 133.552 µs (36.7%)
iast_HARDCODED_SECRET_DISABLED 466.716 µs [446.518 µs, 486.914 µs] 102.383 µs (28.1%)
iast_INACTIVE 439.832 µs [419.413 µs, 460.251 µs] 75.499 µs (20.7%)
iast_TELEMETRY_OFF 469.489 µs [448.97 µs, 490.007 µs] 105.155 µs (28.9%)
tracing 437.236 µs [416.89 µs, 457.581 µs] 72.902 µs (20.0%)

@paul-laffon-dd paul-laffon-dd marked this pull request as ready for review February 28, 2024 12:58
@paul-laffon-dd paul-laffon-dd requested a review from a team as a code owner February 28, 2024 12:58
Copy link
Contributor

@dougqh dougqh left a comment

Choose a reason for hiding this comment

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

For overhead reasons, I'm not keen on the use of Optional.
Similarly catching ClassCastException

I also don't see a test that exercises the ClassCastException case.

@paul-laffon-dd paul-laffon-dd added the inst: aws sdk AWS SDK instrumentation label Mar 1, 2024
@paul-laffon-dd paul-laffon-dd merged commit e82d3f4 into master Mar 4, 2024
79 checks passed
@paul-laffon-dd paul-laffon-dd deleted the paul.laffon/aws-sdk-2-object-key branch March 4, 2024 08:45
@github-actions github-actions bot added this to the 1.31.0 milestone Mar 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
inst: aws sdk AWS SDK instrumentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants