Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Inject trace context into AWS Step Functions input #7585

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

Merged
merged 31 commits into from
Feb 19, 2025
Merged

Conversation

DylanLovesCoffee
Copy link
Contributor

@DylanLovesCoffee DylanLovesCoffee commented Sep 9, 2024

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
Screenshot 2025-02-06 at 4 36 43β€―PM

Contributor Checklist

Jira ticket: [SVLS-5249](https://datadoghq.atlassian.net/browse/SVLS-5249)

@DylanLovesCoffee DylanLovesCoffee requested a review from a team as a code owner September 9, 2024 15:07
Copy link
Collaborator

@amarziali amarziali left a comment

Choose a reason for hiding this comment

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

Using reflection is not efficient and should be avoided. Instead, MethodHandles can be used.
The pull request lacks also of a minimum test coverage. Test must be added

@pr-commenter
Copy link

pr-commenter bot commented Sep 16, 2024

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master dylan/sfn-trace-ctx
git_commit_date 1739895801 1739897266
git_commit_sha 0ba7b76 0f304c7
release_version 1.47.0-SNAPSHOT~0ba7b76f47 1.47.0-SNAPSHOT~0f304c70e2
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1739899723 1739899723
ci_job_id 812393942 812393942
ci_pipeline_id 56180929 56180929
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-pf96l-bk-project-304-concurrent-0-gjr7nd5n 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-pf96l-bk-project-304-concurrent-0-gjr7nd5n 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 58 metrics, 5 unstable metrics.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.47.0-SNAPSHOT~0f304c70e2, baseline=1.47.0-SNAPSHOT~0ba7b76f47

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.047 s) : 0, 1046545
Total [baseline] (10.481 s) : 0, 10480652
Agent [candidate] (1.039 s) : 0, 1039401
Total [candidate] (10.404 s) : 0, 10404299
section appsec
Agent [baseline] (1.19 s) : 0, 1190476
Total [baseline] (10.77 s) : 0, 10770225
Agent [candidate] (1.186 s) : 0, 1186132
Total [candidate] (10.793 s) : 0, 10792992
section iast
Agent [baseline] (1.178 s) : 0, 1178280
Total [baseline] (11.118 s) : 0, 11117690
Agent [candidate] (1.177 s) : 0, 1177372
Total [candidate] (11.072 s) : 0, 11072120
section profiling
Agent [baseline] (1.267 s) : 0, 1266717
Total [baseline] (10.897 s) : 0, 10897019
Agent [candidate] (1.273 s) : 0, 1273115
Total [candidate] (10.942 s) : 0, 10942347
Loading
  • baseline results
Module Variant Duration Ξ” tracing
Agent tracing 1.047 s -
Agent appsec 1.19 s 143.931 ms (13.8%)
Agent iast 1.178 s 131.735 ms (12.6%)
Agent profiling 1.267 s 220.172 ms (21.0%)
Total tracing 10.481 s -
Total appsec 10.77 s 289.573 ms (2.8%)
Total iast 11.118 s 637.038 ms (6.1%)
Total profiling 10.897 s 416.367 ms (4.0%)
  • candidate results
