DataDog / dd-trace-java

Datadog APM client for Java
https://docs.datadoghq.com/tracing/languages/java
Apache License 2.0
573 stars 284 forks source link

Inject trace context into AWS Step Functions input #7585

Open DylanLovesCoffee opened 3 weeks ago

DylanLovesCoffee commented 3 weeks ago

What Does This Do

Adds an instrumentation for AWS SDK Step Functions. This enables tracing for when a Lambda function invokes a Step Function. Trace context is injected into the Step Function's StartExecutionRequest/StartSyncExecutionRequest.Input object.

Example of traced step function in the Serverless org: app

The Logs to Traces Reducer will read the trace context from the Step Function logs and create a span for the Step Function.

Motivation

Continues the work done in Python and NodeJS.

Additional Notes

Screenshots of feature:

sfn-exec sfn-sync-exec

Contributor Checklist

Jira ticket: [SVLS-5249]

pr-commenter[bot] commented 1 week ago

Benchmarks

Startup

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2024-09-17T14:38:27 2024-09-17T14:45:11
git_branch master dylan/sfn-trace-ctx
git_commit_date 1726577115 1726583216
git_commit_sha 2d2c02962a 0778f3d29b
release_version 1.40.0-SNAPSHOT~2d2c02962a 1.40.0-SNAPSHOT~0778f3d29b
start_time 2024-09-17T14:38:15 2024-09-17T14:44:59
See matching parameters | |Baseline |Candidate | |---------------------|----------------------------------------------|----------------------------------------------| |application |insecure-bank |insecure-bank | |ci_job_date |1726584652 |1726584652 | |ci_job_id |642221794 |642221794 | |ci_pipeline_id|44506730 |44506730 | |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 9 metrics, 19 unstable metrics.

Request duration reports for petclinic ```mermaid gantt title petclinic - request duration [CI 0.99] : candidate=1.40.0-SNAPSHOT~0778f3d29b, baseline=1.40.0-SNAPSHOT~2d2c02962a dateFormat X axisFormat %s section baseline no_agent (1.306 ms) : 1287, 1325 . : milestone, 1306, appsec (1.686 ms) : 1661, 1711 . : milestone, 1686, appsec_no_iast (1.713 ms) : 1688, 1738 . : milestone, 1713, iast (1.461 ms) : 1438, 1483 . : milestone, 1461, profiling (1.508 ms) : 1476, 1541 . : milestone, 1508, tracing (1.447 ms) : 1423, 1471 . : milestone, 1447, section candidate no_agent (1.327 ms) : 1307, 1346 . : milestone, 1327, appsec (1.711 ms) : 1688, 1735 . : milestone, 1711, appsec_no_iast (1.703 ms) : 1679, 1727 . : milestone, 1703, iast (1.462 ms) : 1440, 1484 . : milestone, 1462, profiling (1.472 ms) : 1447, 1496 . : milestone, 1472, tracing (1.437 ms) : 1413, 1460 . : milestone, 1437, ``` * **baseline** results |Variant|Request duration [CI 0.99]|Δ no_agent| |---|---|---| |no_agent|1.306 ms [1.287 ms, 1.325 ms]|-| |appsec|1.686 ms [1.661 ms, 1.711 ms]|379.613 µs (29.1%)| |appsec_no_iast|1.713 ms [1.688 ms, 1.738 ms]|406.65 µs (31.1%)| |iast|1.461 ms [1.438 ms, 1.483 ms]|154.13 µs (11.8%)| |profiling|1.508 ms [1.476 ms, 1.541 ms]|201.951 µs (15.5%)| |tracing|1.447 ms [1.423 ms, 1.471 ms]|140.399 µs (10.7%)| * **candidate** results |Variant|Request duration [CI 0.99]|Δ no_agent| |---|---|---| |no_agent|1.327 ms [1.307 ms, 1.346 ms]|-| |appsec|1.711 ms [1.688 ms, 1.735 ms]|384.442 µs (29.0%)| |appsec_no_iast|1.703 ms [1.679 ms, 1.727 ms]|376.25 µs (28.4%)| |iast|1.462 ms [1.44 ms, 1.484 ms]|135.367 µs (10.2%)| |profiling|1.472 ms [1.447 ms, 1.496 ms]|145.066 µs (10.9%)| |tracing|1.437 ms [1.413 ms, 1.46 ms]|110.143 µs (8.3%)|
Request duration reports for insecure-bank ```mermaid gantt title insecure-bank - request duration [CI 0.99] : candidate=1.40.0-SNAPSHOT~0778f3d29b, baseline=1.40.0-SNAPSHOT~2d2c02962a dateFormat X axisFormat %s section baseline no_agent (346.957 µs) : 327, 367 . : milestone, 347, iast (457.543 µs) : 436, 479 . : milestone, 458, iast_FULL (531.257 µs) : 510, 552 . : milestone, 531, iast_GLOBAL (487.129 µs) : 464, 510 . : milestone, 487, iast_HARDCODED_SECRET_DISABLED (459.174 µs) : 438, 481 . : milestone, 459, iast_INACTIVE (422.061 µs) : 401, 443 . : milestone, 422, iast_TELEMETRY_OFF (453.259 µs) : 431, 476 . : milestone, 453, tracing (419.002 µs) : 398, 440 . : milestone, 419, section candidate no_agent (345.946 µs) : 325, 366 . : milestone, 346, iast (462.44 µs) : 441, 483 . : milestone, 462, iast_FULL (525.504 µs) : 504, 547 . : milestone, 526, iast_GLOBAL (481.09 µs) : 460, 502 . : milestone, 481, iast_HARDCODED_SECRET_DISABLED (461.058 µs) : 440, 482 . : milestone, 461, iast_INACTIVE (420.809 µs) : 400, 442 . : milestone, 421, iast_TELEMETRY_OFF (447.908 µs) : 426, 470 . : milestone, 448, tracing (416.551 µs) : 396, 437 . : milestone, 417, ``` * **baseline** results |Variant|Request duration [CI 0.99]|Δ no_agent| |---|---|---| |no_agent|346.957 µs [326.583 µs, 367.332 µs]|-| |iast|457.543 µs [436.41 µs, 478.677 µs]|110.586 µs (31.9%)| |iast_FULL|531.257 µs [510.262 µs, 552.253 µs]|184.3 µs (53.1%)| |iast_GLOBAL|487.129 µs [464.063 µs, 510.194 µs]|140.172 µs (40.4%)| |iast_HARDCODED_SECRET_DISABLED|459.174 µs [437.63 µs, 480.719 µs]|112.217 µs (32.3%)| |iast_INACTIVE|422.061 µs [401.186 µs, 442.935 µs]|75.103 µs (21.6%)| |iast_TELEMETRY_OFF|453.259 µs [430.615 µs, 475.902 µs]|106.301 µs (30.6%)| |tracing|419.002 µs [398.231 µs, 439.773 µs]|72.045 µs (20.8%)| * **candidate** results |Variant|Request duration [CI 0.99]|Δ no_agent| |---|---|---| |no_agent|345.946 µs [325.47 µs, 366.422 µs]|-| |iast|462.44 µs [441.438 µs, 483.443 µs]|116.494 µs (33.7%)| |iast_FULL|525.504 µs [504.018 µs, 546.991 µs]|179.558 µs (51.9%)| |iast_GLOBAL|481.09 µs [459.988 µs, 502.192 µs]|135.144 µs (39.1%)| |iast_HARDCODED_SECRET_DISABLED|461.058 µs [439.849 µs, 482.267 µs]|115.112 µs (33.3%)| |iast_INACTIVE|420.809 µs [399.538 µs, 442.079 µs]|74.863 µs (21.6%)| |iast_TELEMETRY_OFF|447.908 µs [425.703 µs, 470.114 µs]|101.962 µs (29.5%)| |tracing|416.551 µs [396.467 µs, 436.634 µs]|70.605 µs (20.4%)|

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master dylan/sfn-trace-ctx
git_commit_date 1726577115 1726583216
git_commit_sha 2d2c02962a 0778f3d29b
release_version 1.40.0-SNAPSHOT~2d2c02962a 1.40.0-SNAPSHOT~0778f3d29b
See matching parameters | |Baseline |Candidate | |---------------------|----------------------------------------------|----------------------------------------------| |application |biojava |biojava | |ci_job_date |1726585177 |1726585177 | |ci_job_id |642221796 |642221796 | |ci_pipeline_id|44506730 |44506730 | |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 11 metrics, 1 unstable metrics.

