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 Data Streams support in AWS SQS without raw message delivery #8071

Merged
merged 7 commits into from
Dec 10, 2024

Conversation

piochelepiotr
Copy link
Contributor

What Does This Do

For SQS v1, when raw message delivery is disabled (when sns is upstream) parse the message to extract message attributes.
The extraction is behind a flag to avoid unwanted overhead.

For v2 of SQS, I will probably need to add a dependency on Jackson, that is there by default for Sqs v1, which makes things easier.

Motivation

Additional Notes

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@piochelepiotr piochelepiotr requested review from a team as code owners December 10, 2024 05:20
@piochelepiotr piochelepiotr added this to the 1.44.0 milestone Dec 10, 2024
Copy link
Contributor

github-actions bot commented Dec 10, 2024

Hi! 👋 Thanks for your pull request! 🎉

To help us review it, please make sure to:

  • Add at least one type, and one component or instrumentation label to the pull request

If you need help, please check our contributing guidelines.

@piochelepiotr piochelepiotr added comp: data streams Data Streams Monitoring type: bug labels Dec 10, 2024
@pr-commenter
Copy link

pr-commenter bot commented Dec 10, 2024

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master piotr-wolski/sqs-raw-message-delivery
git_commit_date 1733762523 1733848078
git_commit_sha 4524f7b bde98d2
release_version 1.44.0-SNAPSHOT~4524f7bc5d 1.44.0-SNAPSHOT~bde98d2d9c
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1733850393 1733850393
ci_job_id 733266782 733266782
ci_pipeline_id 50730298 50730298
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 52 metrics, 11 unstable metrics.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.44.0-SNAPSHOT~bde98d2d9c, baseline=1.44.0-SNAPSHOT~4524f7bc5d

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.093 s) : 0, 1093280
Total [baseline] (10.537 s) : 0, 10536845
Agent [candidate] (1.096 s) : 0, 1095504
Total [candidate] (10.471 s) : 0, 10471443
section appsec
Agent [baseline] (1.235 s) : 0, 1234651
Total [baseline] (10.76 s) : 0, 10759808
Agent [candidate] (1.238 s) : 0, 1238344
Total [candidate] (10.777 s) : 0, 10776903
section iast
Agent [baseline] (1.223 s) : 0, 1222906
Total [baseline] (11.015 s) : 0, 11014644
Agent [candidate] (1.224 s) : 0, 1223678
Total [candidate] (10.995 s) : 0, 10995362
section profiling
Agent [baseline] (1.324 s) : 0, 1324002
Total [baseline] (10.94 s) : 0, 10939521
Agent [candidate] (1.333 s) : 0, 1333220
Total [candidate] (10.909 s) : 0, 10909459
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.093 s -
Agent appsec 1.235 s 141.371 ms (12.9%)
Agent iast 1.223 s 129.626 ms (11.9%)
Agent profiling 1.324 s 230.723 ms (21.1%)
Total tracing 10.537 s -
Total appsec 10.76 s 222.964 ms (2.1%)
Total iast 11.015 s 477.8 ms (4.5%)
Total profiling 10.94 s 402.677 ms (3.8%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.096 s -
Agent appsec 1.238 s 142.839 ms (13.0%)
Agent iast 1.224 s 128.174 ms (11.7%)
Agent profiling 1.333 s 237.716 ms (21.7%)
Total tracing 10.471 s -
Total appsec 10.777 s 305.459 ms (2.9%)
Total iast 10.995 s 523.918 ms (5.0%)
Total profiling 10.909 s 438.015 ms (4.2%)
gantt
    title petclinic - break down per module: candidate=1.44.0-SNAPSHOT~bde98d2d9c, baseline=1.44.0-SNAPSHOT~4524f7bc5d

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (695.342 ms) : 0, 695342
BytebuddyAgent [candidate] (697.199 ms) : 0, 697199
GlobalTracer [baseline] (318.963 ms) : 0, 318963
GlobalTracer [candidate] (319.738 ms) : 0, 319738
AppSec [baseline] (54.559 ms) : 0, 54559
AppSec [candidate] (54.952 ms) : 0, 54952
Remote Config [baseline] (709.06 µs) : 0, 709
Remote Config [candidate] (683.619 µs) : 0, 684
Telemetry [baseline] (9.88 ms) : 0, 9880
Telemetry [candidate] (9.139 ms) : 0, 9139
section appsec
BytebuddyAgent [baseline] (718.204 ms) : 0, 718204
BytebuddyAgent [candidate] (720.172 ms) : 0, 720172
GlobalTracer [baseline] (316.715 ms) : 0, 316715
GlobalTracer [candidate] (317.236 ms) : 0, 317236
AppSec [baseline] (167.521 ms) : 0, 167521
AppSec [candidate] (168.182 ms) : 0, 168182
Remote Config [baseline] (652.668 µs) : 0, 653
Remote Config [candidate] (676.32 µs) : 0, 676
Telemetry [baseline] (7.796 ms) : 0, 7796
Telemetry [candidate] (7.863 ms) : 0, 7863
IAST [baseline] (19.787 ms) : 0, 19787
IAST [candidate] (20.617 ms) : 0, 20617
section iast
BytebuddyAgent [baseline] (814.883 ms) : 0, 814883
BytebuddyAgent [candidate] (815.24 ms) : 0, 815240
GlobalTracer [baseline] (307.254 ms) : 0, 307254
GlobalTracer [candidate] (307.834 ms) : 0, 307834
AppSec [baseline] (56.905 ms) : 0, 56905
AppSec [candidate] (57.695 ms) : 0, 57695
Remote Config [baseline] (647.155 µs) : 0, 647
Remote Config [candidate] (645.659 µs) : 0, 646
Telemetry [baseline] (7.55 ms) : 0, 7550
Telemetry [candidate] (7.508 ms) : 0, 7508
IAST [baseline] (21.875 ms) : 0, 21875
IAST [candidate] (20.956 ms) : 0, 20956
section profiling
ProfilingAgent [baseline] (94.132 ms) : 0, 94132
ProfilingAgent [candidate] (94.939 ms) : 0, 94939
BytebuddyAgent [baseline] (692.177 ms) : 0, 692177
BytebuddyAgent [candidate] (699.582 ms) : 0, 699582
GlobalTracer [baseline] (436.37 ms) : 0, 436370
GlobalTracer [candidate] (436.311 ms) : 0, 436311
AppSec [baseline] (53.726 ms) : 0, 53726
AppSec [candidate] (54.13 ms) : 0, 54130
Remote Config [baseline] (660.867 µs) : 0, 661
Remote Config [candidate] (680.753 µs) : 0, 681
Telemetry [baseline] (7.718 ms) : 0, 7718
Telemetry [candidate] (7.845 ms) : 0, 7845
Profiling [baseline] (94.156 ms) : 0, 94156
Profiling [candidate] (94.964 ms) : 0, 94964
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.44.0-SNAPSHOT~bde98d2d9c, baseline=1.44.0-SNAPSHOT~4524f7bc5d

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.108 s) : 0, 1108008
Total [baseline] (8.776 s) : 0, 8775867
Agent [candidate] (1.104 s) : 0, 1104284
Total [candidate] (8.735 s) : 0, 8734500
section iast
Agent [baseline] (1.223 s) : 0, 1222790
Total [baseline] (9.231 s) : 0, 9231087
Agent [candidate] (1.223 s) : 0, 1222992
Total [candidate] (9.241 s) : 0, 9241161
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.231 s) : 0, 1231310
Total [baseline] (9.249 s) : 0, 9248949
Agent [candidate] (1.23 s) : 0, 1230217
Total [candidate] (9.206 s) : 0, 9205636
section iast_TELEMETRY_OFF
Agent [baseline] (1.219 s) : 0, 1218923
Total [baseline] (9.24 s) : 0, 9239690
Agent [candidate] (1.219 s) : 0, 1219328
Total [candidate] (9.275 s) : 0, 9274574
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.108 s -
Agent iast 1.223 s 114.781 ms (10.4%)
Agent iast_HARDCODED_SECRET_DISABLED 1.231 s 123.301 ms (11.1%)
Agent iast_TELEMETRY_OFF 1.219 s 110.915 ms (10.0%)
Total tracing 8.776 s -
Total iast 9.231 s 455.22 ms (5.2%)
Total iast_HARDCODED_SECRET_DISABLED 9.249 s 473.082 ms (5.4%)
Total iast_TELEMETRY_OFF 9.24 s 463.823 ms (5.3%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.104 s -
Agent iast 1.223 s 118.709 ms (10.7%)
Agent iast_HARDCODED_SECRET_DISABLED 1.23 s 125.933 ms (11.4%)
Agent iast_TELEMETRY_OFF 1.219 s 115.044 ms (10.4%)
Total tracing 8.735 s -
Total iast 9.241 s 506.66 ms (5.8%)
Total iast_HARDCODED_SECRET_DISABLED 9.206 s 471.136 ms (5.4%)
Total iast_TELEMETRY_OFF 9.275 s 540.074 ms (6.2%)
gantt
    title insecure-bank - break down per module: candidate=1.44.0-SNAPSHOT~bde98d2d9c, baseline=1.44.0-SNAPSHOT~4524f7bc5d

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (706.59 ms) : 0, 706590
BytebuddyAgent [candidate] (701.996 ms) : 0, 701996
GlobalTracer [baseline] (323.381 ms) : 0, 323381
GlobalTracer [candidate] (321.332 ms) : 0, 321332
AppSec [baseline] (54.789 ms) : 0, 54789
AppSec [candidate] (54.811 ms) : 0, 54811
Remote Config [baseline] (692.764 µs) : 0, 693
Remote Config [candidate] (686.942 µs) : 0, 687
Telemetry [baseline] (8.556 ms) : 0, 8556
Telemetry [candidate] (11.504 ms) : 0, 11504
section iast
BytebuddyAgent [baseline] (814.768 ms) : 0, 814768
BytebuddyAgent [candidate] (814.308 ms) : 0, 814308
GlobalTracer [baseline] (307.056 ms) : 0, 307056
GlobalTracer [candidate] (307.403 ms) : 0, 307403
AppSec [baseline] (57.947 ms) : 0, 57947
AppSec [candidate] (57.51 ms) : 0, 57510
Remote Config [baseline] (635.127 µs) : 0, 635
Remote Config [candidate] (647.186 µs) : 0, 647
Telemetry [baseline] (7.541 ms) : 0, 7541
Telemetry [candidate] (7.566 ms) : 0, 7566
IAST [baseline] (20.969 ms) : 0, 20969
IAST [candidate] (21.69 ms) : 0, 21690
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (820.948 ms) : 0, 820948
BytebuddyAgent [candidate] (820.145 ms) : 0, 820145
GlobalTracer [baseline] (308.599 ms) : 0, 308599
GlobalTracer [candidate] (308.39 ms) : 0, 308390
AppSec [baseline] (55.776 ms) : 0, 55776
AppSec [candidate] (57.476 ms) : 0, 57476
Remote Config [baseline] (657.706 µs) : 0, 658
Remote Config [candidate] (665.022 µs) : 0, 665
Telemetry [baseline] (7.654 ms) : 0, 7654
Telemetry [candidate] (7.587 ms) : 0, 7587
IAST [baseline] (23.771 ms) : 0, 23771
IAST [candidate] (21.843 ms) : 0, 21843
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (811.145 ms) : 0, 811145
BytebuddyAgent [candidate] (811.603 ms) : 0, 811603
GlobalTracer [baseline] (307.335 ms) : 0, 307335
GlobalTracer [candidate] (307.021 ms) : 0, 307021
AppSec [baseline] (58.116 ms) : 0, 58116
AppSec [candidate] (57.301 ms) : 0, 57301
Remote Config [baseline] (621.697 µs) : 0, 622
Remote Config [candidate] (638.73 µs) : 0, 639
Telemetry [baseline] (7.495 ms) : 0, 7495
Telemetry [candidate] (7.538 ms) : 0, 7538
IAST [baseline] (20.414 ms) : 0, 20414
IAST [candidate] (21.372 ms) : 0, 21372
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2024-12-10T16:36:31 2024-12-10T16:43:30
git_branch master piotr-wolski/sqs-raw-message-delivery
git_commit_date 1733762523 1733848078
git_commit_sha 4524f7b bde98d2
release_version 1.44.0-SNAPSHOT~4524f7bc5d 1.44.0-SNAPSHOT~bde98d2d9c
start_time 2024-12-10T16:36:17 2024-12-10T16:43:17
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1733849363 1733849363
ci_job_id 733266783 733266783
ci_pipeline_id 50730298 50730298
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, 16 unstable metrics.

Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.44.0-SNAPSHOT~bde98d2d9c, baseline=1.44.0-SNAPSHOT~4524f7bc5d
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.372 ms) : 1352, 1392
.   : milestone, 1372,
appsec (1.759 ms) : 1733, 1784
.   : milestone, 1759,
appsec_no_iast (1.746 ms) : 1720, 1771
.   : milestone, 1746,
iast (1.502 ms) : 1480, 1525
.   : milestone, 1502,
profiling (1.548 ms) : 1523, 1573
.   : milestone, 1548,
tracing (1.486 ms) : 1462, 1510
.   : milestone, 1486,
section candidate
no_agent (1.347 ms) : 1327, 1367
.   : milestone, 1347,
appsec (1.756 ms) : 1731, 1782
.   : milestone, 1756,
appsec_no_iast (1.748 ms) : 1723, 1772
.   : milestone, 1748,
iast (1.494 ms) : 1471, 1516
.   : milestone, 1494,
profiling (1.504 ms) : 1480, 1527
.   : milestone, 1504,
tracing (1.498 ms) : 1474, 1522
.   : milestone, 1498,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.372 ms [1.352 ms, 1.392 ms] -
appsec 1.759 ms [1.733 ms, 1.784 ms] 386.848 µs (28.2%)
appsec_no_iast 1.746 ms [1.72 ms, 1.771 ms] 373.923 µs (27.3%)
iast 1.502 ms [1.48 ms, 1.525 ms] 130.52 µs (9.5%)
profiling 1.548 ms [1.523 ms, 1.573 ms] 175.734 µs (12.8%)
tracing 1.486 ms [1.462 ms, 1.51 ms] 114.097 µs (8.3%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.347 ms [1.327 ms, 1.367 ms] -
appsec 1.756 ms [1.731 ms, 1.782 ms] 409.571 µs (30.4%)
appsec_no_iast 1.748 ms [1.723 ms, 1.772 ms] 400.713 µs (29.8%)
iast 1.494 ms [1.471 ms, 1.516 ms] 146.833 µs (10.9%)
profiling 1.504 ms [1.48 ms, 1.527 ms] 156.706 µs (11.6%)
tracing 1.498 ms [1.474 ms, 1.522 ms] 151.008 µs (11.2%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.44.0-SNAPSHOT~bde98d2d9c, baseline=1.44.0-SNAPSHOT~4524f7bc5d
    dateFormat X
    axisFormat %s
section baseline
no_agent (375.347 µs) : 354, 397
.   : milestone, 375,
iast (491.857 µs) : 470, 513
.   : milestone, 492,
iast_FULL (651.091 µs) : 629, 673
.   : milestone, 651,
iast_GLOBAL (523.027 µs) : 501, 545
.   : milestone, 523,
iast_HARDCODED_SECRET_DISABLED (492.06 µs) : 470, 514
.   : milestone, 492,
iast_INACTIVE (451.822 µs) : 431, 472
.   : milestone, 452,
iast_TELEMETRY_OFF (478.27 µs) : 457, 500
.   : milestone, 478,
tracing (451.066 µs) : 430, 472
.   : milestone, 451,
section candidate
no_agent (378.839 µs) : 359, 399
.   : milestone, 379,
iast (492.37 µs) : 471, 514
.   : milestone, 492,
iast_FULL (652.605 µs) : 631, 674
.   : milestone, 653,
iast_GLOBAL (514.706 µs) : 493, 536
.   : milestone, 515,
iast_HARDCODED_SECRET_DISABLED (496.284 µs) : 475, 518
.   : milestone, 496,
iast_INACTIVE (456.38 µs) : 434, 478
.   : milestone, 456,
iast_TELEMETRY_OFF (483.98 µs) : 463, 505
.   : milestone, 484,
tracing (444.587 µs) : 423, 466
.   : milestone, 445,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 375.347 µs [353.89 µs, 396.804 µs] -
iast 491.857 µs [470.238 µs, 513.477 µs] 116.51 µs (31.0%)
iast_FULL 651.091 µs [629.456 µs, 672.725 µs] 275.744 µs (73.5%)
iast_GLOBAL 523.027 µs [501.2 µs, 544.853 µs] 147.679 µs (39.3%)
iast_HARDCODED_SECRET_DISABLED 492.06 µs [470.336 µs, 513.785 µs] 116.713 µs (31.1%)
iast_INACTIVE 451.822 µs [431.195 µs, 472.448 µs] 76.474 µs (20.4%)
iast_TELEMETRY_OFF 478.27 µs [456.513 µs, 500.027 µs] 102.922 µs (27.4%)
tracing 451.066 µs [430.425 µs, 471.706 µs] 75.718 µs (20.2%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 378.839 µs [358.814 µs, 398.863 µs] -
iast 492.37 µs [470.771 µs, 513.969 µs] 113.531 µs (30.0%)
iast_FULL 652.605 µs [631.15 µs, 674.06 µs] 273.766 µs (72.3%)
iast_GLOBAL 514.706 µs [493.252 µs, 536.16 µs] 135.867 µs (35.9%)
iast_HARDCODED_SECRET_DISABLED 496.284 µs [474.628 µs, 517.941 µs] 117.446 µs (31.0%)
iast_INACTIVE 456.38 µs [434.475 µs, 478.285 µs] 77.541 µs (20.5%)
iast_TELEMETRY_OFF 483.98 µs [462.522 µs, 505.439 µs] 105.142 µs (27.8%)
tracing 444.587 µs [423.468 µs, 465.707 µs] 65.749 µs (17.4%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master piotr-wolski/sqs-raw-message-delivery
git_commit_date 1733762523 1733848078
git_commit_sha 4524f7b bde98d2
release_version 1.44.0-SNAPSHOT~4524f7bc5d 1.44.0-SNAPSHOT~bde98d2d9c
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1733849920 1733849920
ci_job_id 733266784 733266784
ci_pipeline_id 50730298 50730298
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 12 metrics, 0 unstable metrics.

Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.44.0-SNAPSHOT~bde98d2d9c, baseline=1.44.0-SNAPSHOT~4524f7bc5d
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.212 s) : 15212000, 15212000
.   : milestone, 15212000,
appsec (14.845 s) : 14845000, 14845000
.   : milestone, 14845000,
iast (18.937 s) : 18937000, 18937000
.   : milestone, 18937000,
iast_GLOBAL (18.135 s) : 18135000, 18135000
.   : milestone, 18135000,
profiling (15.382 s) : 15382000, 15382000
.   : milestone, 15382000,
tracing (14.918 s) : 14918000, 14918000
.   : milestone, 14918000,
section candidate
no_agent (15.285 s) : 15285000, 15285000
.   : milestone, 15285000,
appsec (14.787 s) : 14787000, 14787000
.   : milestone, 14787000,
iast (18.86 s) : 18860000, 18860000
.   : milestone, 18860000,
iast_GLOBAL (18.066 s) : 18066000, 18066000
.   : milestone, 18066000,
profiling (14.983 s) : 14983000, 14983000
.   : milestone, 14983000,
tracing (15.164 s) : 15164000, 15164000
.   : milestone, 15164000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.212 s [15.212 s, 15.212 s] -
appsec 14.845 s [14.845 s, 14.845 s] -367.0 ms (-2.4%)
iast 18.937 s [18.937 s, 18.937 s] 3.725 s (24.5%)
iast_GLOBAL 18.135 s [18.135 s, 18.135 s] 2.923 s (19.2%)
profiling 15.382 s [15.382 s, 15.382 s] 170.0 ms (1.1%)
tracing 14.918 s [14.918 s, 14.918 s] -294.0 ms (-1.9%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.285 s [15.285 s, 15.285 s] -
appsec 14.787 s [14.787 s, 14.787 s] -498.0 ms (-3.3%)
iast 18.86 s [18.86 s, 18.86 s] 3.575 s (23.4%)
iast_GLOBAL 18.066 s [18.066 s, 18.066 s] 2.781 s (18.2%)
profiling 14.983 s [14.983 s, 14.983 s] -302.0 ms (-2.0%)
tracing 15.164 s [15.164 s, 15.164 s] -121.0 ms (-0.8%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.44.0-SNAPSHOT~bde98d2d9c, baseline=1.44.0-SNAPSHOT~4524f7bc5d
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.472 ms) : 1460, 1483
.   : milestone, 1472,
appsec (2.344 ms) : 2302, 2385
.   : milestone, 2344,
iast (2.09 ms) : 2037, 2143
.   : milestone, 2090,
iast_GLOBAL (2.127 ms) : 2074, 2179
.   : milestone, 2127,
profiling (1.952 ms) : 1909, 1994
.   : milestone, 1952,
tracing (1.932 ms) : 1891, 1973
.   : milestone, 1932,
section candidate
no_agent (1.467 ms) : 1456, 1479
.   : milestone, 1467,
appsec (2.344 ms) : 2302, 2385
.   : milestone, 2344,
iast (2.087 ms) : 2035, 2140
.   : milestone, 2087,
iast_GLOBAL (2.133 ms) : 2080, 2186
.   : milestone, 2133,
profiling (1.97 ms) : 1927, 2013
.   : milestone, 1970,
tracing (1.929 ms) : 1889, 1969
.   : milestone, 1929,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.472 ms [1.46 ms, 1.483 ms] -
appsec 2.344 ms [2.302 ms, 2.385 ms] 871.962 µs (59.2%)
iast 2.09 ms [2.037 ms, 2.143 ms] 617.872 µs (42.0%)
iast_GLOBAL 2.127 ms [2.074 ms, 2.179 ms] 654.935 µs (44.5%)
profiling 1.952 ms [1.909 ms, 1.994 ms] 479.816 µs (32.6%)
tracing 1.932 ms [1.891 ms, 1.973 ms] 460.135 µs (31.3%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.467 ms [1.456 ms, 1.479 ms] -
appsec 2.344 ms [2.302 ms, 2.385 ms] 876.243 µs (59.7%)
iast 2.087 ms [2.035 ms, 2.14 ms] 619.69 µs (42.2%)
iast_GLOBAL 2.133 ms [2.08 ms, 2.186 ms] 665.739 µs (45.4%)
profiling 1.97 ms [1.927 ms, 2.013 ms] 502.289 µs (34.2%)
tracing 1.929 ms [1.889 ms, 1.969 ms] 461.585 µs (31.5%)


public void forEachKeyInBody(String body, AgentPropagation.KeyClassifier classifier)
throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
Copy link
Collaborator

Choose a reason for hiding this comment

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

this should be statically created since it can be reused. Recently @PerfectSlayer also added (or he's adding) a json parser api you can access from the tracer instead using jackson even it should be fine for aws sdk

Copy link
Contributor

@mcculls mcculls Dec 10, 2024

Choose a reason for hiding this comment

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

Bruce's JSON component has been merged, and should be used for basic JSON parsing going forwards (if you need a feature it doesn't provide then it could be extended, but ideally try to see how far you can get with the initial API)

Scratch that, the above PR was for producing JSON - the parsing piece isn't available yet

Copy link
Contributor

Choose a reason for hiding this comment

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

Yeah, parsing is yet another topic... I haven’t seen a loot usage yet to justify implementing it.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Oh cool, it would be useful here, since for SQS v2 doesn't have Jackson, so I'm not sure how to add the same support for v2.

JsonNode rootNode = objectMapper.readTree(body);

// Navigate to MessageAttributes._datadog
JsonNode messageAttributes = rootNode.path("MessageAttributes").path("_datadog");
Copy link
Collaborator

@amarziali amarziali Dec 10, 2024

Choose a reason for hiding this comment

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

what if MessageAttributes is not present?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It returns an empty MissingNode in that case. I added a test case to make sure nothing goes wrong in this case.

Note that if the message is not in a Json format, it throws an IOException that is caught by the caller of this method. So it also works.

@@ -159,5 +159,7 @@ public final class TraceInstrumentationConfig {
/** If set, the instrumentation will set its resource name on the local root too. */
public static final String AXIS_PROMOTE_RESOURCE_NAME = "trace.axis.promote.resource-name";

public static final String SQS_BODY_PROPAGATION_ENABLED = "sqs.body.propagation.enabled";
Copy link
Collaborator

Choose a reason for hiding this comment

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

I would have prefixed by trace

try {
this.forEachKeyInBody(carrier.getBody(), classifier);
} catch (IOException e) {
log.warn("Error extracting Datadog context from SQS message body", e);
Copy link
Collaborator

Choose a reason for hiding this comment

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

It is maybe too noisy in warn if it fails since it's for each message

} else if (SHOULD_EXTRACT_CONTEXT_FROM_BODY) {
try {
this.forEachKeyInBody(carrier.getBody(), classifier);
} catch (IOException e) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

I would have widen to Throwable just in case

@piochelepiotr piochelepiotr merged commit 063dd0b into master Dec 10, 2024
149 checks passed
@piochelepiotr piochelepiotr deleted the piotr-wolski/sqs-raw-message-delivery branch December 10, 2024 17:16
@PerfectSlayer PerfectSlayer changed the title Data streams support in sqs without raw message delivery Add Data Streams support in AWS SQS without raw message delivery Dec 12, 2024
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Dec 16, 2024
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
|
[com.google.api.grpc:proto-google-common-protos](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.49.0` -> `2.50.0` |
|
[com.google.cloud:google-cloud-core-http](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.48.0` -> `2.49.0` |
|
[com.google.cloud:google-cloud-spanner](https://github.com/googleapis/java-spanner)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`6.82.0` -> `6.83.0` |
|
[com.google.cloud:google-cloud-logging](https://github.com/googleapis/java-logging)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`3.20.7` -> `3.21.0` |
|
[com.google.cloud:google-cloud-datastore](https://github.com/googleapis/java-datastore)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.24.3` -> `2.25.1` |
|
[com.google.cloud:google-cloud-core](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.48.0` -> `2.49.0` |
| [com.google.api:gax](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.58.0` -> `2.59.0` |
|
[com.autonomousapps.dependency-analysis](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin)
| plugin | misk/gradle/libs.versions.toml | gradle | patch | `2.6.0` ->
`2.6.1` |
| [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.43.0` -> `1.44.1` |
| [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.43.0` -> `1.44.1` |
| [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
|
[software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.29.32` -> `2.29.34` |
| [com.amazonaws:aws-java-sdk-sqs](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` ->
`1.12.780` |
| [com.amazonaws:aws-java-sdk-s3](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` ->
`1.12.780` |
|
[com.amazonaws:aws-java-sdk-dynamodb](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` ->
`1.12.780` |
| [com.amazonaws:aws-java-sdk-core](https://aws.amazon.com/sdkforjava)
([source](https://github.com/aws/aws-sdk-java)) | dependencies |
misk/gradle/libs.versions.toml | gradle | patch | `1.12.779` ->
`1.12.780` |

---

### Release Notes

<details>
<summary>googleapis/sdk-platform-java
(com.google.api.grpc:proto-google-common-protos)</summary>

###
[`v2.50.0`](https://github.com/googleapis/sdk-platform-java/blob/HEAD/CHANGELOG.md#2500-2024-11-14)

##### Features

- Add experimental S2A integration in client libraries grpc transport
([#&#8203;3326](googleapis/sdk-platform-java#3326))
([1138ca6](googleapis/sdk-platform-java@1138ca6))
- enable selective generation based on service config include list
([#&#8203;3323](googleapis/sdk-platform-java#3323))
([0cddadb](googleapis/sdk-platform-java@0cddadb))
- introduce `java.time` to java-core
([#&#8203;3330](googleapis/sdk-platform-java#3330))
([f202c3b](googleapis/sdk-platform-java@f202c3b))
- Update Gapic-Generator to generate libraries using `java.time` methods
([#&#8203;3321](googleapis/sdk-platform-java#3321))
([b21c9a4](googleapis/sdk-platform-java@b21c9a4))

##### Bug Fixes

- Fix flaky test
ScheduledRetryingExecutorTest.testCancelOuterFutureAfterStart
([#&#8203;3335](googleapis/sdk-platform-java#3335))
([e73740d](googleapis/sdk-platform-java@e73740d))
- httpjson callables to trace attempts (started, failed)
([#&#8203;3300](googleapis/sdk-platform-java#3300))
([15a64ee](googleapis/sdk-platform-java@15a64ee))
- instantiate GaxProperties at build time to ensure we get the protobuf
version
([#&#8203;3365](googleapis/sdk-platform-java#3365))
([bb2a3be](googleapis/sdk-platform-java@bb2a3be))
- protobuf version not always getting set in headers
([#&#8203;3322](googleapis/sdk-platform-java#3322))
([7f6e470](googleapis/sdk-platform-java@7f6e470))
- use BuildKit instead of legacy builder to build the Hermetic Build
images
([#&#8203;3338](googleapis/sdk-platform-java#3338))
([222fb45](googleapis/sdk-platform-java@222fb45))

##### Dependencies

- update google auth library dependencies to v1.30.0
([#&#8203;3367](googleapis/sdk-platform-java#3367))
([a31c682](googleapis/sdk-platform-java@a31c682))
- update grpc dependencies to v1.68.1
([#&#8203;3240](googleapis/sdk-platform-java#3240))
([c8e3941](googleapis/sdk-platform-java@c8e3941))

##### Documentation

- fix list num
([#&#8203;3356](googleapis/sdk-platform-java#3356))
([b7d6296](googleapis/sdk-platform-java@b7d6296))
- **hermetic-build:** indicate usage of Docker Buildkit in development
guide
([#&#8203;3337](googleapis/sdk-platform-java#3337))
([01e742d](googleapis/sdk-platform-java@01e742d))
- modify hermetic build docs
([#&#8203;3331](googleapis/sdk-platform-java#3331))
([25023af](googleapis/sdk-platform-java@25023af))

</details>

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

###
[`v6.83.0`](https://github.com/googleapis/java-spanner/blob/HEAD/CHANGELOG.md#6830-2024-12-13)

##### Features

- Add Metrics host for built in metrics
([#&#8203;3519](googleapis/java-spanner#3519))
([4ed455a](googleapis/java-spanner@4ed455a))
- Add opt-in for using multiplexed sessions for blind writes
([#&#8203;3540](googleapis/java-spanner#3540))
([216f53e](googleapis/java-spanner@216f53e))
- Add UUID in Spanner TypeCode enum
([41f83dc](googleapis/java-spanner@41f83dc))
- Introduce java.time variables and methods
([#&#8203;3495](googleapis/java-spanner#3495))
([8a7d533](googleapis/java-spanner@8a7d533))
- **spanner:** Support multiplexed session for Partitioned operations
([#&#8203;3231](googleapis/java-spanner#3231))
([4501a3e](googleapis/java-spanner@4501a3e))
- Support 'set local' for retry_aborts_internally
([#&#8203;3532](googleapis/java-spanner#3532))
([331942f](googleapis/java-spanner@331942f))

##### Bug Fixes

- **deps:** Update the Java code generator (gapic-generator-java) to
2.51.0
([41f83dc](googleapis/java-spanner@41f83dc))

##### Dependencies

- Update sdk platform java dependencies
([#&#8203;3549](googleapis/java-spanner#3549))
([6235f0f](googleapis/java-spanner@6235f0f))

</details>

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

###
[`v3.21.0`](https://github.com/googleapis/java-logging/blob/HEAD/CHANGELOG.md#3210-2024-12-13)

##### Features

- Introduce `java.time` methods
([#&#8203;1729](googleapis/java-logging#1729))
([323eb33](googleapis/java-logging@323eb33))

##### Bug Fixes

- **deps:** Update the Java code generator (gapic-generator-java) to
2.51.0
([04d8868](googleapis/java-logging@04d8868))

##### Dependencies

- Update dependency io.opentelemetry:opentelemetry-bom to v1.45.0
([#&#8203;1638](googleapis/java-logging#1638))
([7e007d4](googleapis/java-logging@7e007d4))
- Update sdk platform java dependencies
([#&#8203;1736](googleapis/java-logging#1736))
([88b4cdf](googleapis/java-logging@88b4cdf))

</details>

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

###
[`v2.25.1`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2251-2024-12-13)

##### Bug Fixes

- **deps:** Update the Java code generator (gapic-generator-java) to
2.51.0
([106ee4d](googleapis/java-datastore@106ee4d))

##### Dependencies

- Update sdk platform java dependencies
([#&#8203;1685](googleapis/java-datastore#1685))
([4372350](googleapis/java-datastore@4372350))

###
[`v2.25.0`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2250-2024-12-11)

##### Features

- Introduce `java.time` methods and variables
([#&#8203;1671](googleapis/java-datastore#1671))
([5a78a80](googleapis/java-datastore@5a78a80))

##### Dependencies

- Update dependency com.google.cloud:gapic-libraries-bom to v1.48.0
([#&#8203;1605](googleapis/java-datastore#1605))
([5c6a678](googleapis/java-datastore@5c6a678))

##### Documentation

- Update gapic upgrade installation instructions
([#&#8203;1677](googleapis/java-datastore#1677))
([b3fbfcc](googleapis/java-datastore@b3fbfcc))

</details>

<details>
<summary>autonomousapps/dependency-analysis-android-gradle-plugin
(com.autonomousapps.dependency-analysis)</summary>

###
[`v2.6.1`](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/blob/HEAD/CHANGELOG.md#Version-261)

-   \[Fix]: `superClassName` can be null (Object has no superclass).

</details>

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

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

##### Components

##### Continuous Integration Visibility

- 🐛 Fix tracing JUnit5 tests in Maven projects with multiple forks
([#&#8203;8089](DataDog/dd-trace-java#8089) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))

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

##### Known Issues

> \[!WARNING]\
> This release contains a known issue that causes failures when using
Test Optimization to trace JUnit 5 tests in a Maven project where Maven
Surefire is configured with `forkCount` > 1.
> The issue is fixed in v1.44.1

##### Breaking Changes

> \[!WARNING]\
> Support for `X-Forwarded` header is dropped from default client IP
resolution.
> It can still be re-activated using the
`dd.trace.client-ip-header=x-forwarded` system property, or the
`DD_TRACE_CLIENT_IP_HEADER=x-forwarded` environment variable. See
[#&#8203;7946](DataDog/dd-trace-java#7946).

##### Components

##### Application Security Management (IAST)

- ✨ Set unexpected IAST exceptions to debug log level
([#&#8203;8044](DataDog/dd-trace-java#8044) -
[@&#8203;smola](https://github.com/smola))
- ✨ Increase IAST propagation to StringBuffer subSequence
([#&#8203;8038](DataDog/dd-trace-java#8038) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Increase IAST propagation to StringBuilder subSequence
([#&#8203;8026](DataDog/dd-trace-java#8026) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Add IAST propagation to String valueOf
([#&#8203;8013](DataDog/dd-trace-java#8013) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Increase IAST propagation to StringBuilder append
([#&#8203;8010](DataDog/dd-trace-java#8010) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Expand SSRF support in IAST to apache-httpclient-5 and
apache-httpasyncclient-4
([#&#8203;7920](DataDog/dd-trace-java#7920) -
[@&#8203;Mariovido](https://github.com/Mariovido))

##### Build & Tooling

- ✨ Generate Muzzle classes for Groovy instrumentations
([#&#8203;8004](DataDog/dd-trace-java#8004) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))

##### Continuous Integration Visibility

- ✨ Support distributed traces in tests
([#&#8203;8078](DataDog/dd-trace-java#8078) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Implement fail-fast tests ordering for JUnit 5
([#&#8203;8055](DataDog/dd-trace-java#8055) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Mark JUnit 5 setup and teardown action spans as failed if
there is an error
([#&#8203;8033](DataDog/dd-trace-java#8033) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Add tracing of setup and teardown actions in JUnit 4
([#&#8203;8030](DataDog/dd-trace-java#8030) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))

##### Crash tracking

- ✨ Improve crash tracking install logging
([#&#8203;8045](DataDog/dd-trace-java#8045) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

##### Data Streams Monitoring

- 🐛 Add Data Streams support in AWS SQS without raw message delivery
([#&#8203;8071](DataDog/dd-trace-java#8071) -
[@&#8203;piochelepiotr](https://github.com/piochelepiotr))
- ✨ Add new tag for enabled products / features to DSM
checkpoints
([#&#8203;8051](DataDog/dd-trace-java#8051) -
[@&#8203;kr-igor](https://github.com/kr-igor))
- 💡 Instrument self hosted Kafka connectors
([#&#8203;7959](DataDog/dd-trace-java#7959) -
[@&#8203;piochelepiotr](https://github.com/piochelepiotr))

##### Dynamic Instrumentation

- ✨ Add Micronaut 4 support for code origin for spans
([#&#8203;8039](DataDog/dd-trace-java#8039) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Refactor probe matching for methods
([#&#8203;8021](DataDog/dd-trace-java#8021) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Update the CodeOriginProbe fingerprint to not rely on a
stack walk
([#&#8203;8016](DataDog/dd-trace-java#8016) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- ✨ Implement code origin support for grpc server entry spans
([#&#8203;7942](DataDog/dd-trace-java#7942) -
[@&#8203;evanchooly](https://github.com/evanchooly))

##### GraalVM native-image

- 🐛 Update Graal build-time instrumentation config for
TracePropagationStyle
([#&#8203;8065](DataDog/dd-trace-java#8065) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- 🐛 Fix NoClassDefFoundError: Could not initialize class
DDSpanLink$EncoderHolder in Graal native-image
([#&#8203;8036](DataDog/dd-trace-java#8036) -
[@&#8203;mcculls](https://github.com/mcculls))
- 🐛🧹 Fix native-image generation of reactive applications
([#&#8203;8012](DataDog/dd-trace-java#8012) -
[@&#8203;mcculls](https://github.com/mcculls))

##### OpenTracing

- 🧹 Custom ScopeManagers are deprecated and will be removed in a
future release of dd-trace-ot
([#&#8203;8058](DataDog/dd-trace-java#8058) -
[@&#8203;mcculls](https://github.com/mcculls))

##### Tracer core

- ✨🧪 Service naming: split by jee deployment
([#&#8203;8064](DataDog/dd-trace-java#8064) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Exclude jboss mdb proxies from instrumenting
([#&#8203;8061](DataDog/dd-trace-java#8061) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Add a built-in trace interceptor for keeping traces
depending of their latency
([#&#8203;8040](DataDog/dd-trace-java#8040) -
[@&#8203;cecile75](https://github.com/cecile75))
- 💡 Introduce marker mechanism for eagerly initializing helpers
([#&#8203;8028](DataDog/dd-trace-java#8028) -
[@&#8203;mcculls](https://github.com/mcculls))
- 💡 Add JSON component
([#&#8203;7973](DataDog/dd-trace-java#7973) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨⚠️ Remove support for X-Forwarded in client IP
resolution
([#&#8203;7946](DataDog/dd-trace-java#7946) -
[@&#8203;smola](https://github.com/smola))

##### Instrumentations

##### Apache HttpComponents

- ✨ Expand SSRF support in IAST to apache-httpclient-5 and
apache-httpasyncclient-4
([#&#8203;7920](DataDog/dd-trace-java#7920) -
[@&#8203;Mariovido](https://github.com/Mariovido))

##### gRPC instrumentation

- 🐛 Use lower priorities for grpc server errors
([#&#8203;8043](DataDog/dd-trace-java#8043) -
[@&#8203;amarziali](https://github.com/amarziali))

##### JDBC instrumentation

- ✨ Add trace injection for prepared statements in Postgres
([#&#8203;7940](DataDog/dd-trace-java#7940) -
[@&#8203;nenadnoveljic](https://github.com/nenadnoveljic))

##### JMS instrumentation

- 🐛 Protect mdb from instrumenting multiple time the same event
([#&#8203;8062](DataDog/dd-trace-java#8062) -
[@&#8203;amarziali](https://github.com/amarziali))

##### Kafka instrumentation

- 💡 Instrument self hosted Kafka connectors
([#&#8203;7959](DataDog/dd-trace-java#7959) -
[@&#8203;piochelepiotr](https://github.com/piochelepiotr))

##### OpenTelemetry instrumentation

- 🐛 Support using OpenTelemetry Event API inside `@WithSpan`
annotated method
([#&#8203;8019](DataDog/dd-trace-java#8019) -
[@&#8203;mcculls](https://github.com/mcculls))

##### Reactor instrumentation

- 🐛🧹 Fix native-image generation of reactive applications
([#&#8203;8012](DataDog/dd-trace-java#8012) -
[@&#8203;mcculls](https://github.com/mcculls))

##### Spring instrumentation

- 🐛 Avoid double instrumenting lambdas on latest spring scheduling
([#&#8203;8005](DataDog/dd-trace-java#8005) -
[@&#8203;amarziali](https://github.com/amarziali))

##### All other instrumentations

- 🐛 Twilio: allow service name flattening
([#&#8203;8025](DataDog/dd-trace-java#8025) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Instrument Mulesoft 4.5.0+
([#&#8203;7981](DataDog/dd-trace-java#7981) -
[@&#8203;amarziali](https://github.com/amarziali))

</details>

<details>
<summary>aws/aws-sdk-java (com.amazonaws:aws-java-sdk-sqs)</summary>

###
[`v1.12.780`](https://github.com/aws/aws-sdk-java/blob/HEAD/CHANGELOG.md#112780-2024-12-11)

[Compare
Source](aws/aws-sdk-java@1.12.779...1.12.780)

#### **Amazon Simple Storage Service**

-   ### Bugfixes
- AWS SDK for Java 1.x now includes additional validation for Amazon S3
client APIs to handle scenarios where an empty string ('') is passed as
the key argument to the following operations: PutObject, DeleteObject,
ListObjects, GetObjectMetaData, ListObjectsV2, SetObjectTagging,
GetObjectTagging, SetObjectAcl, GetObjectAcl, SetObjectLegalHold,
GetObjectLegalHold, CopyObject, CopyPart, SelectObjectContent,
SetObjectRetention, GetObjectRetention, AbortMultipartUpload,
CompleteMultipartUpload, InitiateMultipartUpload, ListParts, UploadPart,
RestoreObjectV2, and RestoreObject. The SDK will validate the key
argument and throw an exception if it is an empty string, ensuring
correct and expected behavior.

</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: 69831bc62ea4d80cdcd42cef2aa9bd8eda28ae8c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp: data streams Data Streams Monitoring type: bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants