@@ -293,10 +293,10 @@ def get_event_source_arn(source: _EventSource, event: dict, context: Any) -> str
293293 return event_source_arn
294294
295295
296- def resolve_alb_request_headers (event ):
296+ def resolve_multivalue_headers (event ):
297297 """
298- Resolve ALB request headers from single-value ``headers`` or
299- ``multiValueHeaders`` (first value per key, matching datadog-lambda-js).
298+ Resolve request headers from single-value ``headers`` or ``multiValueHeaders``
299+ (first value per key, matching datadog-lambda-js).
300300 """
301301 headers = event .get ("headers" )
302302 if isinstance (headers , dict ) and headers :
@@ -339,7 +339,6 @@ def extract_http_tags(event):
339339
340340 path = event .get ("path" )
341341 method = event .get ("httpMethod" )
342- request_headers = None
343342
344343 if request_context and request_context .get ("stage" ):
345344 domain_name = request_context .get ("domainName" )
@@ -361,13 +360,13 @@ def extract_http_tags(event):
361360 elif request_context and request_context .get ("elb" ):
362361 # ALB events have no requestContext.stage; derive the URL from the
363362 # forwarded host/proto headers and the top-level path.
364- request_headers = resolve_alb_request_headers (event )
365- host = request_headers .get ("host" )
363+ alb_headers = resolve_multivalue_headers (event )
364+ host = alb_headers .get ("host" )
366365 if host :
367- proto = request_headers .get ("x-forwarded-proto" , "http" )
366+ proto = alb_headers .get ("x-forwarded-proto" , "http" )
368367 http_tags ["http.url" ] = proto + "://" + host
369368
370- user_agent = request_headers .get ("user-agent" )
369+ user_agent = alb_headers .get ("user-agent" )
371370 if user_agent :
372371 http_tags ["http.useragent" ] = user_agent
373372
@@ -381,12 +380,7 @@ def extract_http_tags(event):
381380 if method :
382381 http_tags ["http.method" ] = method
383382
384- if request_headers is None :
385- request_headers = event .get ("headers" )
386- if not isinstance (request_headers , dict ):
387- request_headers = {}
388-
389- referer = _get_header_case_insensitive (request_headers , "referer" )
383+ referer = _get_header_case_insensitive (resolve_multivalue_headers (event ), "referer" )
390384 if referer :
391385 http_tags ["http.referer" ] = referer
392386
0 commit comments