Module Variant Duration Ξ” tracing
Agent tracing 1.039 s -
Agent appsec 1.186 s 146.731 ms (14.1%)
Agent iast 1.177 s 137.971 ms (13.3%)
Agent profiling 1.273 s 233.714 ms (22.5%)
Total tracing 10.404 s -
Total appsec 10.793 s 388.694 ms (3.7%)
Total iast 11.072 s 667.822 ms (6.4%)
Total profiling 10.942 s 538.048 ms (5.2%)
gantt
    title petclinic - break down per module: candidate=1.47.0-SNAPSHOT~0f304c70e2, baseline=1.47.0-SNAPSHOT~0ba7b76f47

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (722.382 ms) : 0, 722382
BytebuddyAgent [candidate] (716.243 ms) : 0, 716243
GlobalTracer [baseline] (240.886 ms) : 0, 240886
GlobalTracer [candidate] (239.144 ms) : 0, 239144
AppSec [baseline] (55.76 ms) : 0, 55760
AppSec [candidate] (55.169 ms) : 0, 55169
Remote Config [baseline] (706.304 Β΅s) : 0, 706
Remote Config [candidate] (699.777 Β΅s) : 0, 700
Telemetry [baseline] (11.489 ms) : 0, 11489
Telemetry [candidate] (12.98 ms) : 0, 12980
section appsec
BytebuddyAgent [baseline] (739.239 ms) : 0, 739239
BytebuddyAgent [candidate] (736.343 ms) : 0, 736343
GlobalTracer [baseline] (238.36 ms) : 0, 238360
GlobalTracer [candidate] (236.875 ms) : 0, 236875
AppSec [baseline] (177.686 ms) : 0, 177686
AppSec [candidate] (177.874 ms) : 0, 177874
Remote Config [baseline] (677.253 Β΅s) : 0, 677
Remote Config [candidate] (659.977 Β΅s) : 0, 660
Telemetry [baseline] (8.301 ms) : 0, 8301
Telemetry [candidate] (8.268 ms) : 0, 8268
IAST [baseline] (21.728 ms) : 0, 21728
IAST [candidate] (21.623 ms) : 0, 21623
section iast
BytebuddyAgent [baseline] (841.327 ms) : 0, 841327
BytebuddyAgent [candidate] (839.209 ms) : 0, 839209
GlobalTracer [baseline] (231.326 ms) : 0, 231326
GlobalTracer [candidate] (232.179 ms) : 0, 232179
AppSec [baseline] (57.754 ms) : 0, 57754
AppSec [candidate] (57.894 ms) : 0, 57894
Remote Config [baseline] (617.929 Β΅s) : 0, 618
Remote Config [candidate] (627.842 Β΅s) : 0, 628
Telemetry [baseline] (8.77 ms) : 0, 8770
Telemetry [candidate] (8.888 ms) : 0, 8888
IAST [baseline] (23.008 ms) : 0, 23008
IAST [candidate] (23.321 ms) : 0, 23321
section profiling
ProfilingAgent [baseline] (96.867 ms) : 0, 96867
ProfilingAgent [candidate] (97.644 ms) : 0, 97644
BytebuddyAgent [baseline] (710.447 ms) : 0, 710447
BytebuddyAgent [candidate] (715.131 ms) : 0, 715131
GlobalTracer [baseline] (351.783 ms) : 0, 351783
GlobalTracer [candidate] (352.779 ms) : 0, 352779
AppSec [baseline] (55.592 ms) : 0, 55592
AppSec [candidate] (54.898 ms) : 0, 54898
Remote Config [baseline] (682.048 Β΅s) : 0, 682
Remote Config [candidate] (681.871 Β΅s) : 0, 682
Telemetry [baseline] (8.968 ms) : 0, 8968
Telemetry [candidate] (9.046 ms) : 0, 9046
Profiling [baseline] (96.891 ms) : 0, 96891
Profiling [candidate] (97.668 ms) : 0, 97668
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.47.0-SNAPSHOT~0f304c70e2, baseline=1.47.0-SNAPSHOT~0ba7b76f47

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.043 s) : 0, 1043443
Total [baseline] (8.641 s) : 0, 8640975
Agent [candidate] (1.04 s) : 0, 1040116
Total [candidate] (8.626 s) : 0, 8625758
section iast
Agent [baseline] (1.17 s) : 0, 1170028
Total [baseline] (9.277 s) : 0, 9277333
Agent [candidate] (1.177 s) : 0, 1177434
Total [candidate] (9.328 s) : 0, 9328304
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.171 s) : 0, 1170831
Total [baseline] (9.274 s) : 0, 9274286
Agent [candidate] (1.171 s) : 0, 1170518
Total [candidate] (9.213 s) : 0, 9213331
section iast_TELEMETRY_OFF
Agent [baseline] (1.165 s) : 0, 1165307
Total [baseline] (9.22 s) : 0, 9220210
Agent [candidate] (1.167 s) : 0, 1166916
Total [candidate] (9.26 s) : 0, 9260403
Loading
  • baseline results
Module Variant Duration Ξ” tracing
Agent tracing 1.043 s -
Agent iast 1.17 s 126.585 ms (12.1%)
Agent iast_HARDCODED_SECRET_DISABLED 1.171 s 127.387 ms (12.2%)
Agent iast_TELEMETRY_OFF 1.165 s 121.863 ms (11.7%)
Total tracing 8.641 s -
Total iast 9.277 s 636.358 ms (7.4%)
Total iast_HARDCODED_SECRET_DISABLED 9.274 s 633.312 ms (7.3%)
Total iast_TELEMETRY_OFF 9.22 s 579.235 ms (6.7%)
  • candidate results
