|
10 | 10 | from datadog_lambda.constants import SamplingPriority, TraceHeader, XraySubsegment
|
11 | 11 | from datadog_lambda.tracing import (
|
12 | 12 | extract_dd_trace_context,
|
| 13 | + create_function_execution_span, |
13 | 14 | get_dd_trace_context,
|
14 | 15 | set_correlation_ids,
|
15 | 16 | _convert_xray_trace_id,
|
16 | 17 | _convert_xray_entity_id,
|
17 | 18 | _convert_xray_sampling,
|
18 | 19 | )
|
19 | 20 |
|
| 21 | +function_arn = "arn:aws:lambda:us-west-1:123457598159:function:python-layer-test" |
| 22 | + |
| 23 | + |
| 24 | +def get_mock_context( |
| 25 | + aws_request_id="request-id-1", |
| 26 | + memory_limit_in_mb="256", |
| 27 | + invoked_function_arn=function_arn, |
| 28 | + function_version="1", |
| 29 | +): |
| 30 | + lambda_context = MagicMock() |
| 31 | + lambda_context.aws_request_id = aws_request_id |
| 32 | + lambda_context.memory_limit_in_mb = memory_limit_in_mb |
| 33 | + lambda_context.invoked_function_arn = invoked_function_arn |
| 34 | + lambda_context.function_version = function_version |
| 35 | + return lambda_context |
| 36 | + |
20 | 37 |
|
21 | 38 | class TestExtractAndGetDDTraceContext(unittest.TestCase):
|
22 | 39 | def setUp(self):
|
@@ -195,3 +212,27 @@ def test_set_correlation_ids(self):
|
195 | 212 | trace_id, span_id = get_correlation_ids()
|
196 | 213 | self.assertEqual(trace_id, "123")
|
197 | 214 | self.assertEqual(span_id, "456")
|
| 215 | + |
| 216 | + |
| 217 | +class TestFunctionSpanTags(unittest.TestCase): |
| 218 | + def test_function(self): |
| 219 | + ctx = get_mock_context() |
| 220 | + span = create_function_execution_span(ctx, "", False, {"source": ""}, False) |
| 221 | + self.assertEqual(span.get_tag("function_arn"), function_arn) |
| 222 | + self.assertEqual(span.get_tag("function_version"), "$LATEST") |
| 223 | + |
| 224 | + def test_function_with_version(self): |
| 225 | + function_version = "1" |
| 226 | + ctx = get_mock_context( |
| 227 | + invoked_function_arn=function_arn + ":" + function_version |
| 228 | + ) |
| 229 | + span = create_function_execution_span(ctx, "", False, {"source": ""}, False) |
| 230 | + self.assertEqual(span.get_tag("function_arn"), function_arn) |
| 231 | + self.assertEqual(span.get_tag("function_version"), function_version) |
| 232 | + |
| 233 | + def test_function_with_alias(self): |
| 234 | + function_alias = "alias" |
| 235 | + ctx = get_mock_context(invoked_function_arn=function_arn + ":" + function_alias) |
| 236 | + span = create_function_execution_span(ctx, "", False, {"source": ""}, False) |
| 237 | + self.assertEqual(span.get_tag("function_arn"), function_arn) |
| 238 | + self.assertEqual(span.get_tag("function_version"), function_alias) |
0 commit comments