Skip to content

Commit 41b10fb

Browse files
authored
Map http.status_code to meta dictionary (#5782)
## Summary of changes This remaps the deprecated `http.status_code` tag to `meta` instead of `metrics` for OpenTelemetry. ## Reason for change This tag is supposed to be in `meta` but was going in `metrics` ## Implementation details Same as #5654 ## Test coverage Added test to validate that it went to `metrics` and then correctly goes to `meta`. System tests also have this. ## Other details <!-- Fixes #{issue} --> <!-- ⚠️ Note: where possible, please obtain 2 approvals prior to merging. Unless CODEOWNERS specifies otherwise, for external teams it is typically best to have one review from a team member, and one review from apm-dotnet. Trivial changes do not require 2 reviews. -->
1 parent 7bb3d31 commit 41b10fb

15 files changed

+424
-133
lines changed

tracer/src/Datadog.Trace/Activity/OtlpHelpers.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -339,8 +339,8 @@ internal static void SetTagObject(Span span, string key, object? value, bool all
339339
span.SetMetric(key, us);
340340
break;
341341
case int i: // TODO: Can't get here from OTEL API, test with Activity API
342-
// special case where we need to remap "http.response.status_code"
343-
if (key == "http.response.status_code")
342+
// special case where we need to remap "http.response.status_code" and the deprecated "http.status_code"
343+
if (key == "http.response.status_code" || key == "http.status_code")
344344
{
345345
span.SetTag(Tags.HttpStatusCode, i.ToString(CultureInfo.InvariantCulture));
346346
}

tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/OpenTelemetrySdkTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public async Task SubmitsTraces(string packageVersion, bool legacyOperationNames
109109
using (var agent = EnvironmentHelper.GetMockAgent())
110110
using (await RunSampleAndWaitForExit(agent, packageVersion: packageVersion))
111111
{
112-
const int expectedSpanCount = 37;
112+
const int expectedSpanCount = 38;
113113
var spans = agent.WaitForSpans(expectedSpanCount);
114114

115115
using var s = new AssertionScope();
@@ -159,7 +159,7 @@ public async Task SubmitsTracesWithActivitySource(string packageVersion)
159159
using (var agent = EnvironmentHelper.GetMockAgent())
160160
using (await RunSampleAndWaitForExit(agent, packageVersion: packageVersion))
161161
{
162-
const int expectedSpanCount = 37;
162+
const int expectedSpanCount = 38;
163163
var spans = agent.WaitForSpans(expectedSpanCount);
164164

165165
using var s = new AssertionScope();

tracer/test/snapshots/OpenTelemetrySdkTests.verified.txt

Lines changed: 36 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[
1+
[
22
{
33
TraceId: Id_1,
44
SpanId: Id_2,
@@ -820,6 +820,31 @@ at Samples.OpenTelemetrySdk.Program.RunSpanUpdateMethods(TelemetrySpan span),
820820
TraceId: Id_25,
821821
SpanId: Id_34,
822822
Name: internal,
823+
Resource: DeprecatedHttpStatusTagName,
824+
Service: MyServiceName,
825+
Type: custom,
826+
ParentId: Id_26,
827+
Tags: {
828+
env: integration_tests,
829+
http.status_code: 404,
830+
language: dotnet,
831+
otel.library.name: MyServiceName,
832+
otel.status_code: STATUS_CODE_UNSET,
833+
otel.trace_id: Guid_4,
834+
service.instance.id: Guid_3,
835+
service.name: MyServiceName,
836+
service.version: 1.0.x,
837+
span.kind: internal,
838+
telemetry.sdk.language: dotnet,
839+
telemetry.sdk.name: opentelemetry,
840+
telemetry.sdk.version: sdk-version,
841+
_dd.base_service: CustomServiceName
842+
}
843+
},
844+
{
845+
TraceId: Id_25,
846+
SpanId: Id_35,
847+
Name: internal,
823848
Resource: Response,
824849
Service: MyServiceName,
825850
Type: custom,
@@ -843,7 +868,7 @@ at Samples.OpenTelemetrySdk.Program.RunSpanUpdateMethods(TelemetrySpan span),
843868
},
844869
{
845870
TraceId: Id_25,
846-
SpanId: Id_35,
871+
SpanId: Id_36,
847872
Name: internal,
848873
Resource: StartActiveSpan.Child,
849874
Service: MyServiceName,
@@ -866,8 +891,8 @@ at Samples.OpenTelemetrySdk.Program.RunSpanUpdateMethods(TelemetrySpan span),
866891
}
867892
},
868893
{
869-
TraceId: Id_36,
870-
SpanId: Id_37,
894+
TraceId: Id_37,
895+
SpanId: Id_38,
871896
Name: internal,
872897
Resource: SayHello2,
873898
Service: MyServiceName,
@@ -904,8 +929,8 @@ at Samples.OpenTelemetrySdk.Program.RunSpanUpdateMethods(TelemetrySpan span),
904929
]
905930
},
906931
{
907-
TraceId: Id_38,
908-
SpanId: Id_39,
932+
TraceId: Id_39,
933+
SpanId: Id_40,
909934
Name: internal,
910935
Resource: SayHello3,
911936
Service: MyServiceName,
@@ -942,14 +967,14 @@ at Samples.OpenTelemetrySdk.Program.RunSpanUpdateMethods(TelemetrySpan span),
942967
{
943968
TraceIdHigh: LinkIdHigh,
944969
TraceIdLow: LinkIdLow,
945-
SpanId: Id_37,
970+
SpanId: Id_38,
946971
TraceFlags: 2147483649
947972
}
948973
]
949974
},
950975
{
951-
TraceId: Id_40,
952-
SpanId: Id_41,
976+
TraceId: Id_41,
977+
SpanId: Id_42,
953978
Name: internal,
954979
Resource: service.name should be the DefaultServiceName value,
955980
Service: CustomServiceName,
@@ -975,8 +1000,8 @@ at Samples.OpenTelemetrySdk.Program.RunSpanUpdateMethods(TelemetrySpan span),
9751000
}
9761001
},
9771002
{
978-
TraceId: Id_42,
979-
SpanId: Id_43,
1003+
TraceId: Id_43,
1004+
SpanId: Id_44,
9801005
Name: internal,
9811006
Resource: Transform,
9821007
Service: CustomServiceName,

tracer/test/snapshots/OpenTelemetrySdkTestsWithActivitySource.verified.txt

Lines changed: 36 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[
1+
[
22
{
33
TraceId: Id_1,
44
SpanId: Id_2,
@@ -820,6 +820,31 @@ at Samples.OpenTelemetrySdk.Program.RunSpanUpdateMethods(TelemetrySpan span),
820820
TraceId: Id_25,
821821
SpanId: Id_34,
822822
Name: internal,
823+
Resource: DeprecatedHttpStatusTagName,
824+
Service: MyServiceName,
825+
Type: custom,
826+
ParentId: Id_26,
827+
Tags: {
828+
env: integration_tests,
829+
http.status_code: 404,
830+
language: dotnet,
831+
otel.library.name: MyServiceName,
832+
otel.status_code: STATUS_CODE_UNSET,
833+
otel.trace_id: Guid_4,
834+
service.instance.id: Guid_3,
835+
service.name: MyServiceName,
836+
service.version: 1.0.x,
837+
span.kind: internal,
838+
telemetry.sdk.language: dotnet,
839+
telemetry.sdk.name: opentelemetry,
840+
telemetry.sdk.version: sdk-version,
841+
_dd.base_service: CustomServiceName
842+
}
843+
},
844+
{
845+
TraceId: Id_25,
846+
SpanId: Id_35,
847+
Name: internal,
823848
Resource: Response,
824849
Service: MyServiceName,
825850
Type: custom,
@@ -843,7 +868,7 @@ at Samples.OpenTelemetrySdk.Program.RunSpanUpdateMethods(TelemetrySpan span),
843868
},
844869
{
845870
TraceId: Id_25,
846-
SpanId: Id_35,
871+
SpanId: Id_36,
847872
Name: internal,
848873
Resource: StartActiveSpan.Child,
849874
Service: MyServiceName,
@@ -866,8 +891,8 @@ at Samples.OpenTelemetrySdk.Program.RunSpanUpdateMethods(TelemetrySpan span),
866891
}
867892
},
868893
{
869-
TraceId: Id_36,
870-
SpanId: Id_37,
894+
TraceId: Id_37,
895+
SpanId: Id_38,
871896
Name: internal,
872897
Resource: SayHello2,
873898
Service: MyServiceName,
@@ -904,8 +929,8 @@ at Samples.OpenTelemetrySdk.Program.RunSpanUpdateMethods(TelemetrySpan span),
904929
]
905930
},
906931
{
907-
TraceId: Id_38,
908-
SpanId: Id_39,
932+
TraceId: Id_39,
933+
SpanId: Id_40,
909934
Name: internal,
910935
Resource: SayHello3,
911936
Service: MyServiceName,
@@ -942,14 +967,14 @@ at Samples.OpenTelemetrySdk.Program.RunSpanUpdateMethods(TelemetrySpan span),
942967
{
943968
TraceIdHigh: LinkIdHigh,
944969
TraceIdLow: LinkIdLow,
945-
SpanId: Id_37,
970+
SpanId: Id_38,
946971
TraceFlags: 2147483649
947972
}
948973
]
949974
},
950975
{
951-
TraceId: Id_40,
952-
SpanId: Id_41,
976+
TraceId: Id_41,
977+
SpanId: Id_42,
953978
Name: internal,
954979
Resource: service.name should be the DefaultServiceName value,
955980
Service: CustomServiceName,
@@ -975,8 +1000,8 @@ at Samples.OpenTelemetrySdk.Program.RunSpanUpdateMethods(TelemetrySpan span),
9751000
}
9761001
},
9771002
{
978-
TraceId: Id_42,
979-
SpanId: Id_43,
1003+
TraceId: Id_43,
1004+
SpanId: Id_44,
9801005
Name: internal,
9811006
Resource: Transform,
9821007
Service: MyServiceName,

tracer/test/snapshots/OpenTelemetrySdkTestsWithActivitySource_1_0.verified.txt

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -727,6 +727,28 @@ at Samples.OpenTelemetrySdk.Program.RunSpanUpdateMethods(TelemetrySpan span),
727727
TraceId: Id_25,
728728
SpanId: Id_34,
729729
Name: internal,
730+
Resource: DeprecatedHttpStatusTagName,
731+
Service: MyServiceName,
732+
Type: custom,
733+
ParentId: Id_26,
734+
Tags: {
735+
env: integration_tests,
736+
http.status_code: 404,
737+
language: dotnet,
738+
otel.library.name: MyServiceName,
739+
otel.status_code: STATUS_CODE_UNSET,
740+
otel.trace_id: Guid_4,
741+
service.instance.id: Guid_3,
742+
service.name: MyServiceName,
743+
service.version: 1.0.x,
744+
span.kind: internal,
745+
_dd.base_service: CustomServiceName
746+
}
747+
},
748+
{
749+
TraceId: Id_25,
750+
SpanId: Id_35,
751+
Name: internal,
730752
Resource: Response,
731753
Service: MyServiceName,
732754
Type: custom,
@@ -747,7 +769,7 @@ at Samples.OpenTelemetrySdk.Program.RunSpanUpdateMethods(TelemetrySpan span),
747769
},
748770
{
749771
TraceId: Id_25,
750-
SpanId: Id_35,
772+
SpanId: Id_36,
751773
Name: internal,
752774
Resource: StartActiveSpan.Child,
753775
Service: MyServiceName,
@@ -767,8 +789,8 @@ at Samples.OpenTelemetrySdk.Program.RunSpanUpdateMethods(TelemetrySpan span),
767789
}
768790
},
769791
{
770-
TraceId: Id_36,
771-
SpanId: Id_37,
792+
TraceId: Id_37,
793+
SpanId: Id_38,
772794
Name: internal,
773795
Resource: SayHello2,
774796
Service: MyServiceName,
@@ -802,8 +824,8 @@ at Samples.OpenTelemetrySdk.Program.RunSpanUpdateMethods(TelemetrySpan span),
802824
]
803825
},
804826
{
805-
TraceId: Id_38,
806-
SpanId: Id_39,
827+
TraceId: Id_39,
828+
SpanId: Id_40,
807829
Name: internal,
808830
Resource: SayHello3,
809831
Service: MyServiceName,
@@ -837,14 +859,14 @@ at Samples.OpenTelemetrySdk.Program.RunSpanUpdateMethods(TelemetrySpan span),
837859
{
838860
TraceIdHigh: LinkIdHigh,
839861
TraceIdLow: LinkIdLow,
840-
SpanId: Id_37,
862+
SpanId: Id_38,
841863
TraceFlags: 2147483649
842864
}
843865
]
844866
},
845867
{
846-
TraceId: Id_40,
847-
SpanId: Id_41,
868+
TraceId: Id_41,
869+
SpanId: Id_42,
848870
Name: internal,
849871
Resource: service.name should be the DefaultServiceName value,
850872
Service: CustomServiceName,
@@ -867,8 +889,8 @@ at Samples.OpenTelemetrySdk.Program.RunSpanUpdateMethods(TelemetrySpan span),
867889
}
868890
},
869891
{
870-
TraceId: Id_42,
871-
SpanId: Id_43,
892+
TraceId: Id_43,
893+
SpanId: Id_44,
872894
Name: internal,
873895
Resource: Transform,
874896
Service: MyServiceName,

0 commit comments

Comments
 (0)