-
Notifications
You must be signed in to change notification settings - Fork 312
Add downstream HTTP request/response analysis for OkHttp2 client #9572
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 downstream HTTP request/response analysis for OkHttp2 client #9572
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 3 performance regressions! Performance is the same for 55 metrics, 7 unstable metrics.
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.54.0-SNAPSHOT~2768645057, baseline=1.54.0-SNAPSHOT~4cf767062c
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.019 s) : 0, 1018910
Total [baseline] (8.669 s) : 0, 8668927
Agent [candidate] (1.015 s) : 0, 1015287
Total [candidate] (8.663 s) : 0, 8663401
section iast
Agent [baseline] (1.143 s) : 0, 1143447
Total [baseline] (9.245 s) : 0, 9245090
Agent [candidate] (1.146 s) : 0, 1145562
Total [candidate] (9.241 s) : 0, 9241452
gantt
title insecure-bank - break down per module: candidate=1.54.0-SNAPSHOT~2768645057, baseline=1.54.0-SNAPSHOT~4cf767062c
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.482 ms) : 0, 1482
crashtracking [candidate] (1.461 ms) : 0, 1461
BytebuddyAgent [baseline] (693.513 ms) : 0, 693513
BytebuddyAgent [candidate] (691.467 ms) : 0, 691467
GlobalTracer [baseline] (244.097 ms) : 0, 244097
GlobalTracer [candidate] (243.059 ms) : 0, 243059
AppSec [baseline] (31.536 ms) : 0, 31536
AppSec [candidate] (32.639 ms) : 0, 32639
Debugger [baseline] (6.353 ms) : 0, 6353
Debugger [candidate] (6.347 ms) : 0, 6347
Remote Config [baseline] (700.655 µs) : 0, 701
Remote Config [candidate] (676.223 µs) : 0, 676
Telemetry [baseline] (9.109 ms) : 0, 9109
Telemetry [candidate] (9.021 ms) : 0, 9021
Flare Poller [baseline] (10.892 ms) : 0, 10892
Flare Poller [candidate] (9.438 ms) : 0, 9438
section iast
crashtracking [baseline] (1.456 ms) : 0, 1456
crashtracking [candidate] (1.455 ms) : 0, 1455
BytebuddyAgent [baseline] (809.776 ms) : 0, 809776
BytebuddyAgent [candidate] (809.622 ms) : 0, 809622
GlobalTracer [baseline] (232.071 ms) : 0, 232071
GlobalTracer [candidate] (233.041 ms) : 0, 233041
AppSec [baseline] (33.452 ms) : 0, 33452
AppSec [candidate] (35.005 ms) : 0, 35005
Debugger [baseline] (6.045 ms) : 0, 6045
Debugger [candidate] (6.083 ms) : 0, 6083
Remote Config [baseline] (582.692 µs) : 0, 583
Remote Config [candidate] (579.003 µs) : 0, 579
Telemetry [baseline] (8.171 ms) : 0, 8171
Telemetry [candidate] (8.054 ms) : 0, 8054
Flare Poller [baseline] (4.278 ms) : 0, 4278
Flare Poller [candidate] (4.295 ms) : 0, 4295
IAST [baseline] (26.246 ms) : 0, 26246
IAST [candidate] (26.285 ms) : 0, 26285
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.54.0-SNAPSHOT~2768645057, baseline=1.54.0-SNAPSHOT~4cf767062c
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.02 s) : 0, 1020439
Total [baseline] (10.671 s) : 0, 10671494
Agent [candidate] (1.015 s) : 0, 1014519
Total [candidate] (10.64 s) : 0, 10640136
section appsec
Agent [baseline] (1.185 s) : 0, 1185095
Total [baseline] (11.017 s) : 0, 11017319
Agent [candidate] (1.191 s) : 0, 1190750
Total [candidate] (11.073 s) : 0, 11073211
section iast
Agent [baseline] (1.145 s) : 0, 1145133
Total [baseline] (10.981 s) : 0, 10980695
Agent [candidate] (1.144 s) : 0, 1144354
Total [candidate] (10.921 s) : 0, 10920947
section profiling
Agent [baseline] (1.152 s) : 0, 1151728
Total [baseline] (11.088 s) : 0, 11087939
Agent [candidate] (1.16 s) : 0, 1159644
Total [candidate] (11.067 s) : 0, 11066997
gantt
title petclinic - break down per module: candidate=1.54.0-SNAPSHOT~2768645057, baseline=1.54.0-SNAPSHOT~4cf767062c
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.462 ms) : 0, 1462
crashtracking [candidate] (1.449 ms) : 0, 1449
BytebuddyAgent [baseline] (693.928 ms) : 0, 693928
BytebuddyAgent [candidate] (688.7 ms) : 0, 688700
GlobalTracer [baseline] (244.624 ms) : 0, 244624
GlobalTracer [candidate] (243.055 ms) : 0, 243055
AppSec [baseline] (31.534 ms) : 0, 31534
AppSec [candidate] (32.583 ms) : 0, 32583
Debugger [baseline] (6.409 ms) : 0, 6409
Debugger [candidate] (6.338 ms) : 0, 6338
Remote Config [baseline] (673.686 µs) : 0, 674
Remote Config [candidate] (672.172 µs) : 0, 672
Telemetry [baseline] (9.085 ms) : 0, 9085
Telemetry [candidate] (8.96 ms) : 0, 8960
Flare Poller [baseline] (11.432 ms) : 0, 11432
Flare Poller [candidate] (11.587 ms) : 0, 11587
section appsec
crashtracking [baseline] (1.468 ms) : 0, 1468
crashtracking [candidate] (1.469 ms) : 0, 1469
BytebuddyAgent [baseline] (712.191 ms) : 0, 712191
BytebuddyAgent [candidate] (713.109 ms) : 0, 713109
GlobalTracer [baseline] (233.953 ms) : 0, 233953
GlobalTracer [candidate] (236.08 ms) : 0, 236080
AppSec [baseline] (170.94 ms) : 0, 170940
AppSec [candidate] (172.488 ms) : 0, 172488
Debugger [baseline] (6.804 ms) : 0, 6804
Debugger [candidate] (7.593 ms) : 0, 7593
Remote Config [baseline] (613.926 µs) : 0, 614
Remote Config [candidate] (631.36 µs) : 0, 631
Telemetry [baseline] (8.319 ms) : 0, 8319
Telemetry [candidate] (8.297 ms) : 0, 8297
Flare Poller [baseline] (4.924 ms) : 0, 4924
Flare Poller [candidate] (4.892 ms) : 0, 4892
IAST [baseline] (24.746 ms) : 0, 24746
IAST [candidate] (25.076 ms) : 0, 25076
section iast
crashtracking [baseline] (1.462 ms) : 0, 1462
crashtracking [candidate] (1.458 ms) : 0, 1458
BytebuddyAgent [baseline] (810.162 ms) : 0, 810162
BytebuddyAgent [candidate] (808.931 ms) : 0, 808931
GlobalTracer [baseline] (232.859 ms) : 0, 232859
GlobalTracer [candidate] (232.638 ms) : 0, 232638
AppSec [baseline] (33.725 ms) : 0, 33725
AppSec [candidate] (34.768 ms) : 0, 34768
Debugger [baseline] (6.029 ms) : 0, 6029
Debugger [candidate] (6.069 ms) : 0, 6069
Remote Config [baseline] (593.053 µs) : 0, 593
Remote Config [candidate] (586.773 µs) : 0, 587
Telemetry [baseline] (8.194 ms) : 0, 8194
Telemetry [candidate] (8.269 ms) : 0, 8269
Flare Poller [baseline] (4.301 ms) : 0, 4301
Flare Poller [candidate] (4.219 ms) : 0, 4219
IAST [baseline] (26.4 ms) : 0, 26400
IAST [candidate] (26.107 ms) : 0, 26107
section profiling
crashtracking [baseline] (1.439 ms) : 0, 1439
crashtracking [candidate] (1.413 ms) : 0, 1413
BytebuddyAgent [baseline] (718.46 ms) : 0, 718460
BytebuddyAgent [candidate] (719.441 ms) : 0, 719441
GlobalTracer [baseline] (219.095 ms) : 0, 219095
GlobalTracer [candidate] (218.551 ms) : 0, 218551
AppSec [baseline] (31.405 ms) : 0, 31405
AppSec [candidate] (32.846 ms) : 0, 32846
Debugger [baseline] (6.526 ms) : 0, 6526
Debugger [candidate] (7.276 ms) : 0, 7276
Remote Config [baseline] (731.558 µs) : 0, 732
Remote Config [candidate] (739.523 µs) : 0, 740
Telemetry [baseline] (16.567 ms) : 0, 16567
Telemetry [candidate] (15.556 ms) : 0, 15556
Flare Poller [baseline] (4.161 ms) : 0, 4161
Flare Poller [candidate] (4.171 ms) : 0, 4171
ProfilingAgent [baseline] (101.052 ms) : 0, 101052
ProfilingAgent [candidate] (104.094 ms) : 0, 104094
Profiling [baseline] (101.621 ms) : 0, 101621
Profiling [candidate] (107.83 ms) : 0, 107830
LoadParameters
See matching parameters
SummaryFound 2 performance improvements and 2 performance regressions! Performance is the same for 8 metrics, 12 unstable metrics.
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.54.0-SNAPSHOT~2768645057, baseline=1.54.0-SNAPSHOT~4cf767062c
dateFormat X
axisFormat %s
section baseline
no_agent (4.496 ms) : 4446, 4546
. : milestone, 4496,
iast (10.4 ms) : 10223, 10577
. : milestone, 10400,
iast_FULL (13.883 ms) : 13609, 14157
. : milestone, 13883,
iast_GLOBAL (10.575 ms) : 10384, 10766
. : milestone, 10575,
profiling (8.43 ms) : 8301, 8559
. : milestone, 8430,
tracing (7.615 ms) : 7506, 7724
. : milestone, 7615,
section candidate
no_agent (4.379 ms) : 4329, 4429
. : milestone, 4379,
iast (9.896 ms) : 9730, 10062
. : milestone, 9896,
iast_FULL (13.971 ms) : 13692, 14251
. : milestone, 13971,
iast_GLOBAL (10.814 ms) : 10623, 11005
. : milestone, 10814,
profiling (8.887 ms) : 8745, 9030
. : milestone, 8887,
tracing (7.809 ms) : 7698, 7920
. : milestone, 7809,
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.54.0-SNAPSHOT~2768645057, baseline=1.54.0-SNAPSHOT~4cf767062c
dateFormat X
axisFormat %s
section baseline
no_agent (38.119 ms) : 37804, 38433
. : milestone, 38119,
appsec (47.173 ms) : 46749, 47596
. : milestone, 47173,
code_origins (42.066 ms) : 41707, 42426
. : milestone, 42066,
iast (44.442 ms) : 44057, 44828
. : milestone, 44442,
profiling (48.983 ms) : 48530, 49437
. : milestone, 48983,
tracing (45.049 ms) : 44661, 45436
. : milestone, 45049,
section candidate
no_agent (37.119 ms) : 36820, 37418
. : milestone, 37119,
appsec (48.039 ms) : 47618, 48460
. : milestone, 48039,
code_origins (46.407 ms) : 46013, 46802
. : milestone, 46407,
iast (45.591 ms) : 45204, 45978
. : milestone, 45591,
profiling (47.951 ms) : 47538, 48364
. : milestone, 47951,
tracing (42.968 ms) : 42610, 43326
. : milestone, 42968,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 1 unstable metrics. Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.54.0-SNAPSHOT~2768645057, baseline=1.54.0-SNAPSHOT~4cf767062c
dateFormat X
axisFormat %s
section baseline
no_agent (1.477 ms) : 1465, 1489
. : milestone, 1477,
appsec (3.725 ms) : 3506, 3944
. : milestone, 3725,
iast (2.209 ms) : 2146, 2272
. : milestone, 2209,
iast_GLOBAL (2.256 ms) : 2194, 2319
. : milestone, 2256,
profiling (2.066 ms) : 2014, 2118
. : milestone, 2066,
tracing (2.021 ms) : 1973, 2070
. : milestone, 2021,
section candidate
no_agent (1.482 ms) : 1471, 1494
. : milestone, 1482,
appsec (3.737 ms) : 3520, 3954
. : milestone, 3737,
iast (2.21 ms) : 2147, 2273
. : milestone, 2210,
iast_GLOBAL (2.253 ms) : 2190, 2316
. : milestone, 2253,
profiling (2.071 ms) : 2019, 2123
. : milestone, 2071,
tracing (2.033 ms) : 1984, 2082
. : milestone, 2033,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.54.0-SNAPSHOT~2768645057, baseline=1.54.0-SNAPSHOT~4cf767062c
dateFormat X
axisFormat %s
section baseline
no_agent (14.992 s) : 14992000, 14992000
. : milestone, 14992000,
appsec (15.192 s) : 15192000, 15192000
. : milestone, 15192000,
iast (18.652 s) : 18652000, 18652000
. : milestone, 18652000,
iast_GLOBAL (18.16 s) : 18160000, 18160000
. : milestone, 18160000,
profiling (15.428 s) : 15428000, 15428000
. : milestone, 15428000,
tracing (15.083 s) : 15083000, 15083000
. : milestone, 15083000,
section candidate
no_agent (15.404 s) : 15404000, 15404000
. : milestone, 15404000,
appsec (15.029 s) : 15029000, 15029000
. : milestone, 15029000,
iast (18.599 s) : 18599000, 18599000
. : milestone, 18599000,
iast_GLOBAL (18.035 s) : 18035000, 18035000
. : milestone, 18035000,
profiling (15.414 s) : 15414000, 15414000
. : milestone, 15414000,
tracing (15.131 s) : 15131000, 15131000
. : milestone, 15131000,
|
e10c32e
to
094375b
Compare
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
fe39167
to
1dae6dc
Compare
86ba6d2
to
4ce366c
Compare
🎯 Code Coverage 🔗 Commit SHA: 2768645 | Docs | Was this helpful? Give us feedback! |
f331f45
to
88a00bf
Compare
38bcd80
to
d2992f6
Compare
...okhttp/okhttp-2.2/src/main/java/datadog/trace/instrumentation/okhttp2/AppSecInterceptor.java
Outdated
Show resolved
Hide resolved
d2992f6
to
4c2a589
Compare
4c2a589
to
2768645
Compare
I’m wondering if we could add a couple more tests to bring the patch coverage up to 100%. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Thanks for taking this on!
I think it would be a good idea to expand the PR description a bit :) even after reading the RFC, there are some changes that could be useful to highlight for reviewers.
Yeah seems that the bot is not updated with the latest changes, but coverage should have improved. |
What Does This Do
Adds support for downstream HTTP request and response analysis in the OkHttp2 client instrumentation.
Motivation
Enable AppSec to analyze outbound requests made through OkHttp2. This expands coverage for API security and SSRF protections, while supporting downstream traffic inspection with configurable sampling.
Additional Notes
RFC
Contributor Checklist
type:
and (comp:
orinst:
) labels in addition to any usefull labelsclose
,fix
or any linking keywords when referencing an issue.Use
solves
instead, and assign the PR milestone to the issueJira ticket: APPSEC-58613