@@ -319,59 +319,15 @@ def test_api_gateway_v2_trigger_tracing(self):
319319 # figure out the original (the users') Lambda Handler and execute it.
320320 # The original Lambda handler is set in os.environ["LAMBDA_HANDLER"]
321321 result = lambda_handler (event , self .context )
322-
323- assert isinstance (result , dict )
324- assert 'headers' in result
325- assert 'Server-Timing' in result ['headers' ]
326-
327322 time .sleep (1 )
328323 payload = self .agent .collector .prepare_payload ()
324+ self .__validate_result_and_payload_for_gateway_v2_trace (result , payload )
329325
330- self .assertTrue ("metrics" in payload )
331- self .assertTrue ("spans" in payload )
332- self .assertEqual (2 , len (payload .keys ()))
333-
334- self .assertTrue (isinstance (payload ['metrics' ]['plugins' ], list ))
335- self .assertTrue (len (payload ['metrics' ]['plugins' ]) == 1 )
336- plugin_data = payload ['metrics' ]['plugins' ][0 ]
337-
338- self .assertEqual ('com.instana.plugin.aws.lambda' , plugin_data ['name' ])
339- self .assertEqual ('arn:aws:lambda:us-east-2:12345:function:TestPython:1' , plugin_data ['entityId' ])
340-
341- self .assertEqual (1 , len (payload ['spans' ]))
342-
326+ self .assertEqual (200 , result ['statusCode' ])
343327 span = payload ['spans' ][0 ]
344- self .assertEqual ('aws.lambda.entry' , span .n )
345- self .assertEqual ('0000000000001234' , span .t )
346- self .assertIsNotNone (span .s )
347- self .assertEqual ('0000000000004567' , span .p )
348- self .assertIsNotNone (span .ts )
349- self .assertIsNotNone (span .d )
350-
351- server_timing_value = "intid;desc=%s" % span .t
352- assert result ['headers' ]['Server-Timing' ] == server_timing_value
353-
354- self .assertEqual ({'hl' : True , 'cp' : 'aws' , 'e' : 'arn:aws:lambda:us-east-2:12345:function:TestPython:1' },
355- span .f )
356-
357- self .assertTrue (span .sy )
358-
359328 self .assertIsNone (span .ec )
360329 self .assertIsNone (span .data ['lambda' ]['error' ])
361-
362- self .assertEqual ('arn:aws:lambda:us-east-2:12345:function:TestPython:1' , span .data ['lambda' ]['arn' ])
363- self .assertEqual (None , span .data ['lambda' ]['alias' ])
364- self .assertEqual ('python' , span .data ['lambda' ]['runtime' ])
365- self .assertEqual ('TestPython' , span .data ['lambda' ]['functionName' ])
366- self .assertEqual ('1' , span .data ['lambda' ]['functionVersion' ])
367- self .assertIsNone (span .data ['service' ])
368-
369- self .assertEqual ('aws:api.gateway' , span .data ['lambda' ]['trigger' ])
370- self .assertEqual ('POST' , span .data ['http' ]['method' ])
371330 self .assertEqual (200 , span .data ['http' ]['status' ])
372- self .assertEqual ('/my/path' , span .data ['http' ]['url' ])
373- self .assertEqual ('/my/{resource}' , span .data ['http' ]['path_tpl' ])
374- self .assertEqual ("secret=key&q=term" , span .data ['http' ]['params' ])
375331
376332
377333 def test_api_gateway_v2_trigger_errored_tracing (self ):
@@ -383,59 +339,15 @@ def test_api_gateway_v2_trigger_errored_tracing(self):
383339 self .create_agent_and_setup_tracer ()
384340
385341 result = lambda_handler (event , self .context )
386-
387- assert isinstance (result , dict )
388- assert 'headers' in result
389- assert 'Server-Timing' in result ['headers' ]
390-
391342 time .sleep (1 )
392343 payload = self .agent .collector .prepare_payload ()
344+ self .__validate_result_and_payload_for_gateway_v2_trace (result , payload )
393345
394- self .assertTrue ("metrics" in payload )
395- self .assertTrue ("spans" in payload )
396- self .assertEqual (2 , len (payload .keys ()))
397-
398- self .assertTrue (isinstance (payload ['metrics' ]['plugins' ], list ))
399- self .assertTrue (len (payload ['metrics' ]['plugins' ]) == 1 )
400- plugin_data = payload ['metrics' ]['plugins' ][0 ]
401-
402- self .assertEqual ('com.instana.plugin.aws.lambda' , plugin_data ['name' ])
403- self .assertEqual ('arn:aws:lambda:us-east-2:12345:function:TestPython:1' , plugin_data ['entityId' ])
404-
405- self .assertEqual (1 , len (payload ['spans' ]))
406-
346+ self .assertEqual (500 , result ['statusCode' ])
407347 span = payload ['spans' ][0 ]
408- self .assertEqual ('aws.lambda.entry' , span .n )
409- self .assertEqual ('0000000000001234' , span .t )
410- self .assertIsNotNone (span .s )
411- self .assertEqual ('0000000000004567' , span .p )
412- self .assertIsNotNone (span .ts )
413- self .assertIsNotNone (span .d )
414-
415- server_timing_value = "intid;desc=%s" % span .t
416- assert result ['headers' ]['Server-Timing' ] == server_timing_value
417-
418- self .assertEqual ({'hl' : True , 'cp' : 'aws' , 'e' : 'arn:aws:lambda:us-east-2:12345:function:TestPython:1' },
419- span .f )
420-
421- self .assertTrue (span .sy )
422-
423348 self .assertEqual (1 , span .ec )
424349 self .assertEqual ('HTTP status 500' , span .data ['lambda' ]['error' ])
425-
426- self .assertEqual ('arn:aws:lambda:us-east-2:12345:function:TestPython:1' , span .data ['lambda' ]['arn' ])
427- self .assertEqual (None , span .data ['lambda' ]['alias' ])
428- self .assertEqual ('python' , span .data ['lambda' ]['runtime' ])
429- self .assertEqual ('TestPython' , span .data ['lambda' ]['functionName' ])
430- self .assertEqual ('1' , span .data ['lambda' ]['functionVersion' ])
431- self .assertIsNone (span .data ['service' ])
432-
433- self .assertEqual ('aws:api.gateway' , span .data ['lambda' ]['trigger' ])
434- self .assertEqual ('POST' , span .data ['http' ]['method' ])
435350 self .assertEqual (500 , span .data ['http' ]['status' ])
436- self .assertEqual ('/my/path' , span .data ['http' ]['url' ])
437- self .assertEqual ('/my/{resource}' , span .data ['http' ]['path_tpl' ])
438- self .assertEqual ("secret=key&q=term" , span .data ['http' ]['params' ])
439351
440352
441353 def test_application_lb_trigger_tracing (self ):
@@ -801,3 +713,52 @@ def test_agent_custom_log_level(self):
801713 os .environ ['INSTANA_LOG_LEVEL' ] = "eRror"
802714 self .create_agent_and_setup_tracer ()
803715 assert self .agent .options .log_level == logging .ERROR
716+
717+ def __validate_result_and_payload_for_gateway_v2_trace (self , result , payload ):
718+ self .assertIsInstance (result , dict )
719+ self .assertIn ('headers' , result )
720+ self .assertIn ('Server-Timing' , result ['headers' ])
721+ self .assertIn ('statusCode' , result )
722+
723+ self .assertTrue ("metrics" in payload )
724+ self .assertTrue ("spans" in payload )
725+ self .assertEqual (2 , len (payload .keys ()))
726+
727+ self .assertTrue (isinstance (payload ['metrics' ]['plugins' ], list ))
728+ self .assertTrue (len (payload ['metrics' ]['plugins' ]) == 1 )
729+ plugin_data = payload ['metrics' ]['plugins' ][0 ]
730+
731+ self .assertEqual ('com.instana.plugin.aws.lambda' , plugin_data ['name' ])
732+ self .assertEqual ('arn:aws:lambda:us-east-2:12345:function:TestPython:1' , plugin_data ['entityId' ])
733+
734+ self .assertEqual (1 , len (payload ['spans' ]))
735+
736+ span = payload ['spans' ][0 ]
737+ self .assertEqual ('aws.lambda.entry' , span .n )
738+ self .assertEqual ('0000000000001234' , span .t )
739+ self .assertIsNotNone (span .s )
740+ self .assertEqual ('0000000000004567' , span .p )
741+ self .assertIsNotNone (span .ts )
742+ self .assertIsNotNone (span .d )
743+
744+ server_timing_value = "intid;desc=%s" % span .t
745+ assert result ['headers' ]['Server-Timing' ] == server_timing_value
746+
747+ self .assertEqual ({'hl' : True , 'cp' : 'aws' , 'e' : 'arn:aws:lambda:us-east-2:12345:function:TestPython:1' },
748+ span .f )
749+
750+ self .assertTrue (span .sy )
751+
752+
753+ self .assertEqual ('arn:aws:lambda:us-east-2:12345:function:TestPython:1' , span .data ['lambda' ]['arn' ])
754+ self .assertEqual (None , span .data ['lambda' ]['alias' ])
755+ self .assertEqual ('python' , span .data ['lambda' ]['runtime' ])
756+ self .assertEqual ('TestPython' , span .data ['lambda' ]['functionName' ])
757+ self .assertEqual ('1' , span .data ['lambda' ]['functionVersion' ])
758+ self .assertIsNone (span .data ['service' ])
759+
760+ self .assertEqual ('aws:api.gateway' , span .data ['lambda' ]['trigger' ])
761+ self .assertEqual ('POST' , span .data ['http' ]['method' ])
762+ self .assertEqual ('/my/path' , span .data ['http' ]['url' ])
763+ self .assertEqual ('/my/{resource}' , span .data ['http' ]['path_tpl' ])
764+ self .assertEqual ("secret=key&q=term" , span .data ['http' ]['params' ])
0 commit comments