dd-trace-java
dd-trace-java copied to clipboard
Changes required for portability to Android
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]
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%) |