Skip to content

Commit 7b67123

Browse files
committed
use env var
1 parent b8ff6fb commit 7b67123

File tree

2 files changed

+61
-10
lines changed

2 files changed

+61
-10
lines changed

datadog_lambda/tracing.py

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -858,19 +858,24 @@ def create_service_mapping(val):
858858

859859

860860
def determine_service_name(
861-
service_mapping, specific_key, generic_key, default_value, fallback=None
861+
service_mapping, specific_key, generic_key, extracted_key, fallback=None
862862
):
863-
service_name = service_mapping.get(specific_key)
864-
if service_name is None:
865-
service_name = service_mapping.get(
866-
generic_key,
867-
default_value if default_value is not None else fallback,
868-
)
869-
return service_name
863+
# Check for mapped service (specific key first, then generic key)
864+
mapped_service = service_mapping.get(specific_key) or service_mapping.get(generic_key)
865+
if mapped_service:
866+
return mapped_service
867+
868+
# Check if AWS service representation is disabled
869+
aws_service_representation = os.environ.get("DD_TRACE_AWS_SERVICE_REPRESENTATION_ENABLED", "").lower()
870+
if aws_service_representation in ("false", "0"):
871+
return fallback
872+
873+
# Use extracted_key if it exists and is not empty, otherwise use fallback
874+
return extracted_key.strip() if extracted_key and extracted_key.strip() else fallback
870875

871876

872877
# Initialization code
873-
service_mapping_str = os.getenv("DD_SERVICE_MAPPING", "")
878+
service_mapping_str = os.environ.get("DD_SERVICE_MAPPING", "")
874879
service_mapping = create_service_mapping(service_mapping_str)
875880

876881
_dd_origin = {"_dd.origin": "lambda"}
@@ -1443,9 +1448,19 @@ def create_function_execution_span(
14431448
tags["_dd.parent_source"] = trace_context_source
14441449
tags.update(trigger_tags)
14451450
tracer.set_tags(_dd_origin)
1451+
# Determine service name based on config and env var
1452+
if config.service:
1453+
service_name = config.service
1454+
else:
1455+
aws_service_representation = os.environ.get("DD_TRACE_AWS_SERVICE_REPRESENTATION_ENABLED", "").lower()
1456+
if aws_service_representation in ("false", "0"):
1457+
service_name = "aws.lambda"
1458+
else:
1459+
service_name = function_name if function_name else "aws.lambda"
1460+
14461461
span = tracer.trace(
14471462
"aws.lambda",
1448-
service=config.service if config.service else function_name,
1463+
service=service_name,
14491464
resource=function_name,
14501465
span_type="serverless",
14511466
)

tests/test_tracing.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1283,6 +1283,42 @@ def test_determine_service_name(self):
12831283
),
12841284
"default",
12851285
)
1286+
1287+
# Test with DD_TRACE_AWS_SERVICE_REPRESENTATION_ENABLED set to false
1288+
os.environ["DD_TRACE_AWS_SERVICE_REPRESENTATION_ENABLED"] = "false"
1289+
self.assertEqual(
1290+
determine_service_name(
1291+
self.get_service_mapping(), "api4", "api4", "extracted", "fallback"
1292+
),
1293+
"fallback",
1294+
)
1295+
1296+
# Test with DD_TRACE_AWS_SERVICE_REPRESENTATION_ENABLED set to 0
1297+
os.environ["DD_TRACE_AWS_SERVICE_REPRESENTATION_ENABLED"] = "0"
1298+
self.assertEqual(
1299+
determine_service_name(
1300+
self.get_service_mapping(), "api4", "api4", "extracted", "fallback"
1301+
),
1302+
"fallback",
1303+
)
1304+
1305+
# Test with DD_TRACE_AWS_SERVICE_REPRESENTATION_ENABLED not set (default behavior)
1306+
if "DD_TRACE_AWS_SERVICE_REPRESENTATION_ENABLED" in os.environ:
1307+
del os.environ["DD_TRACE_AWS_SERVICE_REPRESENTATION_ENABLED"]
1308+
self.assertEqual(
1309+
determine_service_name(
1310+
self.get_service_mapping(), "api4", "api4", "extracted", "fallback"
1311+
),
1312+
"extracted",
1313+
)
1314+
1315+
# Test with empty extracted key
1316+
self.assertEqual(
1317+
determine_service_name(
1318+
self.get_service_mapping(), "api4", "api4", " ", "fallback"
1319+
),
1320+
"fallback",
1321+
)
12861322

12871323
del os.environ["DD_SERVICE_MAPPING"]
12881324

0 commit comments

Comments
 (0)