Module Variant Duration Ξ” tracing
Agent tracing 1.04 s -
Agent iast 1.177 s 137.318 ms (13.2%)
Agent iast_HARDCODED_SECRET_DISABLED 1.171 s 130.402 ms (12.5%)
Agent iast_TELEMETRY_OFF 1.167 s 126.8 ms (12.2%)
Total tracing 8.626 s -
Total iast 9.328 s 702.546 ms (8.1%)
Total iast_HARDCODED_SECRET_DISABLED 9.213 s 587.573 ms (6.8%)
Total iast_TELEMETRY_OFF 9.26 s 634.645 ms (7.4%)
gantt
    title insecure-bank - break down per module: candidate=1.47.0-SNAPSHOT~0f304c70e2, baseline=1.47.0-SNAPSHOT~0ba7b76f47

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (718.209 ms) : 0, 718209
BytebuddyAgent [candidate] (717.201 ms) : 0, 717201
GlobalTracer [baseline] (240.21 ms) : 0, 240210
GlobalTracer [candidate] (239.43 ms) : 0, 239430
AppSec [baseline] (56.256 ms) : 0, 56256
AppSec [candidate] (55.421 ms) : 0, 55421
Remote Config [baseline] (695.784 Β΅s) : 0, 696
Remote Config [candidate] (692.699 Β΅s) : 0, 693
Telemetry [baseline] (12.872 ms) : 0, 12872
Telemetry [candidate] (12.18 ms) : 0, 12180
section iast
BytebuddyAgent [baseline] (834.498 ms) : 0, 834498
BytebuddyAgent [candidate] (840.02 ms) : 0, 840020
GlobalTracer [baseline] (230.838 ms) : 0, 230838
GlobalTracer [candidate] (232.267 ms) : 0, 232267
IAST [baseline] (22.795 ms) : 0, 22795
IAST [candidate] (22.961 ms) : 0, 22961
AppSec [baseline] (57.255 ms) : 0, 57255
AppSec [candidate] (57.49 ms) : 0, 57490
Remote Config [baseline] (619.376 Β΅s) : 0, 619
Remote Config [candidate] (618.436 Β΅s) : 0, 618
Telemetry [baseline] (8.712 ms) : 0, 8712
Telemetry [candidate] (8.779 ms) : 0, 8779
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (834.413 ms) : 0, 834413
BytebuddyAgent [candidate] (835.558 ms) : 0, 835558
GlobalTracer [baseline] (230.972 ms) : 0, 230972
GlobalTracer [candidate] (230.506 ms) : 0, 230506
IAST [baseline] (22.932 ms) : 0, 22932
IAST [candidate] (22.723 ms) : 0, 22723
AppSec [baseline] (57.811 ms) : 0, 57811
AppSec [candidate] (57.174 ms) : 0, 57174
Remote Config [baseline] (619.165 Β΅s) : 0, 619
Remote Config [candidate] (599.033 Β΅s) : 0, 599
Telemetry [baseline] (8.861 ms) : 0, 8861
Telemetry [candidate] (8.629 ms) : 0, 8629
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (831.665 ms) : 0, 831665
BytebuddyAgent [candidate] (833.126 ms) : 0, 833126
GlobalTracer [baseline] (229.675 ms) : 0, 229675
GlobalTracer [candidate] (229.83 ms) : 0, 229830
IAST [baseline] (25.483 ms) : 0, 25483
IAST [candidate] (23.625 ms) : 0, 23625
AppSec [baseline] (54.02 ms) : 0, 54020
AppSec [candidate] (55.773 ms) : 0, 55773
Remote Config [baseline] (630.322 Β΅s) : 0, 630
Remote Config [candidate] (615.01 Β΅s) : 0, 615
Telemetry [baseline] (8.6 ms) : 0, 8600
Telemetry [candidate] (8.644 ms) : 0, 8644
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-02-18T16:58:35 2025-02-18T17:05:39
git_branch master dylan/sfn-trace-ctx
git_commit_date 1739895801 1739897266
git_commit_sha 0ba7b76 0f304c7
release_version 1.47.0-SNAPSHOT~0ba7b76f47 1.47.0-SNAPSHOT~0f304c70e2
start_time 2025-02-18T16:58:20 2025-02-18T17:05:25
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1739898701 1739898701
ci_job_id 812393943 812393943
ci_pipeline_id 56180929 56180929
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-tsbfvevz-project-304-concurrent-0-fyx1n6o0 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-tsbfvevz-project-304-concurrent-0-fyx1n6o0 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 1 performance regressions! Performance is the same for 11 metrics, 16 unstable metrics.

scenario Ξ” mean http_req_duration Ξ” mean throughput candidate mean http_req_duration candidate mean throughput baseline mean http_req_duration baseline mean throughput
scenario:load:petclinic:profiling worse
[+34.983Β΅s; +89.086Β΅s] or [+2.286%; +5.821%]
unstable
[-574.972op/s; +574.972op/s] or [-19.405%; +19.405%]
1.592ms 2962.963op/s 1.530ms 2962.963op/s
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.47.0-SNAPSHOT~0f304c70e2, baseline=1.47.0-SNAPSHOT~0ba7b76f47
    dateFormat X
    axisFormat %s
section baseline
no_agent (378.684 Β΅s) : 359, 399
.   : milestone, 379,
iast (518.91 Β΅s) : 497, 541
.   : milestone, 519,
iast_FULL (727.718 Β΅s) : 706, 750
.   : milestone, 728,
iast_GLOBAL (560.072 Β΅s) : 538, 582
.   : milestone, 560,
iast_HARDCODED_SECRET_DISABLED (513.96 Β΅s) : 491, 537
.   : milestone, 514,
iast_INACTIVE (460.46 Β΅s) : 439, 482
.   : milestone, 460,
iast_TELEMETRY_OFF (501.622 Β΅s) : 478, 525
.   : milestone, 502,
tracing (456.374 Β΅s) : 436, 477
.   : milestone, 456,
section candidate
no_agent (377.078 Β΅s) : 357, 397
.   : milestone, 377,
iast (517.392 Β΅s) : 495, 540
.   : milestone, 517,
iast_FULL (730.088 Β΅s) : 708, 752
.   : milestone, 730,
iast_GLOBAL (571.721 Β΅s) : 548, 596
.   : milestone, 572,
iast_HARDCODED_SECRET_DISABLED (514.872 Β΅s) : 492, 537
.   : milestone, 515,
iast_INACTIVE (464.346 Β΅s) : 443, 486
.   : milestone, 464,
iast_TELEMETRY_OFF (500.604 Β΅s) : 479, 522
.   : milestone, 501,
tracing (461.627 Β΅s) : 440, 483
.   : milestone, 462,
Loading
  • baseline results
Variant Request duration [CI 0.99] Ξ” no_agent
no_agent 378.684 Β΅s [358.75 Β΅s, 398.619 Β΅s] -
iast 518.91 Β΅s [496.744 Β΅s, 541.075 Β΅s] 140.225 Β΅s (37.0%)
iast_FULL 727.718 Β΅s [705.515 Β΅s, 749.922 Β΅s] 349.034 Β΅s (92.2%)
iast_GLOBAL 560.072 Β΅s [538.193 Β΅s, 581.952 Β΅s] 181.388 Β΅s (47.9%)
iast_HARDCODED_SECRET_DISABLED 513.96 Β΅s [490.918 Β΅s, 537.002 Β΅s] 135.275 Β΅s (35.7%)
iast_INACTIVE 460.46 Β΅s [438.626 Β΅s, 482.294 Β΅s] 81.775 Β΅s (21.6%)
iast_TELEMETRY_OFF 501.622 Β΅s [478.287 Β΅s, 524.957 Β΅s] 122.938 Β΅s (32.5%)
tracing 456.374 Β΅s [435.711 Β΅s, 477.037 Β΅s] 77.689 Β΅s (20.5%)
  • candidate results
