Skip to content

Commit eac3c15

Browse files
author
Andrew Slotin
authored
Use the 'headers' section as a trace context carrier when Lambda function is invoked via ELB and API Gateway (#248)
1 parent 0e46231 commit eac3c15

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

instana/instrumentation/aws/lambda_inst.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
def lambda_handler_with_instana(wrapped, instance, args, kwargs):
1616
event = args[0]
17-
context = args[1]
1817
agent = get_agent()
1918
tracer = get_tracer()
2019

instana/instrumentation/aws/triggers.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111

1212
def get_context(tracer, event):
1313
# TODO: Search for more types of trigger context
14+
if is_api_gateway_proxy_trigger(event) or is_application_load_balancer_trigger(event):
15+
return tracer.extract('http_headers', event['headers'])
16+
1417
return tracer.extract('http_headers', event)
1518

1619

tests/platforms/test_lambda.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -152,9 +152,9 @@ def test_custom_service_name(self):
152152

153153
span = payload['spans'][0]
154154
self.assertEqual('aws.lambda.entry', span.n)
155-
self.assertIsNotNone(span.t)
155+
self.assertEqual('d5cb361b256413a9', span.t)
156156
self.assertIsNotNone(span.s)
157-
self.assertIsNone(span.p)
157+
self.assertEqual('0901d8ae4fbf1529', span.p)
158158
self.assertIsNotNone(span.ts)
159159
self.assertIsNotNone(span.d)
160160

@@ -210,9 +210,9 @@ def test_api_gateway_trigger_tracing(self):
210210

211211
span = payload['spans'][0]
212212
self.assertEqual('aws.lambda.entry', span.n)
213-
self.assertIsNotNone(span.t)
213+
self.assertEqual('d5cb361b256413a9', span.t)
214214
self.assertIsNotNone(span.s)
215-
self.assertIsNone(span.p)
215+
self.assertEqual('0901d8ae4fbf1529', span.p)
216216
self.assertIsNotNone(span.ts)
217217
self.assertIsNotNone(span.d)
218218

@@ -267,9 +267,9 @@ def test_application_lb_trigger_tracing(self):
267267

268268
span = payload['spans'][0]
269269
self.assertEqual('aws.lambda.entry', span.n)
270-
self.assertIsNotNone(span.t)
270+
self.assertEqual('d5cb361b256413a9', span.t)
271271
self.assertIsNotNone(span.s)
272-
self.assertIsNone(span.p)
272+
self.assertEqual('0901d8ae4fbf1529', span.p)
273273
self.assertIsNotNone(span.ts)
274274
self.assertIsNotNone(span.d)
275275

0 commit comments

Comments
 (0)