Skip to content

Commit fe56ee3

Browse files
committed
fix(lambda): Record the statusCode when available
Signed-off-by: Ferenc Géczi <[email protected]>
1 parent d940ae1 commit fe56ee3

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

instana/instrumentation/aws/lambda_inst.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"""
77
import sys
88
import wrapt
9+
import opentracing.ext.tags as ext
910

1011
from ...log import logger
1112
from ...singletons import env_is_aws_lambda
@@ -35,6 +36,8 @@ def lambda_handler_with_instana(wrapped, instance, args, kwargs):
3536
result['headers']['Server-Timing'] = server_timing_value
3637
elif 'multiValueHeaders' in result:
3738
result['multiValueHeaders']['Server-Timing'] = [server_timing_value]
39+
if 'statusCode' in result:
40+
scope.span.set_tag(ext.HTTP_STATUS_CODE, int(result['statusCode']))
3841
except Exception as exc:
3942
if scope.span:
4043
exc = traceback.format_exc()

tests/platforms/test_lambda.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,7 @@ def test_custom_service_name(self):
230230

231231
self.assertEqual('aws:api.gateway', span.data['lambda']['trigger'])
232232
self.assertEqual('POST', span.data['http']['method'])
233+
self.assertEqual(200, span.data['http']['status'])
233234
self.assertEqual('/path/to/resource', span.data['http']['url'])
234235
self.assertEqual('/{proxy+}', span.data['http']['path_tpl'])
235236
self.assertEqual("foo=['bar']", span.data['http']['params'])
@@ -293,6 +294,7 @@ def test_api_gateway_trigger_tracing(self):
293294

294295
self.assertEqual('aws:api.gateway', span.data['lambda']['trigger'])
295296
self.assertEqual('POST', span.data['http']['method'])
297+
self.assertEqual(200, span.data['http']['status'])
296298
self.assertEqual('/path/to/resource', span.data['http']['url'])
297299
self.assertEqual('/{proxy+}', span.data['http']['path_tpl'])
298300
self.assertEqual("foo=['bar']", span.data['http']['params'])
@@ -356,6 +358,7 @@ def test_api_gateway_v2_trigger_tracing(self):
356358

357359
self.assertEqual('aws:api.gateway', span.data['lambda']['trigger'])
358360
self.assertEqual('POST', span.data['http']['method'])
361+
self.assertEqual(200, span.data['http']['status'])
359362
self.assertEqual('/my/path', span.data['http']['url'])
360363
self.assertEqual('/my/{resource}', span.data['http']['path_tpl'])
361364
self.assertEqual("secret=key&q=term", span.data['http']['params'])
@@ -420,6 +423,7 @@ def test_application_lb_trigger_tracing(self):
420423

421424
self.assertEqual('aws:api.gateway', span.data['lambda']['trigger'])
422425
self.assertEqual('POST', span.data['http']['method'])
426+
self.assertEqual(200, span.data['http']['status'])
423427
self.assertEqual('/path/to/resource', span.data['http']['url'])
424428
self.assertEqual("foo=['bar']", span.data['http']['params'])
425429

0 commit comments

Comments
 (0)