Skip to content

Conversation

PerfectSlayer
Copy link
Contributor

@PerfectSlayer PerfectSlayer commented Mar 18, 2025

What Does This Do

This PR introduces JSON reading / parsing capability to the json component.

Motivation

Only JSON writer was implemented to write JSON payload.
Now, we should be able to read input JSON payload too.

Additional Notes

The parser is not bullet-proofed but I added a good amount of testing.

Contributor Checklist

Jira ticket: LANGPLAT-78

@PerfectSlayer PerfectSlayer added type: enhancement Enhancements and improvements comp: core Tracer core labels Mar 18, 2025
@PerfectSlayer PerfectSlayer requested a review from a team as a code owner March 18, 2025 10:24
@PerfectSlayer PerfectSlayer requested a review from smola March 18, 2025 10:24
@pr-commenter
Copy link

pr-commenter bot commented Mar 18, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/json-component
git_commit_date 1742285131 1742293423
git_commit_sha b046b86 521e2e6
release_version 1.48.0-SNAPSHOT~b046b86617 1.48.0-SNAPSHOT~521e2e6d26
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1742296032 1742296032
ci_job_id 852353033 852353033
ci_pipeline_id 59147124 59147124
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-dthjy2ah-project-304-concurrent-1-qgib8q1u 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-dthjy2ah-project-304-concurrent-1-qgib8q1u 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 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 insecure-bank
gantt title insecure-bank - global startup overhead: candidate=1.48.0-SNAPSHOT~521e2e6d26, baseline=1.48.0-SNAPSHOT~b046b86617 dateFormat X axisFormat %s section tracing Agent [baseline] (1.049 s) : 0, 1048819 Total [baseline] (8.679 s) : 0, 8678936 Agent [candidate] (1.043 s) : 0, 1042972 Total [candidate] (8.671 s) : 0, 8671407 section iast Agent [baseline] (1.17 s) : 0, 1170036 Total [baseline] (9.261 s) : 0, 9261017 Agent [candidate] (1.179 s) : 0, 1178763 Total [candidate] (9.279 s) : 0, 9279091 section iast_HARDCODED_SECRET_DISABLED Agent [baseline] (1.173 s) : 0, 1172573 Total [baseline] (9.193 s) : 0, 9192628 Agent [candidate] (1.176 s) : 0, 1175656 Total [candidate] (9.215 s) : 0, 9214672 section iast_TELEMETRY_OFF Agent [baseline] (1.171 s) : 0, 1171474 Total [baseline] (9.246 s) : 0, 9246289 Agent [candidate] (1.172 s) : 0, 1172088 Total [candidate] (9.257 s) : 0, 9257232 
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.049 s -
Agent iast 1.17 s 121.218 ms (11.6%)
Agent iast_HARDCODED_SECRET_DISABLED 1.173 s 123.755 ms (11.8%)
Agent iast_TELEMETRY_OFF 1.171 s 122.655 ms (11.7%)
Total tracing 8.679 s -
Total iast 9.261 s 582.081 ms (6.7%)
Total iast_HARDCODED_SECRET_DISABLED 9.193 s 513.692 ms (5.9%)
Total iast_TELEMETRY_OFF 9.246 s 567.353 ms (6.5%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.043 s -
Agent iast 1.179 s 135.791 ms (13.0%)
Agent iast_HARDCODED_SECRET_DISABLED 1.176 s 132.684 ms (12.7%)
Agent iast_TELEMETRY_OFF 1.172 s 129.115 ms (12.4%)
Total tracing 8.671 s -
Total iast 9.279 s 607.684 ms (7.0%)
Total iast_HARDCODED_SECRET_DISABLED 9.215 s 543.265 ms (6.3%)
Total iast_TELEMETRY_OFF 9.257 s 585.825 ms (6.8%)
gantt title insecure-bank - break down per module: candidate=1.48.0-SNAPSHOT~521e2e6d26, baseline=1.48.0-SNAPSHOT~b046b86617 dateFormat X axisFormat %s section tracing BytebuddyAgent [baseline] (723.314 ms) : 0, 723314 BytebuddyAgent [candidate] (718.151 ms) : 0, 718151 GlobalTracer [baseline] (240.408 ms) : 0, 240408 GlobalTracer [candidate] (240.048 ms) : 0, 240048 AppSec [baseline] (54.712 ms) : 0, 54712 AppSec [candidate] (54.578 ms) : 0, 54578 Remote Config [baseline] (679.594 µs) : 0, 680 Remote Config [candidate] (679.577 µs) : 0, 680 Telemetry [baseline] (14.327 ms) : 0, 14327 Telemetry [candidate] (14.348 ms) : 0, 14348 section iast BytebuddyAgent [baseline] (837.588 ms) : 0, 837588 BytebuddyAgent [candidate] (843.908 ms) : 0, 843908 GlobalTracer [baseline] (229.699 ms) : 0, 229699 GlobalTracer [candidate] (231.057 ms) : 0, 231057 AppSec [baseline] (55.784 ms) : 0, 55784 AppSec [candidate] (55.386 ms) : 0, 55386 Remote Config [baseline] (595.951 µs) : 0, 596 Remote Config [candidate] (603.783 µs) : 0, 604 Telemetry [baseline] (8.619 ms) : 0, 8619 Telemetry [candidate] (8.705 ms) : 0, 8705 IAST [baseline] (22.545 ms) : 0, 22545 IAST [candidate] (23.685 ms) : 0, 23685 section iast_HARDCODED_SECRET_DISABLED BytebuddyAgent [baseline] (838.288 ms) : 0, 838288 BytebuddyAgent [candidate] (840.953 ms) : 0, 840953 GlobalTracer [baseline] (230.354 ms) : 0, 230354 GlobalTracer [candidate] (230.905 ms) : 0, 230905 AppSec [baseline] (56.171 ms) : 0, 56171 AppSec [candidate] (56.187 ms) : 0, 56187 Remote Config [baseline] (611.237 µs) : 0, 611 Remote Config [candidate] (600.839 µs) : 0, 601 Telemetry [baseline] (8.687 ms) : 0, 8687 Telemetry [candidate] (8.697 ms) : 0, 8697 IAST [baseline] (23.152 ms) : 0, 23152 IAST [candidate] (22.882 ms) : 0, 22882 section iast_TELEMETRY_OFF BytebuddyAgent [baseline] (838.732 ms) : 0, 838732 BytebuddyAgent [candidate] (837.329 ms) : 0, 837329 GlobalTracer [baseline] (229.631 ms) : 0, 229631 GlobalTracer [candidate] (231.126 ms) : 0, 231126 AppSec [baseline] (55.581 ms) : 0, 55581 AppSec [candidate] (56.508 ms) : 0, 56508 Remote Config [baseline] (605.228 µs) : 0, 605 Remote Config [candidate] (599.695 µs) : 0, 600 Telemetry [baseline] (8.595 ms) : 0, 8595 Telemetry [candidate] (8.692 ms) : 0, 8692 IAST [baseline] (22.963 ms) : 0, 22963 IAST [candidate] (22.598 ms) : 0, 22598 
Loading
Startup time reports for petclinic
gantt title petclinic - global startup overhead: candidate=1.48.0-SNAPSHOT~521e2e6d26, baseline=1.48.0-SNAPSHOT~b046b86617 dateFormat X axisFormat %s section tracing Agent [baseline] (1.04 s) : 0, 1039895 Total [baseline] (10.491 s) : 0, 10490575 Agent [candidate] (1.042 s) : 0, 1042358 Total [candidate] (10.477 s) : 0, 10477082 section appsec Agent [baseline] (1.184 s) : 0, 1183656 Total [baseline] (10.737 s) : 0, 10737034 Agent [candidate] (1.184 s) : 0, 1184222 Total [candidate] (10.729 s) : 0, 10728776 section iast Agent [baseline] (1.171 s) : 0, 1171225 Total [baseline] (10.993 s) : 0, 10993085 Agent [candidate] (1.172 s) : 0, 1171593 Total [candidate] (11.007 s) : 0, 11006786 section profiling Agent [baseline] (1.262 s) : 0, 1262314 Total [baseline] (10.925 s) : 0, 10925294 Agent [candidate] (1.265 s) : 0, 1265351 Total [candidate] (10.811 s) : 0, 10811288 
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.04 s -
Agent appsec 1.184 s 143.761 ms (13.8%)
Agent iast 1.171 s 131.33 ms (12.6%)
Agent profiling 1.262 s 222.419 ms (21.4%)
Total tracing 10.491 s -
Total appsec 10.737 s 246.459 ms (2.3%)
Total iast 10.993 s 502.511 ms (4.8%)
Total profiling 10.925 s 434.719 ms (4.1%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.042 s -
Agent appsec 1.184 s 141.864 ms (13.6%)
Agent iast 1.172 s 129.234 ms (12.4%)
Agent profiling 1.265 s 222.993 ms (21.4%)
Total tracing 10.477 s -
Total appsec 10.729 s 251.694 ms (2.4%)
Total iast 11.007 s 529.705 ms (5.1%)
Total profiling 10.811 s 334.206 ms (3.2%)
gantt title petclinic - break down per module: candidate=1.48.0-SNAPSHOT~521e2e6d26, baseline=1.48.0-SNAPSHOT~b046b86617 dateFormat X axisFormat %s section tracing BytebuddyAgent [baseline] (718.903 ms) : 0, 718903 BytebuddyAgent [candidate] (720.379 ms) : 0, 720379 GlobalTracer [baseline] (239.709 ms) : 0, 239709 GlobalTracer [candidate] (239.935 ms) : 0, 239935 AppSec [baseline] (54.675 ms) : 0, 54675 AppSec [candidate] (54.75 ms) : 0, 54750 Remote Config [baseline] (678.865 µs) : 0, 679 Remote Config [candidate] (689.536 µs) : 0, 690 Telemetry [baseline] (10.716 ms) : 0, 10716 Telemetry [candidate] (11.378 ms) : 0, 11378 section appsec BytebuddyAgent [baseline] (735.136 ms) : 0, 735136 BytebuddyAgent [candidate] (736.757 ms) : 0, 736757 GlobalTracer [baseline] (236.681 ms) : 0, 236681 GlobalTracer [candidate] (236.534 ms) : 0, 236534 AppSec [baseline] (176.114 ms) : 0, 176114 AppSec [candidate] (176.022 ms) : 0, 176022 Remote Config [baseline] (665.287 µs) : 0, 665 Remote Config [candidate] (660.646 µs) : 0, 661 Telemetry [baseline] (8.994 ms) : 0, 8994 Telemetry [candidate] (8.244 ms) : 0, 8244 IAST [baseline] (21.637 ms) : 0, 21637 IAST [candidate] (21.545 ms) : 0, 21545 section iast BytebuddyAgent [baseline] (837.789 ms) : 0, 837789 BytebuddyAgent [candidate] (837.725 ms) : 0, 837725 GlobalTracer [baseline] (229.671 ms) : 0, 229671 GlobalTracer [candidate] (230.678 ms) : 0, 230678 AppSec [baseline] (56.438 ms) : 0, 56438 AppSec [candidate] (55.933 ms) : 0, 55933 Remote Config [baseline] (601.041 µs) : 0, 601 Remote Config [candidate] (596.188 µs) : 0, 596 Telemetry [baseline] (8.703 ms) : 0, 8703 Telemetry [candidate] (8.581 ms) : 0, 8581 IAST [baseline] (22.735 ms) : 0, 22735 IAST [candidate] (22.809 ms) : 0, 22809 section profiling BytebuddyAgent [baseline] (709.596 ms) : 0, 709596 BytebuddyAgent [candidate] (714.382 ms) : 0, 714382 GlobalTracer [baseline] (350.29 ms) : 0, 350290 GlobalTracer [candidate] (351.523 ms) : 0, 351523 AppSec [baseline] (54.638 ms) : 0, 54638 AppSec [candidate] (53.123 ms) : 0, 53123 Remote Config [baseline] (690.408 µs) : 0, 690 Remote Config [candidate] (662.148 µs) : 0, 662 Telemetry [baseline] (9.133 ms) : 0, 9133 Telemetry [candidate] (8.995 ms) : 0, 8995 ProfilingAgent [baseline] (97.102 ms) : 0, 97102 ProfilingAgent [candidate] (95.567 ms) : 0, 95567 Profiling [baseline] (97.126 ms) : 0, 97126 Profiling [candidate] (95.591 ms) : 0, 95591 
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-03-18T10:37:26 2025-03-18T10:45:09
git_branch master bbujon/json-component
git_commit_date 1742285131 1742293423
git_commit_sha b046b86 521e2e6
release_version 1.48.0-SNAPSHOT~b046b86617 1.48.0-SNAPSHOT~521e2e6d26
start_time 2025-03-18T10:37:12 2025-03-18T10:44:55
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1742295105 1742295105
ci_job_id 852353035 852353035
ci_pipeline_id 59147124 59147124
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-ba8qknxw-project-304-concurrent-1-c4vhedib 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-ba8qknxw-project-304-concurrent-1-c4vhedib 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
variant iast iast

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 13 metrics, 17 unstable metrics.

Request duration reports for insecure-bank
gantt title insecure-bank - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~521e2e6d26, baseline=1.48.0-SNAPSHOT~b046b86617 dateFormat X axisFormat %s section baseline no_agent (376.861 µs) : 357, 397 . : milestone, 377, iast (513.062 µs) : 491, 535 . : milestone, 513, iast_FULL (731.788 µs) : 710, 754 . : milestone, 732, iast_GLOBAL (560.167 µs) : 538, 583 . : milestone, 560, iast_HARDCODED_SECRET_DISABLED (510.731 µs) : 489, 532 . : milestone, 511, iast_INACTIVE (455.827 µs) : 435, 477 . : milestone, 456, iast_TELEMETRY_OFF (505.305 µs) : 483, 527 . : milestone, 505, tracing (456.498 µs) : 435, 478 . : milestone, 456, section candidate no_agent (388.316 µs) : 365, 411 . : milestone, 388, iast (511.474 µs) : 490, 533 . : milestone, 511, iast_FULL (729.954 µs) : 708, 752 . : milestone, 730, iast_GLOBAL (553.115 µs) : 531, 575 . : milestone, 553, iast_HARDCODED_SECRET_DISABLED (508.57 µs) : 487, 530 . : milestone, 509, iast_INACTIVE (464.547 µs) : 443, 486 . : milestone, 465, iast_TELEMETRY_OFF (497.095 µs) : 475, 520 . : milestone, 497, tracing (456.954 µs) : 436, 478 . : milestone, 457, 
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 376.861 µs [357.058 µs, 396.665 µs] -
iast 513.062 µs [490.876 µs, 535.248 µs] 136.201 µs (36.1%)
iast_FULL 731.788 µs [709.826 µs, 753.751 µs] 354.927 µs (94.2%)
iast_GLOBAL 560.167 µs [537.618 µs, 582.716 µs] 183.305 µs (48.6%)
iast_HARDCODED_SECRET_DISABLED 510.731 µs [489.106 µs, 532.356 µs] 133.87 µs (35.5%)
iast_INACTIVE 455.827 µs [434.597 µs, 477.058 µs] 78.966 µs (21.0%)
iast_TELEMETRY_OFF 505.305 µs [483.27 µs, 527.34 µs] 128.444 µs (34.1%)
tracing 456.498 µs [435.189 µs, 477.806 µs] 79.636 µs (21.1%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 388.316 µs [365.395 µs, 411.238 µs] -
iast 511.474 µs [489.801 µs, 533.147 µs] 123.157 µs (31.7%)
iast_FULL 729.954 µs [707.678 µs, 752.23 µs] 341.637 µs (88.0%)
iast_GLOBAL 553.115 µs [531.446 µs, 574.783 µs] 164.798 µs (42.4%)
iast_HARDCODED_SECRET_DISABLED 508.57 µs [486.972 µs, 530.168 µs] 120.253 µs (31.0%)
iast_INACTIVE 464.547 µs [443.162 µs, 485.932 µs] 76.231 µs (19.6%)
iast_TELEMETRY_OFF 497.095 µs [474.553 µs, 519.637 µs] 108.779 µs (28.0%)
tracing 456.954 µs [436.026 µs, 477.882 µs] 68.637 µs (17.7%)
Request duration reports for petclinic
gantt title petclinic - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~521e2e6d26, baseline=1.48.0-SNAPSHOT~b046b86617 dateFormat X axisFormat %s section baseline no_agent (1.366 ms) : 1345, 1386 . : milestone, 1366, appsec (1.72 ms) : 1697, 1743 . : milestone, 1720, appsec_no_iast (1.729 ms) : 1704, 1753 . : milestone, 1729, code_origins (1.676 ms) : 1649, 1703 . : milestone, 1676, iast (1.514 ms) : 1489, 1538 . : milestone, 1514, profiling (1.516 ms) : 1492, 1541 . : milestone, 1516, tracing (1.49 ms) : 1466, 1514 . : milestone, 1490, section candidate no_agent (1.35 ms) : 1330, 1369 . : milestone, 1350, appsec (1.744 ms) : 1721, 1768 . : milestone, 1744, appsec_no_iast (1.74 ms) : 1716, 1764 . : milestone, 1740, code_origins (1.689 ms) : 1663, 1714 . : milestone, 1689, iast (1.511 ms) : 1487, 1534 . : milestone, 1511, profiling (1.509 ms) : 1487, 1532 . : milestone, 1509, tracing (1.497 ms) : 1473, 1521 . : milestone, 1497, 
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.366 ms [1.345 ms, 1.386 ms] -
appsec 1.72 ms [1.697 ms, 1.743 ms] 354.457 µs (26.0%)
appsec_no_iast 1.729 ms [1.704 ms, 1.753 ms] 363.125 µs (26.6%)
code_origins 1.676 ms [1.649 ms, 1.703 ms] 310.365 µs (22.7%)
iast 1.514 ms [1.489 ms, 1.538 ms] 148.044 µs (10.8%)
profiling 1.516 ms [1.492 ms, 1.541 ms] 150.903 µs (11.1%)
tracing 1.49 ms [1.466 ms, 1.514 ms] 124.371 µs (9.1%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.35 ms [1.33 ms, 1.369 ms] -
appsec 1.744 ms [1.721 ms, 1.768 ms] 394.526 µs (29.2%)
appsec_no_iast 1.74 ms [1.716 ms, 1.764 ms] 390.486 µs (28.9%)
code_origins 1.689 ms [1.663 ms, 1.714 ms] 338.697 µs (25.1%)
iast 1.511 ms [1.487 ms, 1.534 ms] 160.784 µs (11.9%)
profiling 1.509 ms [1.487 ms, 1.532 ms] 159.561 µs (11.8%)
tracing 1.497 ms [1.473 ms, 1.521 ms] 147.283 µs (10.9%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/json-component
git_commit_date 1742285131 1742293423
git_commit_sha b046b86 521e2e6
release_version 1.48.0-SNAPSHOT~b046b86617 1.48.0-SNAPSHOT~521e2e6d26
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1742295538 1742295538
ci_job_id 852353037 852353037
ci_pipeline_id 59147124 59147124
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-jrmrzmky-project-304-concurrent-1-q7amnzk7 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-jrmrzmky-project-304-concurrent-1-q7amnzk7 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 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 biojava
gantt title biojava - execution time [CI 0.99] : candidate=1.48.0-SNAPSHOT~521e2e6d26, baseline=1.48.0-SNAPSHOT~b046b86617 dateFormat X axisFormat %s section baseline no_agent (14.924 s) : 14924000, 14924000 . : milestone, 14924000, appsec (14.994 s) : 14994000, 14994000 . : milestone, 14994000, iast (18.873 s) : 18873000, 18873000 . : milestone, 18873000, iast_GLOBAL (17.875 s) : 17875000, 17875000 . : milestone, 17875000, profiling (15.629 s) : 15629000, 15629000 . : milestone, 15629000, tracing (15.303 s) : 15303000, 15303000 . : milestone, 15303000, section candidate no_agent (15.405 s) : 15405000, 15405000 . : milestone, 15405000, appsec (15.093 s) : 15093000, 15093000 . : milestone, 15093000, iast (18.603 s) : 18603000, 18603000 . : milestone, 18603000, iast_GLOBAL (18.192 s) : 18192000, 18192000 . : milestone, 18192000, profiling (14.862 s) : 14862000, 14862000 . : milestone, 14862000, tracing (14.7 s) : 14700000, 14700000 . : milestone, 14700000, 
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.924 s [14.924 s, 14.924 s] -
appsec 14.994 s [14.994 s, 14.994 s] 70.0 ms (0.5%)
iast 18.873 s [18.873 s, 18.873 s] 3.949 s (26.5%)
iast_GLOBAL 17.875 s [17.875 s, 17.875 s] 2.951 s (19.8%)
profiling 15.629 s [15.629 s, 15.629 s] 705.0 ms (4.7%)
tracing 15.303 s [15.303 s, 15.303 s] 379.0 ms (2.5%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.405 s [15.405 s, 15.405 s] -
appsec 15.093 s [15.093 s, 15.093 s] -312.0 ms (-2.0%)
iast 18.603 s [18.603 s, 18.603 s] 3.198 s (20.8%)
iast_GLOBAL 18.192 s [18.192 s, 18.192 s] 2.787 s (18.1%)
profiling 14.862 s [14.862 s, 14.862 s] -543.0 ms (-3.5%)
tracing 14.7 s [14.7 s, 14.7 s] -705.0 ms (-4.6%)
Execution time for tomcat
gantt title tomcat - execution time [CI 0.99] : candidate=1.48.0-SNAPSHOT~521e2e6d26, baseline=1.48.0-SNAPSHOT~b046b86617 dateFormat X axisFormat %s section baseline no_agent (1.474 ms) : 1463, 1486 . : milestone, 1474, appsec (2.35 ms) : 2306, 2394 . : milestone, 2350, iast (2.121 ms) : 2066, 2177 . : milestone, 2121, iast_GLOBAL (2.168 ms) : 2112, 2224 . : milestone, 2168, profiling (1.983 ms) : 1938, 2027 . : milestone, 1983, tracing (1.958 ms) : 1915, 2001 . : milestone, 1958, section candidate no_agent (1.474 ms) : 1462, 1485 . : milestone, 1474, appsec (2.333 ms) : 2289, 2377 . : milestone, 2333, iast (2.12 ms) : 2064, 2176 . : milestone, 2120, iast_GLOBAL (2.159 ms) : 2103, 2215 . : milestone, 2159, profiling (1.967 ms) : 1923, 2011 . : milestone, 1967, tracing (1.944 ms) : 1902, 1987 . : milestone, 1944, 
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.474 ms [1.463 ms, 1.486 ms] -
appsec 2.35 ms [2.306 ms, 2.394 ms] 875.217 µs (59.4%)
iast 2.121 ms [2.066 ms, 2.177 ms] 646.811 µs (43.9%)
iast_GLOBAL 2.168 ms [2.112 ms, 2.224 ms] 693.192 µs (47.0%)
profiling 1.983 ms [1.938 ms, 2.027 ms] 508.207 µs (34.5%)
tracing 1.958 ms [1.915 ms, 2.001 ms] 483.634 µs (32.8%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.474 ms [1.462 ms, 1.485 ms] -
appsec 2.333 ms [2.289 ms, 2.377 ms] 859.142 µs (58.3%)
iast 2.12 ms [2.064 ms, 2.176 ms] 645.897 µs (43.8%)
iast_GLOBAL 2.159 ms [2.103 ms, 2.215 ms] 684.665 µs (46.5%)
profiling 1.967 ms [1.923 ms, 2.011 ms] 493.483 µs (33.5%)
tracing 1.944 ms [1.902 ms, 1.987 ms] 470.416 µs (31.9%)
@PerfectSlayer PerfectSlayer enabled auto-merge (squash) March 18, 2025 14:48
* @throws IOException If the JSON is invalid or a reader error occurs.
*/
@SuppressWarnings("unchecked")
public static Map<String, Object> fromJsonToMap(String json) throws IOException {
Copy link
Member

Choose a reason for hiding this comment

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

Do we have actual consumer candidates for this?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That's the mirror function of JsonMapper.toJson(Map).
About actual consumers, I think there are some instrumentations that parse JSON object already.
I will need to review and migrate then in another PR.

@PerfectSlayer PerfectSlayer requested a review from smola April 23, 2025 13:20
@amarziali amarziali self-requested a review May 14, 2025 07:31
@PerfectSlayer PerfectSlayer merged commit 20ce33b into master May 14, 2025
267 of 270 checks passed
@PerfectSlayer PerfectSlayer deleted the bbujon/json-component branch May 14, 2025 07:41
@github-actions github-actions bot added this to the 1.50.0 milestone May 14, 2025
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Jun 20, 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.49.0` -> `1.50.0` | --- ### Release Notes <details> <summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary> ### [`v1.50.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.50.0): 1.50.0 ### Deprecation Notice > \[!NOTE] > `DD_RUNTIME_ID_ENABLED` has been deprecated and will be removed in future releases. Please use `DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED` instead. ### Components #### Application Security Management (WAF) - 🐛 Add String length truncation limit to ObjectIntrospector and update truncation metrics ([#&#8203;8825](DataDog/dd-trace-java#8825) - [@&#8203;jandro996](https://github.com/jandro996)) - 🐛 Adapt standalone ASM to support API Security ([#&#8203;8804](DataDog/dd-trace-java#8804) - [@&#8203;jandro996](https://github.com/jandro996)) - ✨ Add appsec.waf.input\_truncated metric ([#&#8203;8791](DataDog/dd-trace-java#8791) - [@&#8203;jandro996](https://github.com/jandro996)) - ✨ Extended appsec request body collection ([#&#8203;8748](DataDog/dd-trace-java#8748) - [@&#8203;jandro996](https://github.com/jandro996)) - ✨ Extended appsec request/response headers collection ([#&#8203;8724](DataDog/dd-trace-java#8724) - [@&#8203;jandro996](https://github.com/jandro996)) #### Build & Tooling - ✨ Add artifacts to public s3 bucket ([#&#8203;8947](DataDog/dd-trace-java#8947) - [@&#8203;randomanderson](https://github.com/randomanderson)) #### Continuous Integration Visibility - ✨ Improve PR information building ([#&#8203;8908](DataDog/dd-trace-java#8908) - [@&#8203;daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Truncate span stack traces when Test Optimization is enabled ([#&#8203;8903](DataDog/dd-trace-java#8903) - [@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Ensure auto-detected service name is the same for every process in the same build ([#&#8203;8902](DataDog/dd-trace-java#8902) - [@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Use tag as fallback in api requests if no branch is available ([#&#8203;8876](DataDog/dd-trace-java#8876) - [@&#8203;daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Add support for JUnit 5.13-RC1 ([#&#8203;8865](DataDog/dd-trace-java#8865), [#&#8203;8871](DataDog/dd-trace-java#8871) - [@&#8203;daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Implement attempt to fix v3 and v4 and bump capability version ([#&#8203;8824](DataDog/dd-trace-java#8824) - [@&#8203;daniel-mohedano](https://github.com/daniel-mohedano)) - 🧹 Align retry logic for all test framework instrumentations ([#&#8203;8803](DataDog/dd-trace-java#8803) - [@&#8203;daniel-mohedano](https://github.com/daniel-mohedano)) - 🐛 Always build ci workspace without trailing separator ([#&#8203;8788](DataDog/dd-trace-java#8788) - [@&#8203;daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Add commit discrepancies telemetry when building repository git information ([#&#8203;8763](DataDog/dd-trace-java#8763) - [@&#8203;daniel-mohedano](https://github.com/daniel-mohedano)) #### Data Streams Monitoring - 💡 Surface process tags in dsm payloads and use them for base hash calculation ([#&#8203;8836](DataDog/dd-trace-java#8836) - [@&#8203;amarziali](https://github.com/amarziali)) #### Dynamic Instrumentation - ✨ Optimized allocations for collection filter functions ([#&#8203;8896](DataDog/dd-trace-java#8896) - [@&#8203;jpbempel](https://github.com/jpbempel)) - 🐛 Fix SymDB upload size check ([#&#8203;8887](DataDog/dd-trace-java#8887) - [@&#8203;jpbempel](https://github.com/jpbempel)) - 🐛 Add support for Set in filter function ([#&#8203;8873](DataDog/dd-trace-java#8873) - [@&#8203;jpbempel](https://github.com/jpbempel)) - 🐛 Add support for isDefined in log template ([#&#8203;8859](DataDog/dd-trace-java#8859) - [@&#8203;jpbempel](https://github.com/jpbempel)) - 🐛 Fix Max captured frames for Exception Replay ([#&#8203;8856](DataDog/dd-trace-java#8856) - [@&#8203;jpbempel](https://github.com/jpbempel)) - 🐛 Remove static inherited fields collection ([#&#8203;8832](DataDog/dd-trace-java#8832) - [@&#8203;jpbempel](https://github.com/jpbempel)) - 💡 Add process tags to dynamic instrumentation intake payload ([#&#8203;8779](DataDog/dd-trace-java#8779) - [@&#8203;amarziali](https://github.com/amarziali)) #### GraalVM native-image - ✨ Add support for GraalVM Native GC metrics ([#&#8203;8913](DataDog/dd-trace-java#8913) - [@&#8203;ygree](https://github.com/ygree)) - ✨ Add JMXFetch support for GraalVM Native ([#&#8203;8569](DataDog/dd-trace-java#8569) - [@&#8203;ygree](https://github.com/ygree)) #### JMX fetch - ✨ Add support for GraalVM Native GC metrics ([#&#8203;8913](DataDog/dd-trace-java#8913) - [@&#8203;ygree](https://github.com/ygree)) #### Library Injection - ✨ Deny oracle db jvm based tools ([#&#8203;8909](DataDog/dd-trace-java#8909) - [@&#8203;bric3](https://github.com/bric3)) #### OpenTracing - 🐛 Fix OT packaging for exception replay ([#&#8203;8912](DataDog/dd-trace-java#8912) - [@&#8203;jpbempel](https://github.com/jpbempel)) #### Profiling - ✨ Bump ddprof to 1.27.0 ([#&#8203;8893](DataDog/dd-trace-java#8893) - [@&#8203;jbachorik](https://github.com/jbachorik)) - Properly handle the adaptive sampling interval overflow by [@&#8203;jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#213 - Fix [#&#8203;200](DataDog/dd-trace-java#200) Crash related to aligned\_alloc and free in context by [@&#8203;yanglong1010](https://github.com/yanglong1010) in DataDog/java-profiler#208 - Explicitly initialize empty context page by [@&#8203;jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#210 - Re-connect crash recursion protection with VM stackwalker by [@&#8203;jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#214 - ✨ Enable ZSTD compression for profiling ([#&#8203;8862](DataDog/dd-trace-java#8862) - [@&#8203;MattAlp](https://github.com/MattAlp)) - ✨ Extend JPS re-implementation to J9 family ([#&#8203;8813](DataDog/dd-trace-java#8813) - [@&#8203;MattAlp](https://github.com/MattAlp)) - 💡 Collect process tags for profiling upload requests ([#&#8203;8780](DataDog/dd-trace-java#8780) - [@&#8203;amarziali](https://github.com/amarziali)) #### Telemetry - 💡 Surface process tags on telemetry payloads ([#&#8203;8837](DataDog/dd-trace-java#8837) - [@&#8203;amarziali](https://github.com/amarziali)) #### Trace context propagation - ✨ Migrating all HttpClient Instrumentations to Inject Full Context ([#&#8203;8826](DataDog/dd-trace-java#8826) - [@&#8203;mhlidd](https://github.com/mhlidd)) - ✨ Migrating all HttpServer Instrumentations to Extract full Context ([#&#8203;8820](DataDog/dd-trace-java#8820) - [@&#8203;mhlidd](https://github.com/mhlidd)) - ✨ Add context API support OTel propagators ([#&#8203;8770](DataDog/dd-trace-java#8770) - [@&#8203;PerfectSlayer](https://github.com/PerfectSlayer)) #### Tracer core - ✨⚡ Skip JAXB generated classes classloader ([#&#8203;9003](DataDog/dd-trace-java#9003) - [@&#8203;bric3](https://github.com/bric3)) - ✨ Add DD\_RUNTIME\_METRICS\_RUNTIME\_ID\_ENABLED alias for runtime id generation ([#&#8203;8981](DataDog/dd-trace-java#8981) - [@&#8203;amarziali](https://github.com/amarziali)) - 🐛 Use resolved address for peer.hostname when available without hitting the cache ([#&#8203;8915](DataDog/dd-trace-java#8915) - [@&#8203;amarziali](https://github.com/amarziali)) - 💡 Surface server name process tag for tomcat ([#&#8203;8894](DataDog/dd-trace-java#8894) - [@&#8203;amarziali](https://github.com/amarziali)) - 💡 Surface websphere cell and server name on process tags ([#&#8203;8880](DataDog/dd-trace-java#8880) - [@&#8203;amarziali](https://github.com/amarziali)) - ✨ Added special lightweight pre-main class that skips installation on incompatible JVMs. ([#&#8203;8855](DataDog/dd-trace-java#8855) - [@&#8203;AlexeyKuznetsov-DD](https://github.com/AlexeyKuznetsov-DD)) - 💡 Add entrypoint type to process tags ([#&#8203;8839](DataDog/dd-trace-java#8839) - [@&#8203;amarziali](https://github.com/amarziali)) - ✨ Extend JPS re-implementation to J9 family ([#&#8203;8813](DataDog/dd-trace-java#8813) - [@&#8203;MattAlp](https://github.com/MattAlp)) - ✨ Notify listeners when the scope top changes after switching scope stacks ([#&#8203;8797](DataDog/dd-trace-java#8797) - [@&#8203;mcculls](https://github.com/mcculls)) - ✨ Read hsperfdata for Java PIDs if jvmstat is unavailable ([#&#8203;8792](DataDog/dd-trace-java#8792) - [@&#8203;MattAlp](https://github.com/MattAlp)) - 🐛 Turn JDK socket support on by default ([#&#8203;8752](DataDog/dd-trace-java#8752) - [@&#8203;sarahchen6](https://github.com/sarahchen6)) - ✨ Simplify context propagation ([#&#8203;8719](DataDog/dd-trace-java#8719) - [@&#8203;PerfectSlayer](https://github.com/PerfectSlayer)) - ✨ Add JSON parsing support ([#&#8203;8579](DataDog/dd-trace-java#8579) - [@&#8203;PerfectSlayer](https://github.com/PerfectSlayer)) #### Tracer internal logging - ✨ Fix printing format of span identifiers ([#&#8203;8897](DataDog/dd-trace-java#8897) - [@&#8203;vandonr](https://github.com/vandonr)) #### Tracer public API - 💡 Track the source of installation ([#&#8203;8956](DataDog/dd-trace-java#8956) - [@&#8203;mabdinur](https://github.com/mabdinur)) - ✨ Enforce size limit on application\_monitoring.yaml files ([#&#8203;8789](DataDog/dd-trace-java#8789) - [@&#8203;mtoffl01](https://github.com/mtoffl01)) - ✨ Enabling baggage cache to support limits and non-ascii characters ([#&#8203;8713](DataDog/dd-trace-java#8713) - [@&#8203;mhlidd](https://github.com/mhlidd)) ### Instrumentations #### AWS Lambda instrumentation - ✨ Pass Lambda Request ID to Extension ([#&#8203;8814](DataDog/dd-trace-java#8814) - [@&#8203;nhulston](https://github.com/nhulston)) #### Core Java language instrumentation - ✨ Ensure ClassloadingInstrumentation is always applied even with `DD_TRACE_ENABLED=false` ([#&#8203;8863](DataDog/dd-trace-java#8863) - [@&#8203;mcculls](https://github.com/mcculls)) #### Eclipse Vert.x instrumentation - 🐛 Do not override route with / in vertx instrumentation ([#&#8203;8881](DataDog/dd-trace-java#8881) - [@&#8203;vandonr](https://github.com/vandonr)) #### IBM Liberty - 🐛 Fix error mark on http status for IBM liberty ([#&#8203;8822](DataDog/dd-trace-java#8822) - [@&#8203;amarziali](https://github.com/amarziali)) #### JDBC instrumentation - 🐛 Do not prepend DBM <> APM trace comment in SQLCommenter if there is a pg plan hint ([#&#8203;8864](DataDog/dd-trace-java#8864) - [@&#8203;edengorevoy](https://github.com/edengorevoy)) #### JMS instrumentation - ✨ Add jms as an extra integration name where there is JMS involved ([#&#8203;8933](DataDog/dd-trace-java#8933) - [@&#8203;vandonr](https://github.com/vandonr)) #### Kotlin instrumentation - ✨ Enable kotlin\_coroutine integration by default ([#&#8203;8848](DataDog/dd-trace-java#8848) - [@&#8203;mcculls](https://github.com/mcculls)) - 🧹 Rework Kotlin coroutines instrumentation around coroutine context ([#&#8203;8774](DataDog/dd-trace-java#8774) - [@&#8203;mcculls](https://github.com/mcculls)) #### OpenTelemetry instrumentation - 🐛 Support WithSpan inheritContext attribute ([#&#8203;8858](DataDog/dd-trace-java#8858) - [@&#8203;amarziali](https://github.com/amarziali)) - ✨ Add context API support OTel propagators ([#&#8203;8770](DataDog/dd-trace-java#8770) - [@&#8203;PerfectSlayer](https://github.com/PerfectSlayer)) #### Play Framework instrumentation - 🐛 Fix the Play Framework's span resource name priority so that the client JAX-RS 404 cannot override it ([#&#8203;8591](DataDog/dd-trace-java#8591) - [@&#8203;ygree](https://github.com/ygree)) #### Quarkus Instrumentation - 🐛 Ignore quarkus jaxrs stubs and cdi wrapper proxies ([#&#8203;8891](DataDog/dd-trace-java#8891) - [@&#8203;amarziali](https://github.com/amarziali)) #### ServiceTalk - ✨ Improve ServiceTalk Captured Context API Instrumentation for v0.42.56+ ([#&#8203;8821](DataDog/dd-trace-java#8821) - [@&#8203;ygree](https://github.com/ygree)) #### Spring instrumentation - ✨ Supporting Baggage for Instrumentations used in Weblog Tests ([#&#8203;8773](DataDog/dd-trace-java#8773) - [@&#8203;mhlidd](https://github.com/mhlidd)) #### WebSocket Instrumentation - 💡 Trace websocket for spring webflux reactive handlers ([#&#8203;8831](DataDog/dd-trace-java#8831) - [@&#8203;amarziali](https://github.com/amarziali)) - 💡:test\_tube: WebSocket support for Netty ([#&#8203;8632](DataDog/dd-trace-java#8632) - [@&#8203;ValentinZakharov](https://github.com/ValentinZakharov)) #### Zio Instrumentation - 🧹 Cleanup Zio fiber instrumentation to avoid repeated activation of continuation ([#&#8203;8798](DataDog/dd-trace-java#8798) - [@&#8203;mcculls](https://github.com/mcculls)) </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**: Enabled. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- 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: 9207366cdb6a1bd098082305d354a0a3c4622d7a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: core Tracer core type: enhancement Enhancements and improvements

2 participants