dd-trace-java icon indicating copy to clipboard operation
dd-trace-java copied to clipboard

Changes required for portability to Android

Open mariusc83 opened this issue 1 year ago • 1 comments
trafficstars

What Does This Do

This POC draft was create to pinpoint the changes will have to add in the current agent code to make re - use it in the Datadog Android SDK to provide OpenTelemetry support.

Motivation

Additional Notes

Jira ticket: [PROJ-IDENT]

mariusc83 avatar Jan 12 '24 15:01 mariusc83

Benchmarks

Startup

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2024-01-12T15:56:56 2024-01-12T16:10:33
git_branch master mconstantin/android-otel-support-poc
git_commit_date 1705072591 1705073615
git_commit_sha f471f93d40 067dac4615
release_version 1.28.0-SNAPSHOT~f471f93d40 1.28.0-SNAPSHOT~067dac4615
start_time 2024-01-12T15:56:43 2024-01-12T16:10:23
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1705076047 1705076047
ci_job_id 407269296 407269296
ci_pipeline_id 26404844 26404844
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 9 performance improvements and 0 performance regressions! Performance is the same for 1 metrics, 12 unstable metrics.

scenario Δ mean http_req_duration Δ mean throughput candidate mean http_req_duration candidate mean throughput baseline mean http_req_duration baseline mean throughput
scenario:load:insecure-bank:iast better
[-129.013µs; -85.237µs] or [-27.051%; -17.872%]
unstable
[-509.954op/s; +5185.278op/s] or [-5.949%; +60.495%]
369.801µs 10909.091op/s 476.926µs 8571.429op/s
scenario:load:insecure-bank:iast_FULL better
[-202.739µs; -160.071µs] or [-37.062%; -29.262%]
unstable
[-620.642op/s; +5620.642op/s] or [-8.275%; +74.942%]
365.621µs 10000.000op/s 547.026µs 7500.000op/s
scenario:load:insecure-bank:iast_INACTIVE better
[-107.907µs; -62.566µs] or [-23.683%; -13.732%]
unstable
[-822.116op/s; +5497.441op/s] or [-9.591%; +64.137%]
370.396µs 10909.091op/s 455.632µs 8571.429op/s
scenario:load:insecure-bank:iast_TELEMETRY_OFF better
[-122.515µs; -78.367µs] or [-25.307%; -16.188%]
unstable
[+90.159op/s; +5728.023op/s] or [+1.127%; +71.600%]
383.673µs 10909.091op/s 484.114µs 8000.000op/s
scenario:load:insecure-bank:tracing better
[-108.274µs; -66.138µs] or [-24.321%; -14.856%]
unstable
[-2707.755op/s; +4246.217op/s] or [-29.334%; +46.001%]
357.989µs 10000.000op/s 445.195µs 9230.769op/s
scenario:load:petclinic:appsec better
[-429.165µs; -380.840µs] or [-24.076%; -21.365%]
unstable
[+334.127op/s; +1289.061op/s] or [+12.530%; +48.340%]
1.378ms 3478.261op/s 1.783ms 2666.667op/s
scenario:load:petclinic:iast better
[-178.222µs; -131.200µs] or [-11.685%; -8.602%]
unstable
[-147.690op/s; +950.366op/s] or [-4.800%; +30.887%]
1.370ms 3478.261op/s 1.525ms 3076.923op/s
scenario:load:petclinic:profiling better
[-170.375µs; -121.392µs] or [-11.174%; -7.961%]
unstable
[-353.725op/s; +866.545op/s] or [-11.496%; +28.163%]
1.379ms 3333.333op/s 1.525ms 3076.923op/s
scenario:load:petclinic:tracing better
[-192.308µs; -144.513µs] or [-12.527%; -9.413%]
unstable
[-350.016op/s; +862.837op/s] or [-11.376%; +28.042%]
1.367ms 3333.333op/s 1.535ms 3076.923op/s
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.28.0-SNAPSHOT~067dac4615, baseline=1.28.0-SNAPSHOT~f471f93d40
    dateFormat X
    axisFormat %s