Execution time for tomcat ```mermaid gantt title tomcat - execution time [CI 0.99] : candidate=1.40.0-SNAPSHOT~0778f3d29b, baseline=1.40.0-SNAPSHOT~2d2c02962a dateFormat X axisFormat %s section baseline no_agent (1.437 ms) : 1426, 1448 . : milestone, 1437, appsec (2.239 ms) : 2199, 2279 . : milestone, 2239, iast (2.02 ms) : 1969, 2070 . : milestone, 2020, iast_GLOBAL (2.06 ms) : 2010, 2111 . : milestone, 2060, profiling (2.328 ms) : 2155, 2501 . : milestone, 2328, tracing (1.859 ms) : 1821, 1897 . : milestone, 1859, section candidate no_agent (1.436 ms) : 1424, 1447 . : milestone, 1436, appsec (2.246 ms) : 2205, 2286 . : milestone, 2246, iast (2.028 ms) : 1977, 2079 . : milestone, 2028, iast_GLOBAL (2.049 ms) : 1999, 2099 . : milestone, 2049, profiling (1.906 ms) : 1865, 1947 . : milestone, 1906, tracing (1.875 ms) : 1836, 1913 . : milestone, 1875, ``` * **baseline** results |Variant|Execution Time [CI 0.99]|Δ no_agent| |---|---|---| |no_agent|1.437 ms [1.426 ms, 1.448 ms]|-| |appsec|2.239 ms [2.199 ms, 2.279 ms]|802.062 µs (55.8%)| |iast|2.02 ms [1.969 ms, 2.07 ms]|582.673 µs (40.6%)| |iast_GLOBAL|2.06 ms [2.01 ms, 2.111 ms]|623.397 µs (43.4%)| |profiling|2.328 ms [2.155 ms, 2.501 ms]|891.271 µs (62.0%)| |tracing|1.859 ms [1.821 ms, 1.897 ms]|422.039 µs (29.4%)| * **candidate** results |Variant|Execution Time [CI 0.99]|Δ no_agent| |---|---|---| |no_agent|1.436 ms [1.424 ms, 1.447 ms]|-| |appsec|2.246 ms [2.205 ms, 2.286 ms]|809.951 µs (56.4%)| |iast|2.028 ms [1.977 ms, 2.079 ms]|592.012 µs (41.2%)| |iast_GLOBAL|2.049 ms [1.999 ms, 2.099 ms]|613.59 µs (42.7%)| |profiling|1.906 ms [1.865 ms, 1.947 ms]|470.36 µs (32.8%)| |tracing|1.875 ms [1.836 ms, 1.913 ms]|438.993 µs (30.6%)|
Execution time for biojava ```mermaid gantt title biojava - execution time [CI 0.99] : candidate=1.40.0-SNAPSHOT~0778f3d29b, baseline=1.40.0-SNAPSHOT~2d2c02962a dateFormat X axisFormat %s section baseline no_agent (14.899 s) : 14899000, 14899000 . : milestone, 14899000, appsec (15.294 s) : 15294000, 15294000 . : milestone, 15294000, iast (18.796 s) : 18796000, 18796000 . : milestone, 18796000, iast_GLOBAL (18.278 s) : 18278000, 18278000 . : milestone, 18278000, profiling (15.356 s) : 15356000, 15356000 . : milestone, 15356000, tracing (15.175 s) : 15175000, 15175000 . : milestone, 15175000, section candidate no_agent (15.783 s) : 15783000, 15783000 . : milestone, 15783000, appsec (15.26 s) : 15260000, 15260000 . : milestone, 15260000, iast (18.908 s) : 18908000, 18908000 . : milestone, 18908000, iast_GLOBAL (18.068 s) : 18068000, 18068000 . : milestone, 18068000, profiling (15.121 s) : 15121000, 15121000 . : milestone, 15121000, tracing (14.907 s) : 14907000, 14907000 . : milestone, 14907000, ``` * **baseline** results |Variant|Execution Time [CI 0.99]|Δ no_agent| |---|---|---| |no_agent|14.899 s [14.899 s, 14.899 s]|-| |appsec|15.294 s [15.294 s, 15.294 s]|395.0 ms (2.7%)| |iast|18.796 s [18.796 s, 18.796 s]|3.897 s (26.2%)| |iast_GLOBAL|18.278 s [18.278 s, 18.278 s]|3.379 s (22.7%)| |profiling|15.356 s [15.356 s, 15.356 s]|457.0 ms (3.1%)| |tracing|15.175 s [15.175 s, 15.175 s]|276.0 ms (1.9%)| * **candidate** results |Variant|Execution Time [CI 0.99]|Δ no_agent| |---|---|---| |no_agent|15.783 s [15.783 s, 15.783 s]|-| |appsec|15.26 s [15.26 s, 15.26 s]|-523.0 ms (-3.3%)| |iast|18.908 s [18.908 s, 18.908 s]|3.125 s (19.8%)| |iast_GLOBAL|18.068 s [18.068 s, 18.068 s]|2.285 s (14.5%)| |profiling|15.121 s [15.121 s, 15.121 s]|-662.0 ms (-4.2%)| |tracing|14.907 s [14.907 s, 14.907 s]|-876.0 ms (-5.6%)|