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 JSON component #7973

Merged
merged 9 commits into from
Dec 4, 2024
Merged

Add JSON component #7973

merged 9 commits into from
Dec 4, 2024

Conversation

PerfectSlayer
Copy link
Contributor

@PerfectSlayer PerfectSlayer commented Nov 19, 2024

What Does This Do

This PR introduces a platform module to craft JSON payload.
It provides a minimalist writer to craft JSON objects and arrays, and mapper to convert simple Java object.

Motivation

The goals is to provide common capability to create simple JSON payload without relying on a JSON library that can conflict with the instrumented application.
As more and more products and features relies on JSON, gathering this capability into a dedicated reusable platform component allows to simplify the code base and consolidate the feature (in term of capability and testing) in one place.

Additional Notes

This PR is split to easily review the impact on each features relying on JSON that were migrated to this new component. It will be squashed on merge.

Karate test data were slightly altered as some characters were escaped unexpectedly by the previous implementation:

{"test.parameters" : "{\"param\":\"\\'a\\'\",\"value\":\"aa\"}"}

becomes:

{"test.parameters" : "{\"param\":\"'a'\",\"value\":\"aa\"}"}

Where the ' does not have to be escaped in this context.

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@PerfectSlayer PerfectSlayer requested review from a team as code owners November 19, 2024 10:43
@PerfectSlayer PerfectSlayer marked this pull request as draft November 19, 2024 10:44
Copy link
Contributor

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.

@pr-commenter
Copy link