section baseline
no_agent (372.061 µs) : 351, 393
.   : milestone, 372,
iast (476.926 µs) : 456, 497
.   : milestone, 477,
iast_FULL (547.026 µs) : 527, 567
.   : milestone, 547,
iast_INACTIVE (455.632 µs) : 434, 477
.   : milestone, 456,
iast_TELEMETRY_OFF (484.114 µs) : 463, 505
.   : milestone, 484,
tracing (445.195 µs) : 425, 466
.   : milestone, 445,
section candidate
no_agent (368.848 µs) : 349, 389
.   : milestone, 369,
iast (369.801 µs) : 350, 390
.   : milestone, 370,
iast_FULL (365.621 µs) : 346, 385
.   : milestone, 366,
iast_INACTIVE (370.396 µs) : 350, 391
.   : milestone, 370,
iast_TELEMETRY_OFF (383.673 µs) : 364, 404
.   : milestone, 384,
tracing (357.989 µs) : 339, 377
.   : milestone, 358,
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 372.061 µs [350.841 µs, 393.281 µs] -
iast 476.926 µs [456.371 µs, 497.481 µs] 104.865 µs (28.2%)
iast_FULL 547.026 µs [526.567 µs, 567.484 µs] 174.965 µs (47.0%)
iast_INACTIVE 455.632 µs [434.217 µs, 477.047 µs] 83.571 µs (22.5%)
iast_TELEMETRY_OFF 484.114 µs [463.058 µs, 505.17 µs] 112.053 µs (30.1%)
tracing 445.195 µs [424.705 µs, 465.684 µs] 73.134 µs (19.7%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 368.848 µs [348.65 µs, 389.047 µs] -
iast 369.801 µs [349.677 µs, 389.926 µs] 0.953 µs (0.3%)
iast_FULL 365.621 µs [346.449 µs, 384.793 µs] -3.227 µs (-0.9%)
iast_INACTIVE 370.396 µs [349.681 µs, 391.11 µs] 1.547 µs (0.4%)
iast_TELEMETRY_OFF 383.673 µs [363.717 µs, 403.629 µs] 14.825 µs (4.0%)
tracing 357.989 µs [339.366 µs, 376.612 µs] -10.86 µs (-2.9%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.28.0-SNAPSHOT~067dac4615, baseline=1.28.0-SNAPSHOT~f471f93d40
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.362 ms) : 1343, 1381
.   : milestone, 1362,
appsec (1.783 ms) : 1757, 1808
.   : milestone, 1783,
iast (1.525 ms) : 1501, 1549
.   : milestone, 1525,
profiling (1.525 ms) : 1499, 1550
.   : milestone, 1525,
tracing (1.535 ms) : 1511, 1560
.   : milestone, 1535,
section candidate
no_agent (1.374 ms) : 1355, 1393
.   : milestone, 1374,
appsec (1.378 ms) : 1358, 1397
.   : milestone, 1378,
iast (1.37 ms) : 1351, 1390
.   : milestone, 1370,
profiling (1.379 ms) : 1359, 1398
.   : milestone, 1379,
tracing (1.367 ms) : 1347, 1386
.   : milestone, 1367,
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.362 ms [1.343 ms, 1.381 ms] -
appsec 1.783 ms [1.757 ms, 1.808 ms] 420.571 µs (30.9%)
iast 1.525 ms [1.501 ms, 1.549 ms] 163.239 µs (12.0%)
profiling 1.525 ms [1.499 ms, 1.55 ms] 162.85 µs (12.0%)
tracing 1.535 ms [1.511 ms, 1.56 ms] 173.232 µs (12.7%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.374 ms [1.355 ms, 1.393 ms] -
appsec 1.378 ms [1.358 ms, 1.397 ms] 3.623 µs (0.3%)
iast 1.37 ms [1.351 ms, 1.39 ms] -3.418 µs (-0.2%)
profiling 1.379 ms [1.359 ms, 1.398 ms] 5.021 µs (0.4%)
tracing 1.367 ms [1.347 ms, 1.386 ms] -7.124 µs (-0.5%)

pr-commenter[bot] avatar Jan 12 '24 16:01 pr-commenter[bot]