Variant Request duration [CI 0.99] Ξ” no_agent
no_agent 377.078 Β΅s [357.255 Β΅s, 396.9 Β΅s] -
iast 517.392 Β΅s [494.684 Β΅s, 540.099 Β΅s] 140.314 Β΅s (37.2%)
iast_FULL 730.088 Β΅s [708.053 Β΅s, 752.123 Β΅s] 353.011 Β΅s (93.6%)
iast_GLOBAL 571.721 Β΅s [547.731 Β΅s, 595.711 Β΅s] 194.643 Β΅s (51.6%)
iast_HARDCODED_SECRET_DISABLED 514.872 Β΅s [492.443 Β΅s, 537.3 Β΅s] 137.794 Β΅s (36.5%)
iast_INACTIVE 464.346 Β΅s [442.828 Β΅s, 485.863 Β΅s] 87.268 Β΅s (23.1%)
iast_TELEMETRY_OFF 500.604 Β΅s [478.831 Β΅s, 522.378 Β΅s] 123.527 Β΅s (32.8%)
tracing 461.627 Β΅s [440.312 Β΅s, 482.942 Β΅s] 84.549 Β΅s (22.4%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.47.0-SNAPSHOT~0f304c70e2, baseline=1.47.0-SNAPSHOT~0ba7b76f47
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.364 ms) : 1345, 1384
.   : milestone, 1364,
appsec (1.737 ms) : 1713, 1761
.   : milestone, 1737,
appsec_no_iast (1.767 ms) : 1744, 1790
.   : milestone, 1767,
iast (1.516 ms) : 1492, 1540
.   : milestone, 1516,
profiling (1.53 ms) : 1505, 1555
.   : milestone, 1530,
tracing (1.499 ms) : 1475, 1524
.   : milestone, 1499,
section candidate
no_agent (1.358 ms) : 1339, 1377
.   : milestone, 1358,
appsec (1.768 ms) : 1744, 1792
.   : milestone, 1768,
appsec_no_iast (1.776 ms) : 1753, 1799
.   : milestone, 1776,
iast (1.526 ms) : 1502, 1550
.   : milestone, 1526,
profiling (1.592 ms) : 1567, 1618
.   : milestone, 1592,
tracing (1.487 ms) : 1462, 1512
.   : milestone, 1487,
Loading
  • baseline results
Variant Request duration [CI 0.99] Ξ” no_agent
no_agent 1.364 ms [1.345 ms, 1.384 ms] -
appsec 1.737 ms [1.713 ms, 1.761 ms] 372.673 Β΅s (27.3%)
appsec_no_iast 1.767 ms [1.744 ms, 1.79 ms] 402.511 Β΅s (29.5%)
iast 1.516 ms [1.492 ms, 1.54 ms] 151.887 Β΅s (11.1%)
profiling 1.53 ms [1.505 ms, 1.555 ms] 166.0 Β΅s (12.2%)
tracing 1.499 ms [1.475 ms, 1.524 ms] 135.073 Β΅s (9.9%)
  • candidate results
Variant Request duration [CI 0.99] Ξ” no_agent
no_agent 1.358 ms [1.339 ms, 1.377 ms] -
appsec 1.768 ms [1.744 ms, 1.792 ms] 410.283 Β΅s (30.2%)
appsec_no_iast 1.776 ms [1.753 ms, 1.799 ms] 418.22 Β΅s (30.8%)
iast 1.526 ms [1.502 ms, 1.55 ms] 168.543 Β΅s (12.4%)
profiling 1.592 ms [1.567 ms, 1.618 ms] 234.488 Β΅s (17.3%)
tracing 1.487 ms [1.462 ms, 1.512 ms] 128.995 Β΅s (9.5%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master dylan/sfn-trace-ctx
git_commit_date 1739895801 1739897266
git_commit_sha 0ba7b76 0f304c7
release_version 1.47.0-SNAPSHOT~0ba7b76f47 1.47.0-SNAPSHOT~0f304c70e2
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1739899330 1739899330
ci_job_id 812393945 812393945
ci_pipeline_id 56180929 56180929
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-wxk4-4f-project-304-concurrent-1-388lq479 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-wxk4-4f-project-304-concurrent-1-388lq479 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 tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.47.0-SNAPSHOT~0f304c70e2, baseline=1.47.0-SNAPSHOT~0ba7b76f47
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.476 ms) : 1465, 1488
.   : milestone, 1476,
appsec (2.381 ms) : 2337, 2424
.   : milestone, 2381,
iast (2.127 ms) : 2072, 2183
.   : milestone, 2127,
iast_GLOBAL (2.166 ms) : 2110, 2221
.   : milestone, 2166,
profiling (1.969 ms) : 1925, 2013
.   : milestone, 1969,
tracing (1.955 ms) : 1913, 1997
.   : milestone, 1955,
section candidate
no_agent (1.475 ms) : 1464, 1487
.   : milestone, 1475,
appsec (2.369 ms) : 2325, 2412
.   : milestone, 2369,
iast (2.129 ms) : 2074, 2184
.   : milestone, 2129,
iast_GLOBAL (2.159 ms) : 2103, 2214
.   : milestone, 2159,
profiling (1.963 ms) : 1920, 2006
.   : milestone, 1963,
tracing (1.961 ms) : 1919, 2004
.   : milestone, 1961,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Ξ” no_agent
no_agent 1.476 ms [1.465 ms, 1.488 ms] -
appsec 2.381 ms [2.337 ms, 2.424 ms] 904.526 Β΅s (61.3%)
iast 2.127 ms [2.072 ms, 2.183 ms] 650.913 Β΅s (44.1%)
iast_GLOBAL 2.166 ms [2.11 ms, 2.221 ms] 689.144 Β΅s (46.7%)
profiling 1.969 ms [1.925 ms, 2.013 ms] 492.654 Β΅s (33.4%)
tracing 1.955 ms [1.913 ms, 1.997 ms] 478.332 Β΅s (32.4%)
  • candidate results
Variant Execution Time [CI 0.99] Ξ” no_agent
no_agent 1.475 ms [1.464 ms, 1.487 ms] -
appsec 2.369 ms [2.325 ms, 2.412 ms] 893.557 Β΅s (60.6%)
iast 2.129 ms [2.074 ms, 2.184 ms] 654.197 Β΅s (44.3%)
iast_GLOBAL 2.159 ms [2.103 ms, 2.214 ms] 683.734 Β΅s (46.3%)
profiling 1.963 ms [1.92 ms, 2.006 ms] 487.8 Β΅s (33.1%)
tracing 1.961 ms [1.919 ms, 2.004 ms] 486.152 Β΅s (33.0%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.47.0-SNAPSHOT~0f304c70e2, baseline=1.47.0-SNAPSHOT~0ba7b76f47
    dateFormat X
    axisFormat %s
section baseline
no_agent (14.792 s) : 14792000, 14792000
.   : milestone, 14792000,
appsec (15.016 s) : 15016000, 15016000
.   : milestone, 15016000,
iast (18.913 s) : 18913000, 18913000
.   : milestone, 18913000,
iast_GLOBAL (17.864 s) : 17864000, 17864000
.   : milestone, 17864000,
profiling (15.125 s) : 15125000, 15125000
.   : milestone, 15125000,
tracing (14.984 s) : 14984000, 14984000
.   : milestone, 14984000,
section candidate
no_agent (15.457 s) : 15457000, 15457000
.   : milestone, 15457000,
appsec (14.983 s) : 14983000, 14983000
.   : milestone, 14983000,
iast (18.338 s) : 18338000, 18338000
.   : milestone, 18338000,
iast_GLOBAL (18.018 s) : 18018000, 18018000
.   : milestone, 18018000,
profiling (15.247 s) : 15247000, 15247000
.   : milestone, 15247000,
tracing (14.944 s) : 14944000, 14944000
.   : milestone, 14944000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Ξ” no_agent
no_agent 14.792 s [14.792 s, 14.792 s] -
appsec 15.016 s [15.016 s, 15.016 s] 224.0 ms (1.5%)
iast 18.913 s [18.913 s, 18.913 s] 4.121 s (27.9%)
iast_GLOBAL 17.864 s [17.864 s, 17.864 s] 3.072 s (20.8%)
profiling 15.125 s [15.125 s, 15.125 s] 333.0 ms (2.3%)
tracing 14.984 s [14.984 s, 14.984 s] 192.0 ms (1.3%)
  • candidate results
Variant Execution Time [CI 0.99] Ξ” no_agent
no_agent 15.457 s [15.457 s, 15.457 s] -
appsec 14.983 s [14.983 s, 14.983 s] -474.0 ms (-3.1%)
iast 18.338 s [18.338 s, 18.338 s] 2.881 s (18.6%)
iast_GLOBAL 18.018 s [18.018 s, 18.018 s] 2.561 s (16.6%)
profiling 15.247 s [15.247 s, 15.247 s] -210.0 ms (-1.4%)
tracing 14.944 s [14.944 s, 14.944 s] -513.0 ms (-3.3%)

Copy link
Contributor

@PerfectSlayer PerfectSlayer left a comment

Choose a reason for hiding this comment

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

I left a bunch of comments about refactoring and testing

Comment on lines 31 to 36
String ddTraceContextJSON = InputAttributeInjector.buildTraceContext(span);
// Inject the trace context into the Step Function input
StringBuilder modifiedInput =
InputAttributeInjector.getModifiedInput(request.input(), ddTraceContextJSON);

return request.toBuilder().input(modifiedInput.toString()).build();
Copy link
Contributor

Choose a reason for hiding this comment

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

Can be deduplicated using a dedicated method:

SdkRequest injectTraceContext(request, span) {
      String traceContext = InputAttributeInjector.buildTraceContext(span);
      // Inject the trace context into the Step Function input
      String modifiedInput = InputAttributeInjector.getModifiedInput(request.input(), traceContext);
      return request.toBuilder().input(modifiedInput).build()
}

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Since I had to handle both StartExecutionRequest and StartSyncExecutionRequest param types I ended up doing method overloading for injectTraceContext()

@DylanLovesCoffee
Copy link
Contributor Author

DylanLovesCoffee commented Oct 21, 2024

@PerfectSlayer I think I covered all of the comments/corrections, but for some reason the CI's muzzle check is continuing to fail :/ It seems like it's mostly timing out, so may be unrelated to my changes?

dougqh
dougqh previously requested changes Oct 24, 2024
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.

I'd like to see the Json construction done in a safer way.
I also think we should guard against exceptions propagating out of the listener.

@nhulston
Copy link
Contributor

nhulston commented Feb 7, 2025

Failures appear to be unrelated

@nhulston nhulston marked this pull request as ready for review February 7, 2025 16:25
Copy link
Contributor

@PerfectSlayer PerfectSlayer left a comment

Choose a reason for hiding this comment

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

Looking good from Platform PoV. I will let IDM review instrumentation.

About the failing tests, you can retry them following: https://github.com/DataDog/dd-trace-java/blob/master/docs/how_to_test.md#flaky-tests

// Prepend comma to separate from existing content
modifiedInput.insert(endPos, String.format(",\"%s\":%s", DATADOG_KEY, ddTraceContextJSON));
}
return modifiedInput.toString();
Copy link
Contributor

Choose a reason for hiding this comment

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

This method could be made more performant with the following approach:

  • skip trimming the string before finding { and } to avoid creating an intermediate string
  • that would also let you use request.indexOf('{') etc. which is faster
  • compare the numerical positions of { and }
    • if they're next to each other, no need to create/trim anything and you can return "{" + DATADOG_KEY + ":" + ddTraceContextJSON + "}"
    • otherwise get the substring between { and } trim it and store it in existingJSON
    • if existingJSON is empty you can return "{" + DATADOG_KEY + ":" + ddTraceContextJSON + "}"
    • otherwise return "{" + existingJSON + "," + DATADOG_KEY + ":" + ddTraceContextJSON + "}"

you could also extract DATADOG_KEY + ":" + ddTraceContextJSON to a local variable to avoid repeating it

Copy link
Contributor

Choose a reason for hiding this comment

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

Also I assume we know the original string will always be JSON?

Copy link
Contributor

@nhulston nhulston Feb 11, 2025

Choose a reason for hiding this comment

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

Yes, the original string must be a JSON string (if empty, it must be {}) in order for AWS to accept the request. However, the user could end up putting an incorrect json string; in that case, we should leave the request unchanged so that the error comes from AWS, not the tracer.

@nhulston nhulston requested a review from mcculls February 11, 2025 18:22
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.

Thanks for the work on this - I've suggested a couple of final improvements

@amarziali amarziali removed the request for review from dougqh February 19, 2025 19:06
@amarziali amarziali dismissed dougqh’s stale review February 19, 2025 19:07

Changes approved. PR can be merged

@nhulston nhulston merged commit bfb0f7a into master Feb 19, 2025
203 checks passed
@nhulston nhulston deleted the dylan/sfn-trace-ctx branch February 19, 2025 19:08
@github-actions github-actions bot added this to the 1.47.0 milestone Feb 19, 2025
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Mar 6, 2025
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
| [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.46.1` -> `1.47.0` |
| [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.46.1` -> `1.47.0` |
| [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |
| [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |
|
[software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |
| [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |
| [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |
| [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |
| [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.30.33` -> `2.30.34` |

---

### Release Notes

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

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

##### Components

##### Application Security Management (IAST)

- πŸ› Exclude com.stripe.net.HttpURLConnectionClient to solve IAST
SSRF vulnerability false positives
([#&#8203;8483](DataDog/dd-trace-java#8483) -
[@&#8203;jandro996](https://github.com/jandro996))
- πŸ› Add exclusion to solve IAST weak randomness vulnerability false
positives
([#&#8203;8462](DataDog/dd-trace-java#8462) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Fix weak randomness false positive in Kafka client
([#&#8203;8408](DataDog/dd-trace-java#8408) -
[@&#8203;smola](https://github.com/smola))
- ✨ Fix location for SSRF with Kong Unirest
([#&#8203;8407](DataDog/dd-trace-java#8407) -
[@&#8203;smola](https://github.com/smola))
- ✨ Exclude IBM Instana from IAST
([#&#8203;8406](DataDog/dd-trace-java#8406) -
[@&#8203;smola](https://github.com/smola))
- πŸ› Fix org.json iast instrumentation test for latest dependency
([#&#8203;8347](DataDog/dd-trace-java#8347) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Configuration to Disable APM Tracing
([#&#8203;8219](DataDog/dd-trace-java#8219) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Address cookie vulnerability cardinality issues
([#&#8203;8210](DataDog/dd-trace-java#8210) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Email HTML Injection detection in IAST
([#&#8203;8205](DataDog/dd-trace-java#8205) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))

##### Application Security Management (WAF)

- πŸ›βœ¨ Ensure usr.exists tag is not overridden when
UsernameNotFoundException is thrown
([#&#8203;8376](DataDog/dd-trace-java#8376) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- πŸ›βœ¨ Ensure usr.exists tag is not overridden by auto
instrumentation
([#&#8203;8374](DataDog/dd-trace-java#8374) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Update appsec metrics with event_rules_version tag
([#&#8203;8354](DataDog/dd-trace-java#8354) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))
- ✨ Update metrics: appsec.waf.requests
([#&#8203;8353](DataDog/dd-trace-java#8353) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Improve ASM support in vert.x 5.0
([#&#8203;8285](DataDog/dd-trace-java#8285) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Update metrics: appsec.waf.updates and appsec.waf.init
([#&#8203;8280](DataDog/dd-trace-java#8280) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Configuration to Disable APM Tracing
([#&#8203;8219](DataDog/dd-trace-java#8219) -
[@&#8203;jandro996](https://github.com/jandro996))

##### Build & Tooling

- πŸ› Do not generate Muzzle references for primitive arrays in method
body
([#&#8203;8361](DataDog/dd-trace-java#8361) -
[@&#8203;amarziali](https://github.com/amarziali))
- πŸ“– Improve dev env setup documentation for Windows
([#&#8203;8180](DataDog/dd-trace-java#8180) -
[@&#8203;lucaspimentel](https://github.com/lucaspimentel))

##### Continuous Integration Visibility

- ✨ Add support for skip-EFD tagging
([#&#8203;8487](DataDog/dd-trace-java#8487) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- πŸ› Fix an NPE in Gradle Android instrumentation
([#&#8203;8484](DataDog/dd-trace-java#8484) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Consider modified tests when applying fail-fast tests
ordering
([#&#8203;8474](DataDog/dd-trace-java#8474) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Implement tests reordering for TestNG
([#&#8203;8467](DataDog/dd-trace-java#8467) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- πŸ› Fix Gradle Launcher instrumentation to not interfere with Gradle
Test Kit
([#&#8203;8465](DataDog/dd-trace-java#8465) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🧹 Use separate TestEventHandlers per framework in CI Vis
instrumentations
([#&#8203;8451](DataDog/dd-trace-java#8451) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Remove warning log when JUnit 4 test method cannot be
retrieved
([#&#8203;8445](DataDog/dd-trace-java#8445) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- πŸ› Fix Scalatest tracing for tests that are reported asynchronously
([#&#8203;8444](DataDog/dd-trace-java#8444) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Implement attempt to fix tests
([#&#8203;8393](DataDog/dd-trace-java#8393) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Implement test disabling
([#&#8203;8377](DataDog/dd-trace-java#8377) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Update CODEOWNERS parser to not log errors on comments with
leading whitespace
([#&#8203;8349](DataDog/dd-trace-java#8349) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Request Test Management tests list
([#&#8203;8345](DataDog/dd-trace-java#8345) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Receive test management settings from CIVis settings
request
([#&#8203;8331](DataDog/dd-trace-java#8331) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Implement quarantined tests tagging
([#&#8203;8326](DataDog/dd-trace-java#8326) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Implement tests quarantining
([#&#8203;8320](DataDog/dd-trace-java#8320) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Add tag to specify if the user is setting DD_SERVICE
([#&#8203;8318](DataDog/dd-trace-java#8318) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))

##### Crash tracking

- ✨ Only fork jps when required
([#&#8203;8419](DataDog/dd-trace-java#8419) -
[@&#8203;mcculls](https://github.com/mcculls))
- πŸ› Use Java home of the crashed process to launch crash uploader
([#&#8203;8348](DataDog/dd-trace-java#8348) -
[@&#8203;jbachorik](https://github.com/jbachorik))

##### Data Streams Monitoring

- πŸ› Fix error happening when sqs message attributes are readonly
([#&#8203;8473](DataDog/dd-trace-java#8473) -
[@&#8203;vandonr](https://github.com/vandonr))
- πŸ› Fix bug on proto schema extraction
([#&#8203;8403](DataDog/dd-trace-java#8403) -
[@&#8203;vandonr](https://github.com/vandonr))
- πŸ› Fix service name overrides in consumers
([#&#8203;8387](DataDog/dd-trace-java#8387) -
[@&#8203;piochelepiotr](https://github.com/piochelepiotr))

##### Database Monitoring

- ✨ Add DBMTracePreparedStatements to tracer configuration log
([#&#8203;8508](DataDog/dd-trace-java#8508) -
[@&#8203;cecile75](https://github.com/cecile75))

##### Dynamic Instrumentation

- ✨ Look in another location for grpc service methods
([#&#8203;8468](DataDog/dd-trace-java#8468) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- πŸ› Fix Exception Replay with Lambda proxy classes
([#&#8203;8452](DataDog/dd-trace-java#8452) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Add code origin support for spring-webmvc
([#&#8203;8416](DataDog/dd-trace-java#8416) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- ✨ Add support for scanning jar from loaded class
([#&#8203;8370](DataDog/dd-trace-java#8370) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- πŸ› Disable capture of entry values
([#&#8203;8369](DataDog/dd-trace-java#8369) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- πŸ› Fix CodeOrigin for `@Trace` annotation
([#&#8203;8344](DataDog/dd-trace-java#8344) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- πŸ› Fix equals/hashCode for CodeOrigin probe
([#&#8203;8319](DataDog/dd-trace-java#8319) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Add code origin support to kafka message listeners
([#&#8203;8301](DataDog/dd-trace-java#8301) -
[@&#8203;evanchooly](https://github.com/evanchooly))

##### Metrics

- ✨ Create metric: appsec.waf.error
([#&#8203;8381](DataDog/dd-trace-java#8381) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))
- ✨ Create metric: appsec.rasp.error
([#&#8203;8364](DataDog/dd-trace-java#8364) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))

##### Profiling

- ✨ Bump ddprof library to 1.22.0
([#&#8203;8463](DataDog/dd-trace-java#8463) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- IBM J9 8u361 corresponds to OpenJDK 8u362 by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#187
- Fix compatibility with musl libc 1.2.4 by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#189
- Modify version extraction by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#179
- Do not write null values to jvminfo event by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#184
- Productize VMStructs-based stack walker by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#177
- A few minor downport issues by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#180
- Enable ASGCT by default on fairly safe J9 JDK versions by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#181
- πŸ› Exclude OrderedThreadPoolExecutor from queue-time measurements
([#&#8203;8456](DataDog/dd-trace-java#8456) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ Record JVM info on JVMs without JFR
([#&#8203;8431](DataDog/dd-trace-java#8431) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- πŸ› Actually use CleanupTask in TempLocationManager
([#&#8203;8420](DataDog/dd-trace-java#8420) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Only fork jps when required
([#&#8203;8419](DataDog/dd-trace-java#8419) -
[@&#8203;mcculls](https://github.com/mcculls))
- πŸ› Adjust JFR checks for J9
([#&#8203;8405](DataDog/dd-trace-java#8405) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- 🧹 Disable smap RSS parsing by default
([#&#8203;8342](DataDog/dd-trace-java#8342) -
[@&#8203;MattAlp](https://github.com/MattAlp))

##### Telemetry

- πŸ› Add support for JBoss jar:file format to DependencyResolver
([#&#8203;8428](DataDog/dd-trace-java#8428) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Update metrics: appsec.waf.requests
([#&#8203;8353](DataDog/dd-trace-java#8353) -
[@&#8203;Mariovido](https://github.com/Mariovido))

##### Trace context propagation

- ✨ Introduce tracing propagator
([#&#8203;8313](DataDog/dd-trace-java#8313) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

##### Tracer core

- πŸ› Fix Stable Config telemetry source names
([#&#8203;8460](DataDog/dd-trace-java#8460) -
[@&#8203;BaptisteFoy](https://github.com/BaptisteFoy))
- ✨ Probe trace endpoints with a valid payload of empty arrays
([#&#8203;8414](DataDog/dd-trace-java#8414) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Add 1 minute fail-safe to JUL/JMX class-loading callback
([#&#8203;8399](DataDog/dd-trace-java#8399) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Migrate DSM injection calls to context-first APIs
([#&#8203;8383](DataDog/dd-trace-java#8383) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- 🧹 Move continuation capture methods from scope to tracer
([#&#8203;8371](DataDog/dd-trace-java#8371) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Migrate context extraction calls to context-first APIs
([#&#8203;8368](DataDog/dd-trace-java#8368) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- 🧹 Migrate context injection calls to context-first APIs
([#&#8203;8358](DataDog/dd-trace-java#8358) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- πŸ’‘ Support reading configurations from files
([#&#8203;8338](DataDog/dd-trace-java#8338) -
[@&#8203;mtoffl01](https://github.com/mtoffl01))
- πŸ’‘ Implementation of BaggagePropagator and BaggageContext
([#&#8203;8330](DataDog/dd-trace-java#8330) -
[@&#8203;mhlidd](https://github.com/mhlidd))
- 🧹 Combine continuation implementations into one which supports
multiple activations
([#&#8203;8324](DataDog/dd-trace-java#8324) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Introduce tracing propagator
([#&#8203;8313](DataDog/dd-trace-java#8313) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨ Remove old context propagation API
([#&#8203;8271](DataDog/dd-trace-java#8271) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

##### Instrumentations

##### AWS Lambda instrumentation

- πŸ› Send error message and stack to Lambda extension
([#&#8203;8417](DataDog/dd-trace-java#8417) -
[@&#8203;nhulston](https://github.com/nhulston))

##### AWS SDK instrumentation

- πŸ› Fix error happening when sqs message attributes are readonly
([#&#8203;8473](DataDog/dd-trace-java#8473) -
[@&#8203;vandonr](https://github.com/vandonr))
- πŸ’‘ Inject trace context into AWS Step Functions input
([#&#8203;7585](DataDog/dd-trace-java#7585) -
[@&#8203;DylanLovesCoffee](https://github.com/DylanLovesCoffee))

##### Core Java language instrumentation

- ✨ Look in another location for grpc service methods
([#&#8203;8468](DataDog/dd-trace-java#8468) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- ✨ Add code origin support for spring-webmvc
([#&#8203;8416](DataDog/dd-trace-java#8416) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- πŸ’‘ Implementation of BaggagePropagator and BaggageContext
([#&#8203;8330](DataDog/dd-trace-java#8330) -
[@&#8203;mhlidd](https://github.com/mhlidd))
- ✨ Add code origin support to kafka message listeners
([#&#8203;8301](DataDog/dd-trace-java#8301) -
[@&#8203;evanchooly](https://github.com/evanchooly))

##### gRPC instrumentation

- ✨ Look in another location for grpc service methods
([#&#8203;8468](DataDog/dd-trace-java#8468) -
[@&#8203;evanchooly](https://github.com/evanchooly))

##### Kafka instrumentation

- ✨ Add messaging.destination.name tag to kafka integrations
([#&#8203;8366](DataDog/dd-trace-java#8366) -
[@&#8203;rarguelloF](https://github.com/rarguelloF))

##### Protocol Buffer instrumentation

- πŸ› Fix bug on proto schema extraction
([#&#8203;8403](DataDog/dd-trace-java#8403) -
[@&#8203;vandonr](https://github.com/vandonr))

</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**: Never, 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: 108a0f86aa59ab4c938cbac0688dd4c19cb301fa
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants