From c66e302aa4104b16cb9bc9287a73e16f26f46b29 Mon Sep 17 00:00:00 2001 From: Steven Bouwkamp Date: Wed, 3 Jul 2024 11:15:21 -0400 Subject: [PATCH] Correctly set activityKey --- .../Handlers/ActivityHandlerCommon.cs | 11 +++++----- .../OpenTelemetrySdkTests.cs | 21 +++---------------- .../OpenTelemetrySdkTests.verified.txt | 14 +++++++------ ...trySdkTestsWithActivitySource.verified.txt | 14 +++++++------ ...Tests_withLegacyOperationName.verified.txt | 14 +++++++------ 5 files changed, 33 insertions(+), 41 deletions(-) diff --git a/tracer/src/Datadog.Trace/Activity/Handlers/ActivityHandlerCommon.cs b/tracer/src/Datadog.Trace/Activity/Handlers/ActivityHandlerCommon.cs index 20eaca39f2dc..5adc98b6e7bc 100644 --- a/tracer/src/Datadog.Trace/Activity/Handlers/ActivityHandlerCommon.cs +++ b/tracer/src/Datadog.Trace/Activity/Handlers/ActivityHandlerCommon.cs @@ -58,11 +58,6 @@ public static void ActivityStarted(string sourceName, T activity, OpenTelemet var activityTraceId = w3cActivity.TraceId; var activitySpanId = w3cActivity.SpanId; - if (activityTraceId != null! && activitySpanId != null!) - { - activityKey = activityTraceId + activitySpanId; - } - // If the user has specified a parent context, get the parent Datadog SpanContext if (w3cActivity is { ParentSpanId: { } parentSpanId, ParentId: { } parentId }) { @@ -110,6 +105,7 @@ public static void ActivityStarted(string sourceName, T activity, OpenTelemet { // TraceId (always 32 chars long even when using 64-bit ids) w3cActivity.TraceId = activeSpan.Context.RawTraceId; + activityTraceId = w3cActivity.TraceId; // SpanId (always 16 chars long) w3cActivity.ParentSpanId = activeSpan.Context.RawSpanId; @@ -137,6 +133,11 @@ public static void ActivityStarted(string sourceName, T activity, OpenTelemet rawTraceId = activityTraceId; rawSpanId = activitySpanId; } + + if (activityTraceId != null! && activitySpanId != null!) + { + activityKey = activityTraceId + activitySpanId; + } } try diff --git a/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/OpenTelemetrySdkTests.cs b/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/OpenTelemetrySdkTests.cs index 608fdefcd236..91b40a7f368e 100644 --- a/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/OpenTelemetrySdkTests.cs +++ b/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/OpenTelemetrySdkTests.cs @@ -118,16 +118,8 @@ public async Task SubmitsTraces(string packageVersion, bool legacyOperationNames var otelSpans = spans.Where(s => s.Service == "MyServiceName"); var activitySourceSpans = spans.Where(s => s.Service == CustomServiceName); - if (string.IsNullOrEmpty(packageVersion) || new Version(packageVersion) >= new Version("1.7.0")) - { - otelSpans.Count().Should().Be(expectedSpanCount - 3); // there is another span w/ service == ServiceNameOverride - activitySourceSpans.Count().Should().Be(2); - } - else - { - otelSpans.Count().Should().Be(expectedSpanCount - 2); // there is another span w/ service == ServiceNameOverride - activitySourceSpans.Count().Should().Be(1); - } + otelSpans.Count().Should().Be(expectedSpanCount - 2); // there is another span w/ service == ServiceNameOverride + activitySourceSpans.Count().Should().Be(1); ValidateIntegrationSpans(otelSpans, metadataSchemaVersion: "v0", expectedServiceName: "MyServiceName", isExternalSpan: false); ValidateIntegrationSpans(activitySourceSpans, metadataSchemaVersion: "v0", expectedServiceName: CustomServiceName, isExternalSpan: false); @@ -173,14 +165,7 @@ public async Task SubmitsTracesWithActivitySource(string packageVersion) using var s = new AssertionScope(); var otelSpans = spans.Where(s => s.Service == "MyServiceName"); - if (string.IsNullOrEmpty(packageVersion) || new Version(packageVersion) >= new Version("1.7.0")) - { - otelSpans.Count().Should().Be(expectedSpanCount - 2); // there is another span w/ service == ServiceNameOverride - } - else - { - otelSpans.Count().Should().Be(expectedSpanCount - 1); // there is another span w/ service == ServiceNameOverride - } + otelSpans.Count().Should().Be(expectedSpanCount - 1); // there is another span w/ service == ServiceNameOverride ValidateIntegrationSpans(otelSpans, metadataSchemaVersion: "v0", expectedServiceName: "MyServiceName", isExternalSpan: false); diff --git a/tracer/test/snapshots/OpenTelemetrySdkTests.verified.txt b/tracer/test/snapshots/OpenTelemetrySdkTests.verified.txt index e1845753ef19..ee37bf3d8b14 100644 --- a/tracer/test/snapshots/OpenTelemetrySdkTests.verified.txt +++ b/tracer/test/snapshots/OpenTelemetrySdkTests.verified.txt @@ -689,7 +689,7 @@ SpanId: Id_29, Name: internal, Resource: StartRootSpan, - Service: CustomServiceName, + Service: MyServiceName, Type: custom, ParentId: Id_26, Tags: { @@ -698,12 +698,14 @@ otel.library.name: MyServiceName, otel.status_code: STATUS_CODE_UNSET, otel.trace_id: Guid_4, - runtime-id: Guid_2, + service.instance.id: Guid_3, + service.name: MyServiceName, + service.version: 1.0.x, span.kind: internal, - version: 1.0.x - }, - Metrics: { - _dd.top_level: 1.0 + telemetry.sdk.language: dotnet, + telemetry.sdk.name: opentelemetry, + telemetry.sdk.version: sdk-version, + _dd.base_service: CustomServiceName } }, { diff --git a/tracer/test/snapshots/OpenTelemetrySdkTestsWithActivitySource.verified.txt b/tracer/test/snapshots/OpenTelemetrySdkTestsWithActivitySource.verified.txt index f17d114f931d..1694d899e2d3 100644 --- a/tracer/test/snapshots/OpenTelemetrySdkTestsWithActivitySource.verified.txt +++ b/tracer/test/snapshots/OpenTelemetrySdkTestsWithActivitySource.verified.txt @@ -689,7 +689,7 @@ SpanId: Id_29, Name: internal, Resource: StartRootSpan, - Service: CustomServiceName, + Service: MyServiceName, Type: custom, ParentId: Id_26, Tags: { @@ -698,12 +698,14 @@ otel.library.name: MyServiceName, otel.status_code: STATUS_CODE_UNSET, otel.trace_id: Guid_4, - runtime-id: Guid_2, + service.instance.id: Guid_3, + service.name: MyServiceName, + service.version: 1.0.x, span.kind: internal, - version: 1.0.x - }, - Metrics: { - _dd.top_level: 1.0 + telemetry.sdk.language: dotnet, + telemetry.sdk.name: opentelemetry, + telemetry.sdk.version: sdk-version, + _dd.base_service: CustomServiceName } }, { diff --git a/tracer/test/snapshots/OpenTelemetrySdkTests_withLegacyOperationName.verified.txt b/tracer/test/snapshots/OpenTelemetrySdkTests_withLegacyOperationName.verified.txt index 9c751b1f9369..4463aa785390 100644 --- a/tracer/test/snapshots/OpenTelemetrySdkTests_withLegacyOperationName.verified.txt +++ b/tracer/test/snapshots/OpenTelemetrySdkTests_withLegacyOperationName.verified.txt @@ -689,7 +689,7 @@ SpanId: Id_29, Name: MyServiceName.internal, Resource: StartRootSpan, - Service: CustomServiceName, + Service: MyServiceName, Type: custom, ParentId: Id_26, Tags: { @@ -698,12 +698,14 @@ otel.library.name: MyServiceName, otel.status_code: STATUS_CODE_UNSET, otel.trace_id: Guid_4, - runtime-id: Guid_2, + service.instance.id: Guid_3, + service.name: MyServiceName, + service.version: 1.0.x, span.kind: internal, - version: 1.0.x - }, - Metrics: { - _dd.top_level: 1.0 + telemetry.sdk.language: dotnet, + telemetry.sdk.name: opentelemetry, + telemetry.sdk.version: sdk-version, + _dd.base_service: CustomServiceName } }, {