pr-commenter bot commented Nov 19, 2024

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/json-component
git_commit_date 1733300620 1733308128
git_commit_sha d2c8a74 7c3d6e2
release_version 1.44.0-SNAPSHOT~d2c8a74d9d 1.44.0-SNAPSHOT~7c3d6e2936
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1733310559 1733310559
ci_job_id 726569640 726569640
ci_pipeline_id 50319287 50319287
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 54 metrics, 9 unstable metrics.

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.44.0-SNAPSHOT~7c3d6e2936, baseline=1.44.0-SNAPSHOT~d2c8a74d9d

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.101 s) : 0, 1100722
Total [baseline] (8.66 s) : 0, 8660206
Agent [candidate] (1.091 s) : 0, 1091031
Total [candidate] (8.634 s) : 0, 8634007
section iast
Agent [baseline] (1.218 s) : 0, 1218348
Total [baseline] (9.213 s) : 0, 9212841
Agent [candidate] (1.22 s) : 0, 1220080
Total [candidate] (9.181 s) : 0, 9181361
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.228 s) : 0, 1228408
Total [baseline] (9.221 s) : 0, 9220640
Agent [candidate] (1.221 s) : 0, 1220700
Total [candidate] (9.169 s) : 0, 9169172
section iast_TELEMETRY_OFF
Agent [baseline] (1.217 s) : 0, 1217171
Total [baseline] (9.178 s) : 0, 9178242
Agent [candidate] (1.213 s) : 0, 1213249
Total [candidate] (9.197 s) : 0, 9196823
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.101 s -
Agent iast 1.218 s 117.626 ms (10.7%)
Agent iast_HARDCODED_SECRET_DISABLED 1.228 s 127.686 ms (11.6%)
Agent iast_TELEMETRY_OFF 1.217 s 116.448 ms (10.6%)
Total tracing 8.66 s -
Total iast 9.213 s 552.635 ms (6.4%)
Total iast_HARDCODED_SECRET_DISABLED 9.221 s 560.434 ms (6.5%)
Total iast_TELEMETRY_OFF 9.178 s 518.036 ms (6.0%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.091 s -
Agent iast 1.22 s 129.05 ms (11.8%)
Agent iast_HARDCODED_SECRET_DISABLED 1.221 s 129.669 ms (11.9%)
Agent iast_TELEMETRY_OFF 1.213 s 122.219 ms (11.2%)
Total tracing 8.634 s -
Total iast 9.181 s 547.355 ms (6.3%)
Total iast_HARDCODED_SECRET_DISABLED 9.169 s 535.165 ms (6.2%)
Total iast_TELEMETRY_OFF 9.197 s 562.816 ms (6.5%)
gantt
    title insecure-bank - break down per module: candidate=1.44.0-SNAPSHOT~7c3d6e2936, baseline=1.44.0-SNAPSHOT~d2c8a74d9d

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (699.522 ms) : 0, 699522
BytebuddyAgent [candidate] (693.648 ms) : 0, 693648
GlobalTracer [baseline] (319.559 ms) : 0, 319559
GlobalTracer [candidate] (317.694 ms) : 0, 317694
AppSec [baseline] (54.553 ms) : 0, 54553
AppSec [candidate] (54.67 ms) : 0, 54670
Remote Config [baseline] (696.371 µs) : 0, 696
Remote Config [candidate] (683.384 µs) : 0, 683
Telemetry [baseline] (12.559 ms) : 0, 12559
Telemetry [candidate] (10.609 ms) : 0, 10609
section iast
BytebuddyAgent [baseline] (812.342 ms) : 0, 812342
BytebuddyAgent [candidate] (812.677 ms) : 0, 812677
GlobalTracer [baseline] (305.824 ms) : 0, 305824
GlobalTracer [candidate] (306.792 ms) : 0, 306792
AppSec [baseline] (56.776 ms) : 0, 56776
AppSec [candidate] (56.314 ms) : 0, 56314
IAST [baseline] (21.578 ms) : 0, 21578
IAST [candidate] (22.454 ms) : 0, 22454
Remote Config [baseline] (631.224 µs) : 0, 631
Remote Config [candidate] (628.537 µs) : 0, 629
Telemetry [baseline] (7.491 ms) : 0, 7491
Telemetry [candidate] (7.448 ms) : 0, 7448
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (818.744 ms) : 0, 818744
BytebuddyAgent [candidate] (813.183 ms) : 0, 813183
GlobalTracer [baseline] (308.029 ms) : 0, 308029
GlobalTracer [candidate] (306.508 ms) : 0, 306508
AppSec [baseline] (58.303 ms) : 0, 58303
AppSec [candidate] (57.257 ms) : 0, 57257
IAST [baseline] (21.192 ms) : 0, 21192
IAST [candidate] (21.788 ms) : 0, 21788
Remote Config [baseline] (627.745 µs) : 0, 628
Remote Config [candidate] (637.04 µs) : 0, 637
Telemetry [baseline] (7.6 ms) : 0, 7600
Telemetry [candidate] (7.508 ms) : 0, 7508
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (810.152 ms) : 0, 810152
BytebuddyAgent [candidate] (807.811 ms) : 0, 807811
GlobalTracer [baseline] (306.173 ms) : 0, 306173
GlobalTracer [candidate] (305.352 ms) : 0, 305352
AppSec [baseline] (58.333 ms) : 0, 58333
AppSec [candidate] (57.819 ms) : 0, 57819
IAST [baseline] (20.587 ms) : 0, 20587
IAST [candidate] (20.503 ms) : 0, 20503
Remote Config [baseline] (640.607 µs) : 0, 641
Remote Config [candidate] (626.136 µs) : 0, 626
Telemetry [baseline] (7.495 ms) : 0, 7495
Telemetry [candidate] (7.419 ms) : 0, 7419
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.44.0-SNAPSHOT~7c3d6e2936, baseline=1.44.0-SNAPSHOT~d2c8a74d9d

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.09 s) : 0, 1089594
Total [baseline] (10.493 s) : 0, 10493019
Agent [candidate] (1.104 s) : 0, 1103588
Total [candidate] (10.528 s) : 0, 10528289
section appsec
Agent [baseline] (1.224 s) : 0, 1224269
Total [baseline] (10.765 s) : 0, 10764880
Agent [candidate] (1.229 s) : 0, 1228922
Total [candidate] (10.749 s) : 0, 10748922
section iast
Agent [baseline] (1.228 s) : 0, 1228091
Total [baseline] (10.945 s) : 0, 10944845
Agent [candidate] (1.229 s) : 0, 1228733
Total [candidate] (11.039 s) : 0, 11038947
section profiling
Agent [baseline] (1.323 s) : 0, 1323480
Total [baseline] (10.806 s) : 0, 10806480
Agent [candidate] (1.318 s) : 0, 1317867
Total [candidate] (10.863 s) : 0, 10862539
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.09 s -
Agent appsec 1.224 s 134.675 ms (12.4%)
Agent iast 1.228 s 138.497 ms (12.7%)
Agent profiling 1.323 s 233.886 ms (21.5%)
Total tracing 10.493 s -
Total appsec 10.765 s 271.862 ms (2.6%)
Total iast 10.945 s 451.827 ms (4.3%)
Total profiling 10.806 s 313.461 ms (3.0%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.104 s -
Agent appsec 1.229 s 125.334 ms (11.4%)
Agent iast 1.229 s 125.145 ms (11.3%)
Agent profiling 1.318 s 214.279 ms (19.4%)
Total tracing 10.528 s -
Total appsec 10.749 s 220.633 ms (2.1%)
Total iast 11.039 s 510.659 ms (4.9%)
Total profiling 10.863 s 334.251 ms (3.2%)
gantt
    title petclinic - break down per module: candidate=1.44.0-SNAPSHOT~7c3d6e2936, baseline=1.44.0-SNAPSHOT~d2c8a74d9d

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (694.372 ms) : 0, 694372
BytebuddyAgent [candidate] (702.066 ms) : 0, 702066
GlobalTracer [baseline] (317.496 ms) : 0, 317496
GlobalTracer [candidate] (321.036 ms) : 0, 321036
AppSec [baseline] (54.829 ms) : 0, 54829
AppSec [candidate] (55.143 ms) : 0, 55143
Remote Config [baseline] (671.154 µs) : 0, 671
Remote Config [candidate] (685.136 µs) : 0, 685
Telemetry [baseline] (8.475 ms) : 0, 8475
Telemetry [candidate] (10.822 ms) : 0, 10822
section appsec
BytebuddyAgent [baseline] (711.205 ms) : 0, 711205
BytebuddyAgent [candidate] (714.008 ms) : 0, 714008
GlobalTracer [baseline] (314.093 ms) : 0, 314093
GlobalTracer [candidate] (315.448 ms) : 0, 315448
AppSec [baseline] (167.751 ms) : 0, 167751
AppSec [candidate] (167.403 ms) : 0, 167403
Remote Config [baseline] (651.85 µs) : 0, 652
Remote Config [candidate] (646.494 µs) : 0, 646
Telemetry [baseline] (7.424 ms) : 0, 7424
Telemetry [candidate] (8.174 ms) : 0, 8174
IAST [baseline] (18.937 ms) : 0, 18937
IAST [candidate] (18.901 ms) : 0, 18901
section iast
BytebuddyAgent [baseline] (819.219 ms) : 0, 819219
BytebuddyAgent [candidate] (818.425 ms) : 0, 818425
GlobalTracer [baseline] (308.167 ms) : 0, 308167
GlobalTracer [candidate] (308.441 ms) : 0, 308441
AppSec [baseline] (57.665 ms) : 0, 57665
AppSec [candidate] (57.407 ms) : 0, 57407
Remote Config [baseline] (656.794 µs) : 0, 657
Remote Config [candidate] (645.94 µs) : 0, 646
Telemetry [baseline] (7.621 ms) : 0, 7621
Telemetry [candidate] (7.588 ms) : 0, 7588
IAST [baseline] (20.969 ms) : 0, 20969
IAST [candidate] (22.237 ms) : 0, 22237
section profiling
ProfilingAgent [baseline] (93.124 ms) : 0, 93124
ProfilingAgent [candidate] (92.972 ms) : 0, 92972
BytebuddyAgent [baseline] (693.143 ms) : 0, 693143
BytebuddyAgent [candidate] (690.215 ms) : 0, 690215
GlobalTracer [baseline] (435.86 ms) : 0, 435860
GlobalTracer [candidate] (433.665 ms) : 0, 433665
AppSec [baseline] (53.642 ms) : 0, 53642
AppSec [candidate] (53.33 ms) : 0, 53330
Remote Config [baseline] (658.332 µs) : 0, 658
Remote Config [candidate] (662.56 µs) : 0, 663
Telemetry [baseline] (7.698 ms) : 0, 7698
Telemetry [candidate] (7.726 ms) : 0, 7726
Profiling [baseline] (93.147 ms) : 0, 93147
Profiling [candidate] (92.996 ms) : 0, 92996
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2024-12-04T10:39:24 2024-12-04T10:46:25
git_branch master bbujon/json-component
git_commit_date 1733300620 1733308128
git_commit_sha d2c8a74 7c3d6e2
release_version 1.44.0-SNAPSHOT~d2c8a74d9d 1.44.0-SNAPSHOT~7c3d6e2936
start_time 2024-12-04T10:39:11 2024-12-04T10:46:12
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1733309540 1733309540
ci_job_id 726569642 726569642
ci_pipeline_id 50319287 50319287
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 11 metrics, 17 unstable metrics.

Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.44.0-SNAPSHOT~7c3d6e2936, baseline=1.44.0-SNAPSHOT~d2c8a74d9d
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.352 ms) : 1332, 1372
.   : milestone, 1352,
appsec (1.756 ms) : 1730, 1781
.   : milestone, 1756,
appsec_no_iast (1.758 ms) : 1733, 1784
.   : milestone, 1758,
iast (1.529 ms) : 1507, 1552
.   : milestone, 1529,
profiling (1.534 ms) : 1510, 1559
.   : milestone, 1534,
tracing (1.494 ms) : 1470, 1519
.   : milestone, 1494,
section candidate
no_agent (1.375 ms) : 1356, 1395
.   : milestone, 1375,
appsec (1.744 ms) : 1719, 1769
.   : milestone, 1744,
appsec_no_iast (1.762 ms) : 1738, 1786
.   : milestone, 1762,
iast (1.494 ms) : 1472, 1516
.   : milestone, 1494,
profiling (1.538 ms) : 1513, 1563
.   : milestone, 1538,
tracing (1.496 ms) : 1472, 1521
.   : milestone, 1496,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.352 ms [1.332 ms, 1.372 ms] -
appsec 1.756 ms [1.73 ms, 1.781 ms] 403.766 µs (29.9%)
appsec_no_iast 1.758 ms [1.733 ms, 1.784 ms] 406.314 µs (30.1%)
iast 1.529 ms [1.507 ms, 1.552 ms] 177.236 µs (13.1%)
profiling 1.534 ms [1.51 ms, 1.559 ms] 182.101 µs (13.5%)
tracing 1.494 ms [1.47 ms, 1.519 ms] 142.384 µs (10.5%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.375 ms [1.356 ms, 1.395 ms] -
appsec 1.744 ms [1.719 ms, 1.769 ms] 368.392 µs (26.8%)
appsec_no_iast 1.762 ms [1.738 ms, 1.786 ms] 386.723 µs (28.1%)
iast 1.494 ms [1.472 ms, 1.516 ms] 119.219 µs (8.7%)
profiling 1.538 ms [1.513 ms, 1.563 ms] 162.701 µs (11.8%)
tracing 1.496 ms [1.472 ms, 1.521 ms] 120.977 µs (8.8%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.44.0-SNAPSHOT~7c3d6e2936, baseline=1.44.0-SNAPSHOT~d2c8a74d9d
    dateFormat X
    axisFormat %s
section baseline
no_agent (381.76 µs) : 362, 401
.   : milestone, 382,
iast (491.354 µs) : 470, 513
.   : milestone, 491,
iast_FULL (657.606 µs) : 636, 679
.   : milestone, 658,
iast_GLOBAL (524.971 µs) : 503, 547
.   : milestone, 525,
iast_HARDCODED_SECRET_DISABLED (495.007 µs) : 474, 516
.   : milestone, 495,
iast_INACTIVE (461.575 µs) : 440, 483
.   : milestone, 462,
iast_TELEMETRY_OFF (484.363 µs) : 463, 506
.   : milestone, 484,
tracing (452.747 µs) : 432, 473
.   : milestone, 453,
section candidate
no_agent (376.922 µs) : 357, 397
.   : milestone, 377,
iast (500.527 µs) : 479, 522
.   : milestone, 501,
iast_FULL (656.609 µs) : 635, 678
.   : milestone, 657,
iast_GLOBAL (525.237 µs) : 504, 547
.   : milestone, 525,
iast_HARDCODED_SECRET_DISABLED (500.575 µs) : 479, 522
.   : milestone, 501,
iast_INACTIVE (460.875 µs) : 439, 483
.   : milestone, 461,
iast_TELEMETRY_OFF (485.768 µs) : 464, 507
.   : milestone, 486,
tracing (457.002 µs) : 436, 478
.   : milestone, 457,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 381.76 µs [362.149 µs, 401.372 µs] -
iast 491.354 µs [470.037 µs, 512.671 µs] 109.593 µs (28.7%)
iast_FULL 657.606 µs [636.204 µs, 679.008 µs] 275.846 µs (72.3%)
iast_GLOBAL 524.971 µs [502.649 µs, 547.294 µs] 143.211 µs (37.5%)
iast_HARDCODED_SECRET_DISABLED 495.007 µs [473.715 µs, 516.3 µs] 113.247 µs (29.7%)
iast_INACTIVE 461.575 µs [439.973 µs, 483.178 µs] 79.815 µs (20.9%)
iast_TELEMETRY_OFF 484.363 µs [462.512 µs, 506.215 µs] 102.603 µs (26.9%)
tracing 452.747 µs [432.093 µs, 473.402 µs] 70.987 µs (18.6%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 376.922 µs [356.883 µs, 396.962 µs] -
iast 500.527 µs [478.676 µs, 522.379 µs] 123.605 µs (32.8%)
iast_FULL 656.609 µs [635.112 µs, 678.107 µs] 279.687 µs (74.2%)
iast_GLOBAL 525.237 µs [503.503 µs, 546.971 µs] 148.315 µs (39.3%)
iast_HARDCODED_SECRET_DISABLED 500.575 µs [478.917 µs, 522.232 µs] 123.652 µs (32.8%)
iast_INACTIVE 460.875 µs [438.956 µs, 482.795 µs] 83.953 µs (22.3%)
iast_TELEMETRY_OFF 485.768 µs [464.377 µs, 507.16 µs] 108.846 µs (28.9%)
tracing 457.002 µs [435.573 µs, 478.431 µs] 80.079 µs (21.2%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/json-component
git_commit_date 1733300620 1733308128
git_commit_sha d2c8a74 7c3d6e2
release_version 1.44.0-SNAPSHOT~d2c8a74d9d 1.44.0-SNAPSHOT~7c3d6e2936
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1733309989 1733309989
ci_job_id 726569646 726569646
ci_pipeline_id 50319287 50319287
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~7c3d6e2936, baseline=1.44.0-SNAPSHOT~d2c8a74d9d
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.513 s) : 15513000, 15513000
.   : milestone, 15513000,
appsec (14.913 s) : 14913000, 14913000
.   : milestone, 14913000,
iast (18.974 s) : 18974000, 18974000
.   : milestone, 18974000,
iast_GLOBAL (17.835 s) : 17835000, 17835000
.   : milestone, 17835000,
profiling (15.04 s) : 15040000, 15040000
.   : milestone, 15040000,
tracing (14.981 s) : 14981000, 14981000
.   : milestone, 14981000,
section candidate
no_agent (15.269 s) : 15269000, 15269000
.   : milestone, 15269000,
appsec (15.039 s) : 15039000, 15039000
.   : milestone, 15039000,
iast (18.755 s) : 18755000, 18755000
.   : milestone, 18755000,
iast_GLOBAL (18.284 s) : 18284000, 18284000
.   : milestone, 18284000,
profiling (15.569 s) : 15569000, 15569000
.   : milestone, 15569000,
tracing (15.275 s) : 15275000, 15275000
.   : milestone, 15275000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.513 s [15.513 s, 15.513 s] -
appsec 14.913 s [14.913 s, 14.913 s] -600.0 ms (-3.9%)
iast 18.974 s [18.974 s, 18.974 s] 3.461 s (22.3%)
iast_GLOBAL 17.835 s [17.835 s, 17.835 s] 2.322 s (15.0%)
profiling 15.04 s [15.04 s, 15.04 s] -473.0 ms (-3.0%)
tracing 14.981 s [14.981 s, 14.981 s] -532.0 ms (-3.4%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.269 s [15.269 s, 15.269 s] -
appsec 15.039 s [15.039 s, 15.039 s] -230.0 ms (-1.5%)
iast 18.755 s [18.755 s, 18.755 s] 3.486 s (22.8%)
iast_GLOBAL 18.284 s [18.284 s, 18.284 s] 3.015 s (19.7%)
profiling 15.569 s [15.569 s, 15.569 s] 300.0 ms (2.0%)
tracing 15.275 s [15.275 s, 15.275 s] 6.0 ms (0.0%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.44.0-SNAPSHOT~7c3d6e2936, baseline=1.44.0-SNAPSHOT~d2c8a74d9d
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.478 ms) : 1466, 1489
.   : milestone, 1478,
appsec (2.345 ms) : 2304, 2387
.   : milestone, 2345,
iast (2.101 ms) : 2048, 2154
.   : milestone, 2101,
iast_GLOBAL (2.138 ms) : 2085, 2191
.   : milestone, 2138,
profiling (1.955 ms) : 1913, 1997
.   : milestone, 1955,
tracing (1.936 ms) : 1896, 1977
.   : milestone, 1936,
section candidate
no_agent (1.471 ms) : 1460, 1483
.   : milestone, 1471,
appsec (2.353 ms) : 2311, 2395
.   : milestone, 2353,
iast (2.106 ms) : 2053, 2159
.   : milestone, 2106,
iast_GLOBAL (2.133 ms) : 2080, 2186
.   : milestone, 2133,
profiling (1.974 ms) : 1931, 2017
.   : milestone, 1974,
tracing (1.941 ms) : 1901, 1982
.   : milestone, 1941,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.478 ms [1.466 ms, 1.489 ms] -
appsec 2.345 ms [2.304 ms, 2.387 ms] 867.481 µs (58.7%)
iast 2.101 ms [2.048 ms, 2.154 ms] 623.163 µs (42.2%)
iast_GLOBAL 2.138 ms [2.085 ms, 2.191 ms] 660.401 µs (44.7%)
profiling 1.955 ms [1.913 ms, 1.997 ms] 477.002 µs (32.3%)
tracing 1.936 ms [1.896 ms, 1.977 ms] 458.61 µs (31.0%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.471 ms [1.46 ms, 1.483 ms] -
appsec 2.353 ms [2.311 ms, 2.395 ms] 881.958 µs (59.9%)
iast 2.106 ms [2.053 ms, 2.159 ms] 634.429 µs (43.1%)
iast_GLOBAL 2.133 ms [2.08 ms, 2.186 ms] 661.628 µs (45.0%)
profiling 1.974 ms [1.931 ms, 2.017 ms] 502.463 µs (34.1%)
tracing 1.941 ms [1.901 ms, 1.982 ms] 469.817 µs (31.9%)

@PerfectSlayer PerfectSlayer force-pushed the bbujon/json-component branch 2 times, most recently from 9eff3df to 0a2b5c0 Compare November 20, 2024 09:01
@PerfectSlayer PerfectSlayer force-pushed the bbujon/json-component branch 8 times, most recently from d8bb066 to 77a3886 Compare November 25, 2024 14:13
@PerfectSlayer PerfectSlayer marked this pull request as ready for review November 25, 2024 15:38
@PerfectSlayer PerfectSlayer requested review from nikita-tkachenko-datadog and removed request for tonyredondo November 25, 2024 15:40
* @return The converted JSON array as Java string.
*/
@SuppressWarnings("DuplicatedCode")
public static String toJson(Iterable<String> items) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Are there any Iterables we want to map that aren't Collections? If not then using Collection might make more sense here, and also lets you use isEmpty().

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This was inherited from Strings.toJson method. I will look for the codebase usage but I would rather use Collection too.

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.

+1 just some minor comments / suggestions

@PerfectSlayer PerfectSlayer force-pushed the bbujon/json-component branch 2 times, most recently from 0baf06b to bc778d3 Compare December 3, 2024 17:21
@PerfectSlayer PerfectSlayer merged commit 686f51a into master Dec 4, 2024
103 checks passed
@PerfectSlayer PerfectSlayer deleted the bbujon/json-component branch December 4, 2024 11:54
@github-actions github-actions bot added this to the 1.44.0 milestone Dec 4, 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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants