Skip to content

Commit 660c550

Browse files
authored
[Serverless] Skip AAS metadata tagging when span is from API Management (#1409)
initial add log and test tag remove test tag add unit test initial add log and test tag remove test tag add unit test Merge branch 'storms/test-apim-tagging' of github.com:DataDog/libdatadog into storms/test-apim-tagging add test for non-azure-apim spans use to_lowercase remove to_lowercase Merge branch 'main' into storms/test-apim-tagging Co-authored-by: jordan.storms <[email protected]>
1 parent 5ecbaa0 commit 660c550

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

libdd-trace-utils/src/trace_utils.rs

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -550,6 +550,10 @@ pub fn enrich_span_with_google_cloud_function_metadata(
550550
}
551551

552552
pub fn enrich_span_with_azure_function_metadata(span: &mut pb::Span) {
553+
if span.name == "azure.apim" {
554+
return;
555+
}
556+
553557
if let Some(aas_metadata) = &*azure_app_services::AAS_METADATA_FUNCTION {
554558
let aas_tags = [
555559
("aas.resource.id", aas_metadata.get_resource_id()),
@@ -1248,4 +1252,52 @@ mod tests {
12481252
"Null value should be skipped, but key was present"
12491253
);
12501254
}
1255+
1256+
#[test]
1257+
fn test_enrich_span_with_azure_function_metadata_adds_tags_for_non_apim() {
1258+
let mut span = create_test_span(1234, 12342, 12341, 1, false);
1259+
span.name = "azure.function".to_string();
1260+
1261+
enrich_span_with_azure_function_metadata(&mut span);
1262+
1263+
// If AAS_METADATA_FUNCTION is available, verify aas.* tags were added
1264+
// If not available (most test environments), this is a no-op
1265+
// This test primarily ensures the function doesn't skip non-apim spans
1266+
if azure_app_services::AAS_METADATA_FUNCTION.is_some() {
1267+
assert!(span.meta.contains_key("aas.resource.id"));
1268+
assert!(span.meta.contains_key("aas.environment.instance_id"));
1269+
assert!(span.meta.contains_key("aas.environment.instance_name"));
1270+
assert!(span.meta.contains_key("aas.subscription.id"));
1271+
assert!(span.meta.contains_key("aas.environment.os"));
1272+
assert!(span.meta.contains_key("aas.environment.runtime"));
1273+
assert!(span.meta.contains_key("aas.environment.runtime_version"));
1274+
assert!(span.meta.contains_key("aas.environment.function_runtime"));
1275+
assert!(span.meta.contains_key("aas.resource.group"));
1276+
assert!(span.meta.contains_key("aas.site.name"));
1277+
assert!(span.meta.contains_key("aas.site.kind"));
1278+
assert!(span.meta.contains_key("aas.site.type"));
1279+
}
1280+
}
1281+
1282+
#[test]
1283+
fn test_enrich_span_with_azure_function_metadata_skips_azure_apim() {
1284+
let mut span = create_test_span(1234, 12342, 12341, 1, false);
1285+
span.name = "azure.apim".to_string();
1286+
1287+
enrich_span_with_azure_function_metadata(&mut span);
1288+
1289+
// Verify no aas.* tags were added
1290+
assert!(!span.meta.contains_key("aas.resource.id"));
1291+
assert!(!span.meta.contains_key("aas.environment.instance_id"));
1292+
assert!(!span.meta.contains_key("aas.environment.instance_name"));
1293+
assert!(!span.meta.contains_key("aas.subscription.id"));
1294+
assert!(!span.meta.contains_key("aas.environment.os"));
1295+
assert!(!span.meta.contains_key("aas.environment.runtime"));
1296+
assert!(!span.meta.contains_key("aas.environment.runtime_version"));
1297+
assert!(!span.meta.contains_key("aas.environment.function_runtime"));
1298+
assert!(!span.meta.contains_key("aas.resource.group"));
1299+
assert!(!span.meta.contains_key("aas.site.name"));
1300+
assert!(!span.meta.contains_key("aas.site.kind"));
1301+
assert!(!span.meta.contains_key("aas.site.type"));
1302+
}
12511303
}

0 commit comments

Comments
 (0)