@@ -201,30 +201,35 @@ def _set_api_gateway_v1_proxy_attributes(
201201 span .set_attribute (
202202 SpanAttributes .HTTP_METHOD , lambda_event .get ("httpMethod" )
203203 )
204- span .set_attribute (SpanAttributes .HTTP_ROUTE , lambda_event .get ("resource" ))
205204
206205 if lambda_event .get ("headers" ):
207- span .set_attribute (
208- SpanAttributes .HTTP_USER_AGENT ,
209- lambda_event ["headers" ].get ("User-Agent" ),
210- )
211- span .set_attribute (
212- SpanAttributes .HTTP_SCHEME ,
213- lambda_event ["headers" ].get ("X-Forwarded-Proto" ),
214- )
215- span .set_attribute (
216- SpanAttributes .NET_HOST_NAME , lambda_event ["headers" ].get ("Host" )
217- )
206+ if "User-Agent" in lambda_event ["headers" ]:
207+ span .set_attribute (
208+ SpanAttributes .HTTP_USER_AGENT ,
209+ lambda_event ["headers" ]["User-Agent" ],
210+ )
211+ if "X-Forwarded-Proto" in lambda_event ["headers" ]:
212+ span .set_attribute (
213+ SpanAttributes .HTTP_SCHEME ,
214+ lambda_event ["headers" ]["X-Forwarded-Proto" ],
215+ )
216+ if "Host" in lambda_event ["headers" ]:
217+ span .set_attribute (
218+ SpanAttributes .NET_HOST_NAME ,
219+ lambda_event ["headers" ]["Host" ],
220+ )
221+ if "resource" in lambda_event :
222+ span .set_attribute (SpanAttributes .HTTP_ROUTE , lambda_event ["resource" ])
218223
219- if lambda_event .get ("queryStringParameters" ):
220- span .set_attribute (
221- SpanAttributes .HTTP_TARGET ,
222- f"{ lambda_event . get ( 'resource' ) } ?{ urlencode (lambda_event . get ( 'queryStringParameters' ) )} " ,
223- )
224- else :
225- span .set_attribute (
226- SpanAttributes .HTTP_TARGET , lambda_event . get ( "resource" )
227- )
224+ if lambda_event .get ("queryStringParameters" ):
225+ span .set_attribute (
226+ SpanAttributes .HTTP_TARGET ,
227+ f"{ lambda_event [ 'resource' ] } ?{ urlencode (lambda_event [ 'queryStringParameters' ] )} " ,
228+ )
229+ else :
230+ span .set_attribute (
231+ SpanAttributes .HTTP_TARGET , lambda_event [ "resource" ]
232+ )
228233
229234 return span
230235
@@ -237,35 +242,38 @@ def _set_api_gateway_v2_proxy_attributes(
237242 More info:
238243 https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html
239244 """
240- span .set_attribute (
241- SpanAttributes .NET_HOST_NAME ,
242- lambda_event ["requestContext" ].get ("domainName" ),
243- )
244-
245- if lambda_event ["requestContext" ].get ("http" ):
245+ if "domainName" in lambda_event ["requestContext" ]:
246246 span .set_attribute (
247- SpanAttributes .HTTP_METHOD ,
248- lambda_event ["requestContext" ]["http" ].get ("method" ),
249- )
250- span .set_attribute (
251- SpanAttributes .HTTP_USER_AGENT ,
252- lambda_event ["requestContext" ]["http" ].get ("userAgent" ),
253- )
254- span .set_attribute (
255- SpanAttributes .HTTP_ROUTE ,
256- lambda_event ["requestContext" ]["http" ].get ("path" ),
247+ SpanAttributes .NET_HOST_NAME ,
248+ lambda_event ["requestContext" ]["domainName" ],
257249 )
258250
259- if lambda_event .get ("rawQueryString" ):
251+ if lambda_event ["requestContext" ].get ("http" ):
252+ if "method" in lambda_event ["requestContext" ]["http" ]:
260253 span .set_attribute (
261- SpanAttributes .HTTP_TARGET ,
262- f" { lambda_event [' requestContext' ][ ' http' ]. get ( 'path' ) } ? { lambda_event . get ( 'rawQueryString' ) } " ,
254+ SpanAttributes .HTTP_METHOD ,
255+ lambda_event [" requestContext" ][ " http" ][ "method" ] ,
263256 )
264- else :
257+ if "userAgent" in lambda_event [ "requestContext" ][ "http" ] :
265258 span .set_attribute (
266- SpanAttributes .HTTP_TARGET ,
267- lambda_event ["requestContext" ]["http" ].get ("path" ),
259+ SpanAttributes .HTTP_USER_AGENT ,
260+ lambda_event ["requestContext" ]["http" ]["userAgent" ],
261+ )
262+ if "path" in lambda_event ["requestContext" ]["http" ]:
263+ span .set_attribute (
264+ SpanAttributes .HTTP_ROUTE ,
265+ lambda_event ["requestContext" ]["http" ]["path" ],
268266 )
267+ if lambda_event .get ("rawQueryString" ):
268+ span .set_attribute (
269+ SpanAttributes .HTTP_TARGET ,
270+ f"{ lambda_event ['requestContext' ]['http' ]['path' ]} ?{ lambda_event ['rawQueryString' ]} " ,
271+ )
272+ else :
273+ span .set_attribute (
274+ SpanAttributes .HTTP_TARGET ,
275+ lambda_event ["requestContext" ]["http" ]["path" ],
276+ )
269277
270278 return span
271279
0 commit comments