Skip to content

Implement APIGW Inferred Proxy Spans - #8336

Merged
zarirhamza merged 32 commits into
masterfrom
inferred-span-tags
May 7, 2025
Merged

Implement APIGW Inferred Proxy Spans#8336
zarirhamza merged 32 commits into
masterfrom
inferred-span-tags

Conversation

@jordan-wong

@jordan-wongjordan-wong commented Feb 4, 2025

Copy link
Copy Markdown
Contributor

What Does This Do

Adds an inferred proxy span as the parent of http request spans if http headers with x-dd-proxy are detected

Motivation

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

Jira ticket: AIDM-547

@pr-commenter

pr-commenterBot commented Feb 4, 2025

Copy link
Copy Markdown

Benchmarks

Startup

Parameters

BaselineCandidate
baseline_or_candidatebaselinecandidate
git_branchmasterinferred-span-tags
git_commit_date17466346961746634734
git_commit_sha5a5e4a5ce06b40
release_version1.50.0-SNAPSHOT~5a5e4a54b81.50.0-SNAPSHOT~ce06b40d25
See matching parameters
BaselineCandidate
applicationinsecure-bankinsecure-bank
ci_job_date17466376831746637683
ci_job_id928447907928447907
ci_pipeline_id6442786664427866
cpu_modelIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_versionLinux runner-b8dt8fez-project-304-concurrent-1-xrtkwhvx 6.8.0-1027-aws #29~22.04.1-Ubuntu SMP Sun Mar 30 07:45:38 UTC 2025 x86_64 x86_64 x86_64 GNU/LinuxLinux runner-b8dt8fez-project-304-concurrent-1-xrtkwhvx 6.8.0-1027-aws #29~22.04.1-Ubuntu SMP Sun Mar 30 07:45:38 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
moduleAgentAgent
parentNoneNone
variantiastiast

Summary

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

Startup time reports for petclinic
gantt
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
Loading
  • baseline results
ModuleVariantDurationΔ tracing
Agenttracing1.02 s-
Agentappsec1.162 s142.106 ms (13.9%)
Agentiast1.144 s124.171 ms (12.2%)
Agentprofiling1.278 s257.796 ms (25.3%)
Totaltracing10.419 s-
Totalappsec10.675 s255.999 ms (2.5%)
Totaliast10.833 s414.057 ms (4.0%)
Totalprofiling10.804 s384.988 ms (3.7%)
  • candidate results
ModuleVariantDurationΔ tracing
Agenttracing1.018 s-
Agentappsec1.157 s139.63 ms (13.7%)
Agentiast1.148 s130.788 ms (12.9%)
Agentprofiling1.279 s261.49 ms (25.7%)
Totaltracing10.399 s-
Totalappsec10.702 s302.759 ms (2.9%)
Totaliast10.843 s443.684 ms (4.3%)
Totalprofiling10.812 s412.496 ms (4.0%)
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
Loading
Startup time reports for insecure-bank
gantt
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
Loading
  • baseline results
ModuleVariantDurationΔ tracing
Agenttracing1.019 s-
Agentiast1.146 s126.657 ms (12.4%)
Agentiast_HARDCODED_SECRET_DISABLED1.145 s126.077 ms (12.4%)
Agentiast_TELEMETRY_OFF1.143 s124.347 ms (12.2%)
Totaltracing8.643 s-
Totaliast9.181 s537.769 ms (6.2%)
Totaliast_HARDCODED_SECRET_DISABLED9.196 s553.615 ms (6.4%)
Totaliast_TELEMETRY_OFF9.21 s566.811 ms (6.6%)
  • candidate results
ModuleVariantDurationΔ tracing
Agenttracing1.024 s-
Agentiast1.149 s124.482 ms (12.2%)
Agentiast_HARDCODED_SECRET_DISABLED1.149 s124.553 ms (12.2%)
Agentiast_TELEMETRY_OFF1.14 s115.715 ms (11.3%)
Totaltracing8.638 s-
Totaliast9.198 s559.939 ms (6.5%)
Totaliast_HARDCODED_SECRET_DISABLED9.175 s536.584 ms (6.2%)
Totaliast_TELEMETRY_OFF9.162 s523.904 ms (6.1%)
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
Loading

Load

Parameters

