-
Notifications
You must be signed in to change notification settings - Fork 301
Implement APIGW Inferred Proxy Spans #8336
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
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 57 metrics, 14 unstable metrics. Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.50.0-SNAPSHOT~ce06b40d25, baseline=1.50.0-SNAPSHOT~5a5e4a54b8
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.02 s) : 0, 1020168
Total [baseline] (10.419 s) : 0, 10419442
Agent [candidate] (1.018 s) : 0, 1017550
Total [candidate] (10.399 s) : 0, 10399301
section appsec
Agent [baseline] (1.162 s) : 0, 1162274
Total [baseline] (10.675 s) : 0, 10675442
Agent [candidate] (1.157 s) : 0, 1157180
Total [candidate] (10.702 s) : 0, 10702060
section iast
Agent [baseline] (1.144 s) : 0, 1144339
Total [baseline] (10.833 s) : 0, 10833499
Agent [candidate] (1.148 s) : 0, 1148338
Total [candidate] (10.843 s) : 0, 10842986
section profiling
Agent [baseline] (1.278 s) : 0, 1277964
Total [baseline] (10.804 s) : 0, 10804431
Agent [candidate] (1.279 s) : 0, 1279040
Total [candidate] (10.812 s) : 0, 10811797
gantt
title petclinic - break down per module: candidate=1.50.0-SNAPSHOT~ce06b40d25, baseline=1.50.0-SNAPSHOT~5a5e4a54b8
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (681.648 ms) : 0, 681648
BytebuddyAgent [candidate] (681.837 ms) : 0, 681837
GlobalTracer [baseline] (239.169 ms) : 0, 239169
GlobalTracer [candidate] (239.566 ms) : 0, 239566
AppSec [baseline] (54.865 ms) : 0, 54865
AppSec [candidate] (54.611 ms) : 0, 54611
Debugger [baseline] (11.455 ms) : 0, 11455
Debugger [candidate] (7.607 ms) : 0, 7607
Remote Config [baseline] (678.737 µs) : 0, 679
Remote Config [candidate] (691.424 µs) : 0, 691
Telemetry [baseline] (8.895 ms) : 0, 8895
Telemetry [candidate] (9.814 ms) : 0, 9814
section appsec
BytebuddyAgent [baseline] (701.045 ms) : 0, 701045
BytebuddyAgent [candidate] (697.645 ms) : 0, 697645
GlobalTracer [baseline] (237.109 ms) : 0, 237109
GlobalTracer [candidate] (236.029 ms) : 0, 236029
AppSec [baseline] (175.771 ms) : 0, 175771
AppSec [candidate] (174.957 ms) : 0, 174957
Debugger [baseline] (5.945 ms) : 0, 5945
Debugger [candidate] (5.937 ms) : 0, 5937
Remote Config [baseline] (618.996 µs) : 0, 619
Remote Config [candidate] (616.097 µs) : 0, 616
Telemetry [baseline] (7.429 ms) : 0, 7429
Telemetry [candidate] (7.777 ms) : 0, 7777
IAST [baseline] (21.685 ms) : 0, 21685
IAST [candidate] (21.635 ms) : 0, 21635
section iast
BytebuddyAgent [baseline] (799.354 ms) : 0, 799354
BytebuddyAgent [candidate] (801.688 ms) : 0, 801688
GlobalTracer [baseline] (229.497 ms) : 0, 229497
GlobalTracer [candidate] (230.371 ms) : 0, 230371
AppSec [baseline] (49.113 ms) : 0, 49113
AppSec [candidate] (50.453 ms) : 0, 50453
Debugger [baseline] (5.87 ms) : 0, 5870
Debugger [candidate] (5.869 ms) : 0, 5869
Remote Config [baseline] (584.254 µs) : 0, 584
Remote Config [candidate] (601.426 µs) : 0, 601
Telemetry [baseline] (7.779 ms) : 0, 7779
Telemetry [candidate] (7.837 ms) : 0, 7837
IAST [baseline] (27.295 ms) : 0, 27295
IAST [candidate] (26.62 ms) : 0, 26620
section profiling
ProfilingAgent [baseline] (103.136 ms) : 0, 103136
ProfilingAgent [candidate] (104.359 ms) : 0, 104359
BytebuddyAgent [baseline] (676.388 ms) : 0, 676388
BytebuddyAgent [candidate] (675.825 ms) : 0, 675825
GlobalTracer [baseline] (378.064 ms) : 0, 378064
GlobalTracer [candidate] (379.055 ms) : 0, 379055
AppSec [baseline] (54.732 ms) : 0, 54732
AppSec [candidate] (54.109 ms) : 0, 54109
Debugger [baseline] (6.143 ms) : 0, 6143
Debugger [candidate] (6.218 ms) : 0, 6218
Remote Config [baseline] (662.302 µs) : 0, 662
Remote Config [candidate] (649.694 µs) : 0, 650
Telemetry [baseline] (8.114 ms) : 0, 8114
Telemetry [candidate] (8.172 ms) : 0, 8172
Profiling [baseline] (103.16 ms) : 0, 103160
Profiling [candidate] (104.384 ms) : 0, 104384
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.50.0-SNAPSHOT~ce06b40d25, baseline=1.50.0-SNAPSHOT~5a5e4a54b8
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.019 s) : 0, 1019034
Total [baseline] (8.643 s) : 0, 8642743
Agent [candidate] (1.024 s) : 0, 1024417
Total [candidate] (8.638 s) : 0, 8638170
section iast
Agent [baseline] (1.146 s) : 0, 1145690
Total [baseline] (9.181 s) : 0, 9180511
Agent [candidate] (1.149 s) : 0, 1148899
Total [candidate] (9.198 s) : 0, 9198109
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.145 s) : 0, 1145111
Total [baseline] (9.196 s) : 0, 9196358
Agent [candidate] (1.149 s) : 0, 1148970
Total [candidate] (9.175 s) : 0, 9174755
section iast_TELEMETRY_OFF
Agent [baseline] (1.143 s) : 0, 1143381
Total [baseline] (9.21 s) : 0, 9209553
Agent [candidate] (1.14 s) : 0, 1140132
Total [candidate] (9.162 s) : 0, 9162075
gantt
title insecure-bank - break down per module: candidate=1.50.0-SNAPSHOT~ce06b40d25, baseline=1.50.0-SNAPSHOT~5a5e4a54b8
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (682.216 ms) : 0, 682216
BytebuddyAgent [candidate] (686.265 ms) : 0, 686265
GlobalTracer [baseline] (239.339 ms) : 0, 239339
GlobalTracer [candidate] (241.335 ms) : 0, 241335
AppSec [baseline] (55.291 ms) : 0, 55291
AppSec [candidate] (55.326 ms) : 0, 55326
Debugger [baseline] (9.067 ms) : 0, 9067
Debugger [candidate] (9.029 ms) : 0, 9029
Remote Config [baseline] (685.437 µs) : 0, 685
Remote Config [candidate] (670.164 µs) : 0, 670
Telemetry [baseline] (9.05 ms) : 0, 9050
Telemetry [candidate] (8.257 ms) : 0, 8257
section iast
BytebuddyAgent [baseline] (799.897 ms) : 0, 799897
BytebuddyAgent [candidate] (800.802 ms) : 0, 800802
GlobalTracer [baseline] (230.048 ms) : 0, 230048
GlobalTracer [candidate] (231.32 ms) : 0, 231320
IAST [baseline] (27.35 ms) : 0, 27350
IAST [candidate] (27.523 ms) : 0, 27523
AppSec [baseline] (50.815 ms) : 0, 50815
AppSec [candidate] (51.392 ms) : 0, 51392
Debugger [baseline] (5.86 ms) : 0, 5860
Debugger [candidate] (5.997 ms) : 0, 5997
Remote Config [baseline] (579.159 µs) : 0, 579
Remote Config [candidate] (602.114 µs) : 0, 602
Telemetry [baseline] (7.776 ms) : 0, 7776
Telemetry [candidate] (7.884 ms) : 0, 7884
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (798.728 ms) : 0, 798728
BytebuddyAgent [candidate] (801.565 ms) : 0, 801565
GlobalTracer [baseline] (229.91 ms) : 0, 229910
GlobalTracer [candidate] (230.458 ms) : 0, 230458
IAST [baseline] (25.163 ms) : 0, 25163
IAST [candidate] (23.515 ms) : 0, 23515
AppSec [baseline] (50.355 ms) : 0, 50355
AppSec [candidate] (52.413 ms) : 0, 52413
Debugger [baseline] (5.893 ms) : 0, 5893
Debugger [candidate] (5.901 ms) : 0, 5901
Remote Config [baseline] (582.151 µs) : 0, 582
Remote Config [candidate] (572.296 µs) : 0, 572
Telemetry [baseline] (7.889 ms) : 0, 7889
Telemetry [candidate] (7.9 ms) : 0, 7900
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (797.052 ms) : 0, 797052
BytebuddyAgent [candidate] (794.815 ms) : 0, 794815
GlobalTracer [baseline] (229.783 ms) : 0, 229783
GlobalTracer [candidate] (229.46 ms) : 0, 229460
IAST [baseline] (22.45 ms) : 0, 22450
IAST [candidate] (23.039 ms) : 0, 23039
AppSec [baseline] (56.398 ms) : 0, 56398
AppSec [candidate] (55.244 ms) : 0, 55244
Debugger [baseline] (5.924 ms) : 0, 5924
Debugger [candidate] (5.933 ms) : 0, 5933
Remote Config [baseline] (597.12 µs) : 0, 597
Remote Config [candidate] (590.743 µs) : 0, 591
Telemetry [baseline] (7.766 ms) : 0, 7766
Telemetry [candidate] (7.785 ms) : 0, 7785
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 1 performance regressions! Performance is the same for 11 metrics, 18 unstable metrics.
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.50.0-SNAPSHOT~ce06b40d25, baseline=1.50.0-SNAPSHOT~5a5e4a54b8
dateFormat X
axisFormat %s
section baseline
no_agent (1.373 ms) : 1353, 1392
. : milestone, 1373,
appsec (1.751 ms) : 1727, 1775
. : milestone, 1751,
appsec_no_iast (1.754 ms) : 1731, 1778
. : milestone, 1754,
code_origins (1.675 ms) : 1648, 1702
. : milestone, 1675,
iast (1.517 ms) : 1493, 1541
. : milestone, 1517,
profiling (1.507 ms) : 1484, 1531
. : milestone, 1507,
tracing (1.52 ms) : 1495, 1545
. : milestone, 1520,
section candidate
no_agent (1.371 ms) : 1351, 1390
. : milestone, 1371,
appsec (1.747 ms) : 1723, 1771
. : milestone, 1747,
appsec_no_iast (1.746 ms) : 1723, 1769
. : milestone, 1746,
code_origins (1.675 ms) : 1648, 1701
. : milestone, 1675,
iast (1.524 ms) : 1500, 1548
. : milestone, 1524,
profiling (1.594 ms) : 1568, 1619
. : milestone, 1594,
tracing (1.512 ms) : 1487, 1537
. : milestone, 1512,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.50.0-SNAPSHOT~ce06b40d25, baseline=1.50.0-SNAPSHOT~5a5e4a54b8
dateFormat X
axisFormat %s
section baseline
no_agent (390.782 µs) : 369, 413
. : milestone, 391,
iast (527.828 µs) : 506, 550
. : milestone, 528,
iast_FULL (740.942 µs) : 719, 763
. : milestone, 741,
iast_GLOBAL (574.691 µs) : 553, 597
. : milestone, 575,
iast_HARDCODED_SECRET_DISABLED (523.253 µs) : 500, 546
. : milestone, 523,
iast_INACTIVE (471.996 µs) : 449, 494
. : milestone, 472,
iast_TELEMETRY_OFF (517.507 µs) : 494, 541
. : milestone, 518,
tracing (473.804 µs) : 451, 496
. : milestone, 474,
section candidate
no_agent (389.899 µs) : 370, 410
. : milestone, 390,
iast (532.569 µs) : 511, 554
. : milestone, 533,
iast_FULL (743.451 µs) : 722, 765
. : milestone, 743,
iast_GLOBAL (576.437 µs) : 553, 600
. : milestone, 576,
iast_HARDCODED_SECRET_DISABLED (529.016 µs) : 507, 551
. : milestone, 529,
iast_INACTIVE (483.951 µs) : 461, 507
. : milestone, 484,
iast_TELEMETRY_OFF (515.638 µs) : 492, 539
. : milestone, 516,
tracing (470.502 µs) : 448, 493
. : milestone, 471,
Dacapo |
Hi! 👋 Looks like you updated a Git Submodule.
|
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
Hi! 👋 Looks like you updated a Git Submodule.
|
internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentSpanContext.java
Outdated
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentPropagation.java
Outdated
Show resolved
Hide resolved
dd-trace-api/src/main/java/datadog/trace/api/config/TracerConfig.java
Outdated
Show resolved
Hide resolved
dd-trace-api/src/main/java/datadog/trace/api/ConfigDefaults.java
Outdated
Show resolved
Hide resolved
components/context/src/main/java/datadog/context/propagation/InferredProxyPropagator.java
Outdated
Show resolved
Hide resolved
Hi! 👋 Looks like you updated a Git Submodule.
|
you need to set the sub-module back to the version it has on master, which is the
then follow the instructions here so you don't accidentally change the submodule version when switching between old and new branches. |
…, make various code style improvements to address comments
InferredProxyContextExtractor() {} | ||
|
||
private Map<String, String> parseInferredProxyHeaders(String input) { | ||
Map<String, String> parsedHeaders = new HashMap<>(); |
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.
What's happening here?
If this always, returns an empty Map - Collections.emptyMap might be better.
It depends on whether or not you need the map to be mutable.
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.
I have one question about parseInferredProxyHeaders which appears to always return an empty Map. If that's the case, then returning Collections.emptyMap() would be better.
What Does This Do
Adds an
inferred proxy
span as the parent of http request spans if http headers withx-dd-proxy
are detectedMotivation
We want to have observability of router/ proxy services like AWS API Gateway, that redirect client calls to various targets. There is distinct http header metadata available to us from http requests that can allow us to "infer" the presence of these proxy services.
Additional Notes
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: AIDM-547