dd-trace-java
dd-trace-java copied to clipboard
Add DSM checkpoint for S3 calls in aws-sdk-1
trafficstars
What Does This Do
Add DSM checkpoint when reading/writing to S3 using aws-sdk-1
Motivation
Connect services based on which data they are reading/writing in S3
Additional Notes
Using the Content-Length header in order to get the payload size
Adding two new DSM tags:
ds.name: full path to the objectds.namespacebucket of the object
Benchmarks
Startup
Parameters
| Baseline | Candidate | |
|---|---|---|
| baseline_or_candidate | baseline | candidate |
| git_branch | master | paul.laffon/s3-dsm-checkpoint |
| git_commit_date | 1710419725 | 1710434230 |
| git_commit_sha | 8d4f9c2c40 | 7f22f3ca7e |
| release_version | 1.32.0-SNAPSHOT~8d4f9c2c40 | 1.32.0-SNAPSHOT~7f22f3ca7e |
See matching parameters
| Baseline | Candidate | |
|---|---|---|
| application | insecure-bank | insecure-bank |
| ci_job_date | 1710437759 | 1710437759 |
| ci_job_id | 460010949 | 460010949 |
| ci_pipeline_id | 30115838 | 30115838 |
| 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 53 metrics, 10 unstable metrics.
Startup time reports for petclinic
gantt
title petclinic - global startup overhead: candidate=1.32.0-SNAPSHOT~7f22f3ca7e, baseline=1.32.0-SNAPSHOT~8d4f9c2c40
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.086 s) : 0, 1085642
Total [baseline] (9.198 s) : 0, 9197749
Agent [candidate] (1.08 s) : 0, 1079655
Total [candidate] (9.187 s) : 0, 9187083
section appsec
Agent [baseline] (1.21 s) : 0, 1209510
Total [baseline] (9.281 s) : 0, 9281129
Agent [candidate] (1.205 s) : 0, 1205174
Total [candidate] (9.308 s) : 0, 9307718
section iast
Agent [baseline] (1.206 s) : 0, 1206243
Total [baseline] (9.34 s) : 0, 9339720
Agent [candidate] (1.206 s) : 0, 1205605
Total [candidate] (9.339 s) : 0, 9338698
section profiling
Agent [baseline] (1.286 s) : 0, 1285891
Total [baseline] (9.397 s) : 0, 9397167
Agent [candidate] (1.274 s) : 0, 1273683
Total [candidate] (9.375 s) : 0, 9375362
- baseline results
| Module | Variant | Duration | Δ tracing |
|---|---|---|---|
| Agent | tracing | 1.086 s | - |
| Agent | appsec | 1.21 s | 123.868 ms (11.4%) |
| Agent | iast | 1.206 s | 120.601 ms (11.1%) |
| Agent | profiling | 1.286 s | 200.249 ms (18.4%) |
| Total | tracing | 9.198 s | - |
| Total | appsec | 9.281 s | 83.381 ms (0.9%) |
| Total | iast | 9.34 s | 141.971 ms (1.5%) |
| Total | profiling | 9.397 s | 199.418 ms (2.2%) |
- candidate results
| Module | Variant | Duration | Δ tracing |
|---|---|---|---|
| Agent | tracing | 1.08 s | - |
| Agent | appsec | 1.205 s | 125.519 ms (11.6%) |
| Agent | iast | 1.206 s | 125.95 ms (11.7%) |
| Agent | profiling | 1.274 s | 194.028 ms (18.0%) |
| Total | tracing | 9.187 s | - |
| Total | appsec | 9.308 s | 120.634 ms (1.3%) |
| Total | iast | 9.339 s | 151.615 ms (1.7%) |
| Total | profiling | 9.375 s | 188.278 ms (2.0%) |
gantt
title petclinic - break down per module: candidate=1.32.0-SNAPSHOT~7f22f3ca7e, baseline=1.32.0-SNAPSHOT~8d4f9c2c40
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (700.771 ms) : 0, 700771
BytebuddyAgent [candidate] (695.767 ms) : 0, 695767
GlobalTracer [baseline] (292.82 ms) : 0, 292820
GlobalTracer [candidate] (292.275 ms) : 0, 292275
AppSec [baseline] (48.928 ms) : 0, 48928
AppSec [candidate] (48.881 ms) : 0, 48881
Remote Config [baseline] (742.911 µs) : 0, 743
Remote Config [candidate] (741.089 µs) : 0, 741
Telemetry [baseline] (7.817 ms) : 0, 7817
Telemetry [candidate] (7.751 ms) : 0, 7751
section appsec
BytebuddyAgent [baseline] (702.122 ms) : 0, 702122
BytebuddyAgent [candidate] (698.6 ms) : 0, 698600
GlobalTracer [baseline] (293.311 ms) : 0, 293311
GlobalTracer [candidate] (292.829 ms) : 0, 292829
AppSec [baseline] (153.949 ms) : 0, 153949
AppSec [candidate] (153.699 ms) : 0, 153699
IAST [baseline] (18.012 ms) : 0, 18012
IAST [candidate] (18.046 ms) : 0, 18046
Remote Config [baseline] (614.578 µs) : 0, 615
Remote Config [candidate] (613.86 µs) : 0, 614
Telemetry [baseline] (6.91 ms) : 0, 6910
Telemetry [candidate] (6.919 ms) : 0, 6919
section iast
BytebuddyAgent [baseline] (801.797 ms) : 0, 801797
BytebuddyAgent [candidate] (801.156 ms) : 0, 801156
GlobalTracer [baseline] (288.96 ms) : 0, 288960
GlobalTracer [candidate] (289.575 ms) : 0, 289575
AppSec [baseline] (51.577 ms) : 0, 51577
AppSec [candidate] (50.493 ms) : 0, 50493
IAST [baseline] (22.289 ms) : 0, 22289
IAST [candidate] (22.844 ms) : 0, 22844
Remote Config [baseline] (608.185 µs) : 0, 608
Remote Config [candidate] (593.226 µs) : 0, 593
Telemetry [baseline] (6.622 ms) : 0, 6622
Telemetry [candidate] (6.546 ms) : 0, 6546
section profiling
BytebuddyAgent [baseline] (697.205 ms) : 0, 697205
BytebuddyAgent [candidate] (689.436 ms) : 0, 689436
GlobalTracer [baseline] (378.794 ms) : 0, 378794
GlobalTracer [candidate] (375.965 ms) : 0, 375965
AppSec [baseline] (50.028 ms) : 0, 50028
AppSec [candidate] (49.534 ms) : 0, 49534
Remote Config [baseline] (798.866 µs) : 0, 799
Remote Config [candidate] (795.919 µs) : 0, 796
Telemetry [baseline] (7.494 ms) : 0, 7494
Telemetry [candidate] (7.399 ms) : 0, 7399
ProfilingAgent [baseline] (94.733 ms) : 0, 94733
ProfilingAgent [candidate] (94.473 ms) : 0, 94473
Profiling [baseline] (94.756 ms) : 0, 94756
Profiling [candidate] (94.498 ms) : 0, 94498
Startup time reports for insecure-bank
gantt
title insecure-bank - global startup overhead: candidate=1.32.0-SNAPSHOT~7f22f3ca7e, baseline=1.32.0-SNAPSHOT~8d4f9c2c40
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.082 s) : 0, 1081532
Total [baseline] (8.553 s) : 0, 8553360
Agent [candidate] (1.082 s) : 0, 1082293
Total [candidate] (8.578 s) : 0, 8578277
section iast
Agent [baseline] (1.211 s) : 0, 1211101
Total [baseline] (9.048 s) : 0, 9048327
Agent [candidate] (1.205 s) : 0, 1205160
Total [candidate] (9.029 s) : 0, 9028781
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.211 s) : 0, 1211180
Total [baseline] (9.026 s) : 0, 9026246
Agent [candidate] (1.208 s) : 0, 1208363
Total [candidate] (9.016 s) : 0, 9016309
section iast_TELEMETRY_OFF
Agent [baseline] (1.206 s) : 0, 1206070
Total [baseline] (9.071 s) : 0, 9071160
Agent [candidate] (1.198 s) : 0, 1197737
Total [candidate] (9.033 s) : 0, 9033110
- baseline results
| Module | Variant | Duration | Δ tracing |
|---|---|---|---|
| Agent | tracing | 1.082 s | - |
| Agent | iast | 1.211 s | 129.57 ms (12.0%) |
| Agent | iast_HARDCODED_SECRET_DISABLED | 1.211 s | 129.648 ms (12.0%) |
| Agent | iast_TELEMETRY_OFF | 1.206 s | 124.538 ms (11.5%) |
| Total | tracing | 8.553 s | - |
| Total | iast | 9.048 s | 494.967 ms (5.8%) |
| Total | iast_HARDCODED_SECRET_DISABLED | 9.026 s | 472.885 ms (5.5%) |
| Total | iast_TELEMETRY_OFF | 9.071 s | 517.8 ms (6.1%) |
- candidate results
| Module | Variant | Duration | Δ tracing |
|---|---|---|---|
| Agent | tracing | 1.082 s | - |
| Agent | iast | 1.205 s | 122.867 ms (11.4%) |
| Agent | iast_HARDCODED_SECRET_DISABLED | 1.208 s | 126.07 ms (11.6%) |
| Agent | iast_TELEMETRY_OFF | 1.198 s | 115.444 ms (10.7%) |
| Total | tracing | 8.578 s | - |
| Total | iast | 9.029 s | 450.504 ms (5.3%) |
| Total | iast_HARDCODED_SECRET_DISABLED | 9.016 s | 438.032 ms (5.1%) |
| Total | iast_TELEMETRY_OFF | 9.033 s | 454.833 ms (5.3%) |
gantt
title insecure-bank - break down per module: candidate=1.32.0-SNAPSHOT~7f22f3ca7e, baseline=1.32.0-SNAPSHOT~8d4f9c2c40
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (698.072 ms) : 0, 698072
BytebuddyAgent [candidate] (698.376 ms) : 0, 698376
GlobalTracer [baseline] (291.595 ms) : 0, 291595
GlobalTracer [candidate] (292.063 ms) : 0, 292063
AppSec [baseline] (48.82 ms) : 0, 48820
AppSec [candidate] (48.867 ms) : 0, 48867
Remote Config [baseline] (731.318 µs) : 0, 731
Remote Config [candidate] (736.916 µs) : 0, 737
Telemetry [baseline] (7.886 ms) : 0, 7886
Telemetry [candidate] (7.822 ms) : 0, 7822
section iast
BytebuddyAgent [baseline] (805.734 ms) : 0, 805734
BytebuddyAgent [candidate] (799.683 ms) : 0, 799683
GlobalTracer [baseline] (290.428 ms) : 0, 290428
GlobalTracer [candidate] (289.555 ms) : 0, 289555
AppSec [baseline] (50.097 ms) : 0, 50097
AppSec [candidate] (48.705 ms) : 0, 48705
IAST [baseline] (23.029 ms) : 0, 23029
IAST [candidate] (24.626 ms) : 0, 24626
Remote Config [baseline] (603.852 µs) : 0, 604
Remote Config [candidate] (611.363 µs) : 0, 611
Telemetry [baseline] (6.643 ms) : 0, 6643
Telemetry [candidate] (7.395 ms) : 0, 7395
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (805.056 ms) : 0, 805056
BytebuddyAgent [candidate] (803.917 ms) : 0, 803917
GlobalTracer [baseline] (290.469 ms) : 0, 290469
GlobalTracer [candidate] (289.381 ms) : 0, 289381
AppSec [baseline] (51.096 ms) : 0, 51096
AppSec [candidate] (49.441 ms) : 0, 49441
IAST [baseline] (22.851 ms) : 0, 22851
IAST [candidate] (23.753 ms) : 0, 23753
Remote Config [baseline] (617.526 µs) : 0, 618
Remote Config [candidate] (606.262 µs) : 0, 606
Telemetry [baseline] (6.587 ms) : 0, 6587
Telemetry [candidate] (6.598 ms) : 0, 6598
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (798.705 ms) : 0, 798705
BytebuddyAgent [candidate] (792.676 ms) : 0, 792676
GlobalTracer [baseline] (291.131 ms) : 0, 291131
GlobalTracer [candidate] (289.507 ms) : 0, 289507
AppSec [baseline] (49.666 ms) : 0, 49666
AppSec [candidate] (47.886 ms) : 0, 47886
IAST [baseline] (25.016 ms) : 0, 25016
IAST [candidate] (26.356 ms) : 0, 26356
Remote Config [baseline] (578.752 µs) : 0, 579
Remote Config [candidate] (568.896 µs) : 0, 569
Telemetry [baseline] (6.49 ms) : 0, 6490
Telemetry [candidate] (6.425 ms) : 0, 6425
Load
Request duration reports for petclinic
gantt
title petclinic - request duration [CI 0.99] : candidate=1.32.0-SNAPSHOT~7f22f3ca7e, baseline=1.32.0-SNAPSHOT~8d4f9c2c40
dateFormat X
axisFormat %s
section baseline
no_agent (1.337 ms) : 1318, 1356
. : milestone, 1337,
appsec (1.772 ms) : 1748, 1795
. : milestone, 1772,
iast (1.513 ms) : 1490, 1537
. : milestone, 1513,
profiling (1.587 ms) : 1562, 1612
. : milestone, 1587,
tracing (1.51 ms) : 1487, 1533
. : milestone, 1510,
section candidate
no_agent (1.355 ms) : 1336, 1373
. : milestone, 1355,
appsec (1.768 ms) : 1745, 1792
. : milestone, 1768,
iast (1.522 ms) : 1499, 1544
. : milestone, 1522,
profiling (1.545 ms) : 1520, 1570
. : milestone, 1545,
tracing (1.496 ms) : 1473, 1519
. : milestone, 1496,
- baseline results
| Variant | Request duration [CI 0.99] | Δ no_agent |
|---|---|---|
| no_agent | 1.337 ms [1.318 ms, 1.356 ms] | - |
| appsec | 1.772 ms [1.748 ms, 1.795 ms] | 434.49 µs (32.5%) |
| iast | 1.513 ms [1.49 ms, 1.537 ms] | 175.992 µs (13.2%) |
| profiling | 1.587 ms [1.562 ms, 1.612 ms] | 249.404 µs (18.6%) |
| tracing | 1.51 ms [1.487 ms, 1.533 ms] | 172.894 µs (12.9%) |
- candidate results
| Variant | Request duration [CI 0.99] | Δ no_agent |
|---|---|---|
| no_agent | 1.355 ms [1.336 ms, 1.373 ms] | - |
| appsec | 1.768 ms [1.745 ms, 1.792 ms] | 413.78 µs (30.5%) |
| iast | 1.522 ms [1.499 ms, 1.544 ms] | 166.889 µs (12.3%) |
| profiling | 1.545 ms [1.52 ms, 1.57 ms] | 190.017 µs (14.0%) |
| tracing | 1.496 ms [1.473 ms, 1.519 ms] | 141.205 µs (10.4%) |
Request duration reports for insecure-bank
gantt
title insecure-bank - request duration [CI 0.99] : candidate=1.32.0-SNAPSHOT~7f22f3ca7e, baseline=1.32.0-SNAPSHOT~8d4f9c2c40
dateFormat X
axisFormat %s
section baseline
no_agent (361.023 µs) : 341, 382
. : milestone, 361,
iast (466.366 µs) : 446, 487
. : milestone, 466,
iast_FULL (539.055 µs) : 518, 560
. : milestone, 539,
iast_GLOBAL (492.308 µs) : 472, 513
. : milestone, 492,
iast_HARDCODED_SECRET_DISABLED (475.516 µs) : 455, 496
. : milestone, 476,
iast_INACTIVE (442.443 µs) : 422, 463
. : milestone, 442,
iast_TELEMETRY_OFF (466.051 µs) : 445, 487
. : milestone, 466,
tracing (445.891 µs) : 425, 467
. : milestone, 446,
section candidate
no_agent (360.74 µs) : 341, 381
. : milestone, 361,
iast (476.719 µs) : 456, 498
. : milestone, 477,
iast_FULL (534.538 µs) : 514, 555
. : milestone, 535,
iast_GLOBAL (496.001 µs) : 475, 517
. : milestone, 496,
iast_HARDCODED_SECRET_DISABLED (465.605 µs) : 445, 486
. : milestone, 466,
iast_INACTIVE (440.01 µs) : 419, 461
. : milestone, 440,
iast_TELEMETRY_OFF (464.119 µs) : 444, 485
. : milestone, 464,
tracing (438.604 µs) : 419, 459
. : milestone, 439,
- baseline results
| Variant | Request duration [CI 0.99] | Δ no_agent |
|---|---|---|
| no_agent | 361.023 µs [340.51 µs, 381.536 µs] | - |
| iast | 466.366 µs [446.082 µs, 486.649 µs] | 105.343 µs (29.2%) |
| iast_FULL | 539.055 µs [518.453 µs, 559.656 µs] | 178.031 µs (49.3%) |
| iast_GLOBAL | 492.308 µs [471.96 µs, 512.656 µs] | 131.285 µs (36.4%) |
| iast_HARDCODED_SECRET_DISABLED | 475.516 µs [454.704 µs, 496.329 µs] | 114.493 µs (31.7%) |
| iast_INACTIVE | 442.443 µs [422.372 µs, 462.514 µs] | 81.42 µs (22.6%) |
| iast_TELEMETRY_OFF | 466.051 µs [445.432 µs, 486.67 µs] | 105.028 µs (29.1%) |
| tracing | 445.891 µs [425.068 µs, 466.713 µs] | 84.867 µs (23.5%) |
- candidate results
| Variant | Request duration [CI 0.99] | Δ no_agent |
|---|---|---|
| no_agent | 360.74 µs [340.601 µs, 380.879 µs] | - |
| iast | 476.719 µs [455.711 µs, 497.727 µs] | 115.979 µs (32.2%) |
| iast_FULL | 534.538 µs [514.147 µs, 554.928 µs] | 173.797 µs (48.2%) |
| iast_GLOBAL | 496.001 µs [474.659 µs, 517.343 µs] | 135.261 µs (37.5%) |
| iast_HARDCODED_SECRET_DISABLED | 465.605 µs [445.366 µs, 485.843 µs] | 104.864 µs (29.1%) |
| iast_INACTIVE | 440.01 µs [419.173 µs, 460.847 µs] | 79.27 µs (22.0%) |
| iast_TELEMETRY_OFF | 464.119 µs [443.584 µs, 484.653 µs] | 103.378 µs (28.7%) |
| tracing | 438.604 µs [418.51 µs, 458.697 µs] | 77.863 µs (21.6%) |
This PR requires some additional work, as in the current implementation DSM stats are aggregated without taking ds tags into account. Please, do not merge yet.
Implemented in https://github.com/DataDog/dd-trace-java/pull/6859