BaselineCandidate
baseline_or_candidatebaselinecandidate
end_time2025-05-07T16:40:302025-05-07T16:48:17
git_branchmasterinferred-span-tags
git_commit_date17466346961746634734
git_commit_sha5a5e4a5ce06b40
release_version1.50.0-SNAPSHOT~5a5e4a54b81.50.0-SNAPSHOT~ce06b40d25
start_time2025-05-07T16:40:162025-05-07T16:48:02
See matching parameters
BaselineCandidate
applicationinsecure-bankinsecure-bank
ci_job_date17466368971746636897
ci_job_id928447908928447908
ci_pipeline_id6442786664427866
cpu_modelIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_versionLinux runner-kkuvrsnd-project-304-concurrent-0-fn2hgbii 6.8.0-1027-aws #29~22.04.1-Ubuntu SMP Sun Mar 30 07:45:38 UTC 2025 x86_64 x86_64 x86_64 GNU/LinuxLinux runner-kkuvrsnd-project-304-concurrent-0-fn2hgbii 6.8.0-1027-aws #29~22.04.1-Ubuntu SMP Sun Mar 30 07:45:38 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
variantiastiast

Summary

Found 0 performance improvements and 1 performance regressions! Performance is the same for 11 metrics, 18 unstable metrics.

scenarioΔ mean http_req_durationΔ mean throughputcandidate mean http_req_durationcandidate mean throughputbaseline mean http_req_durationbaseline mean throughput
scenario:load:petclinic:profilingworse
[+59.932µs; +112.668µs] or [+3.976%; +7.474%]
unstable
[-657.482op/s; +429.562op/s] or [-21.368%; +13.961%]
1.594ms2962.963op/s1.507ms3076.923op/s
Request duration reports for petclinic
gantt
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,
Loading
  • baseline results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent1.373 ms [1.353 ms, 1.392 ms]-
appsec1.751 ms [1.727 ms, 1.775 ms]378.491 µs (27.6%)
appsec_no_iast1.754 ms [1.731 ms, 1.778 ms]381.823 µs (27.8%)
code_origins1.675 ms [1.648 ms, 1.702 ms]302.137 µs (22.0%)
iast1.517 ms [1.493 ms, 1.541 ms]144.535 µs (10.5%)
profiling1.507 ms [1.484 ms, 1.531 ms]134.856 µs (9.8%)
tracing1.52 ms [1.495 ms, 1.545 ms]147.267 µs (10.7%)
  • candidate results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent1.371 ms [1.351 ms, 1.39 ms]-
appsec1.747 ms [1.723 ms, 1.771 ms]376.193 µs (27.4%)
appsec_no_iast1.746 ms [1.723 ms, 1.769 ms]375.424 µs (27.4%)
code_origins1.675 ms [1.648 ms, 1.701 ms]303.781 µs (22.2%)
iast1.524 ms [1.5 ms, 1.548 ms]153.335 µs (11.2%)
profiling1.594 ms [1.568 ms, 1.619 ms]222.973 µs (16.3%)
tracing1.512 ms [1.487 ms, 1.537 ms]141.228 µs (10.3%)
Request duration reports for insecure-bank
gantt
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,
Loading
  • baseline results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent390.782 µs [368.97 µs, 412.595 µs]-
iast527.828 µs [505.69 µs, 549.967 µs]137.046 µs (35.1%)
iast_FULL740.942 µs [719.171 µs, 762.713 µs]350.159 µs (89.6%)
iast_GLOBAL574.691 µs [552.79 µs, 596.592 µs]183.909 µs (47.1%)
iast_HARDCODED_SECRET_DISABLED523.253 µs [500.018 µs, 546.489 µs]132.471 µs (33.9%)
iast_INACTIVE471.996 µs [449.493 µs, 494.499 µs]81.214 µs (20.8%)
iast_TELEMETRY_OFF517.507 µs [494.065 µs, 540.949 µs]126.725 µs (32.4%)
tracing473.804 µs [451.214 µs, 496.394 µs]83.021 µs (21.2%)
  • candidate results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent389.899 µs [370.012 µs, 409.786 µs]-
iast532.569 µs [510.728 µs, 554.409 µs]142.669 µs (36.6%)
iast_FULL743.451 µs [721.672 µs, 765.23 µs]353.552 µs (90.7%)
iast_GLOBAL576.437 µs [552.788 µs, 600.086 µs]186.538 µs (47.8%)
iast_HARDCODED_SECRET_DISABLED529.016 µs [506.573 µs, 551.459 µs]139.117 µs (35.7%)
iast_INACTIVE483.951 µs [461.238 µs, 506.665 µs]94.052 µs (24.1%)
iast_TELEMETRY_OFF515.638 µs [492.166 µs, 539.11 µs]125.738 µs (32.2%)
tracing470.502 µs [448.393 µs, 492.612 µs]80.603 µs (20.7%)

Dacapo

@github-actions

Copy link
Copy Markdown
Contributor

Hi! 👋 Looks like you updated a Git Submodule.
If this was not intentional please make sure to:

@jordan-wong
jordan-wong marked this pull request as ready for review April 22, 2025 13:51
@jordan-wong
jordan-wong requested a review from a team as a code ownerApril 22, 2025 13:51
@jordan-wong
jordan-wong requested a review from smolaApril 22, 2025 13:51
@github-actions

github-actionsBot commented Apr 22, 2025

Copy link
Copy Markdown
Contributor

Hi! 👋 Thanks for your pull request! 🎉

To help us review it, please make sure to:

  • Add at least one type, and one component or instrumentation label to the pull request

If you need help, please check our contributing guidelines.

@smola
smola requested review from a team and amarziali and removed request for a team and smolaApril 23, 2025 06:39
@github-actions

Copy link
Copy Markdown
Contributor

Hi! 👋 Looks like you updated a Git Submodule.
If this was not intentional please make sure to:

@amarzialiamarziali removed this from the 1.49.0 milestone May 6, 2025
@zarirhamzazarirhamza added this to the 1.50.0 milestone May 6, 2025
@zarirhamzazarirhamza added type: feature request comp: context propagation Trace context propagation and removed type: feature Enhancements and improvements comp: api Tracer public API labels May 6, 2025
@zarirhamza
zarirhamza enabled auto-merge (squash) May 7, 2025 16:19
InferredProxyContextExtractor() {}

private Map<String, String> parseInferredProxyHeaders(String input) {
Map<String, String> parsedHeaders = new HashMap<>();

Copy link
Copy Markdown
Contributor

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.

@dougqhdougqh left a comment

Copy link
Copy Markdown
Contributor

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.

@zarirhamza
zarirhamza merged commit 5098c6f into masterMay 7, 2025
@zarirhamza
zarirhamza deleted the inferred-span-tags branch May 7, 2025 17:38
This was referenced May 7, 2025
PerfectSlayer added a commit that referenced this pull request May 12, 2025
PerfectSlayer added a commit that referenced this pull request May 12, 2025
@mccullsmcculls added the tag: no release notes Changes to exclude from release notes label May 13, 2025
PerfectSlayer pushed a commit that referenced this pull request Aug 21, 2025
* Creates inferred proxy spans for API Gateway calls via presence of http headers
---------
Co-authored-by: Zarir Hamza <zarir.hamza@datadoghq.com>
PerfectSlayer pushed a commit that referenced this pull request Sep 22, 2025
* Creates inferred proxy spans for API Gateway calls via presence of http headers
---------
Co-authored-by: Zarir Hamza <zarir.hamza@datadoghq.com>
PerfectSlayer added a commit that referenced this pull request Sep 22, 2025
* Implement APIGW Inferred Proxy Spans (#8336)
* Creates inferred proxy spans for API Gateway calls via presence of http headers
Co-authored-by: Zarir Hamza <zarir.hamza@datadoghq.com>
* feat(serverless): Fix gateway inferred span design
Avoid duplicate expensive context extraction
Avoid subclassing tracing span for serverless but used serverless context element instead to store / track inferred span while keep tracing feature untouched
Improved propagator to not create / capture inferred span context element on invalid data
Rework context element to hold the inferred spans and its captured data
Release captured data as soon as they span start (never read after this point so reclaiming memory)
Refactor context element and propagator into the right package, not context component (product / feature agnostic)
Refactor unit tests
---------
Co-authored-by: Zarir Hamza <zarir.hamza@datadoghq.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: context propagationTrace context propagationtag: no release notesChanges to exclude from release notestype: feature request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@jordan-wong@mcculls@dougqh@PerfectSlayer@amarziali@zarirhamza