From ad9695994b246780bd5179ccd927b31173d3f924 Mon Sep 17 00:00:00 2001 From: Vishwesh Bankwar Date: Wed, 12 Jul 2023 13:33:44 -0700 Subject: [PATCH 1/3] Set ai.user.useragent to userAgentOriginal --- .../Customizations/Models/TelemetryItem.cs | 2 +- .../TelemetryItemTests.cs | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/Customizations/Models/TelemetryItem.cs b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/Customizations/Models/TelemetryItem.cs index 3664fcb6e387..b4ae53d12efc 100644 --- a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/Customizations/Models/TelemetryItem.cs +++ b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/Customizations/Models/TelemetryItem.cs @@ -23,7 +23,7 @@ public TelemetryItem(Activity activity, ref ActivityTagsProcessor activityTagsPr Tags[ContextTagKeys.AiOperationId.ToString()] = activity.TraceId.ToHexString(); - var userAgent = AzMonList.GetTagValue(ref activityTagsProcessor.MappedTags, SemanticConventions.AttributeHttpUserAgent)?.ToString(); + var userAgent = AzMonList.GetTagValue(ref activityTagsProcessor.MappedTags, SemanticConventions.AttributeUserAgentOriginal)?.ToString() ?? AzMonList.GetTagValue(ref activityTagsProcessor.MappedTags, SemanticConventions.AttributeHttpUserAgent)?.ToString(); if (userAgent != null) { diff --git a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/TelemetryItemTests.cs b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/TelemetryItemTests.cs index 7ec1993fe449..208fbae27f13 100644 --- a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/TelemetryItemTests.cs +++ b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/tests/Azure.Monitor.OpenTelemetry.Exporter.Tests/TelemetryItemTests.cs @@ -245,6 +245,26 @@ public void AiUserAgentIsSetAsHttpUserAgent() Assert.Equal(userAgent, telemetryItem.Tags["ai.user.userAgent"]); } + [Fact] + public void AiUserAgentIsSetAsUserAgentOriginal() + { + using ActivitySource activitySource = new ActivitySource(ActivitySourceName); + using var activity = activitySource.StartActivity( + ActivityName, + ActivityKind.Server, + null, + startTime: DateTime.UtcNow); + + Assert.NotNull(activity); + var userAgent = "Mozilla / 5.0(Windows NT 10.0;WOW64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 91.0.4472.101 Safari / 537.36"; + activity.SetTag(SemanticConventions.AttributeUserAgentOriginal, userAgent); + + var activityTagsProcessor = TraceHelper.EnumerateActivityTags(activity); + var telemetryItem = new TelemetryItem(activity, ref activityTagsProcessor, null, string.Empty); + + Assert.Equal(userAgent, telemetryItem.Tags["ai.user.userAgent"]); + } + [Fact] public void AiLocationIpIsNullByDefault() { From 643e8dea7f2116595ba371a932cb85e588f309d4 Mon Sep 17 00:00:00 2001 From: Vishwesh Bankwar Date: Wed, 12 Jul 2023 14:47:01 -0700 Subject: [PATCH 2/3] Update sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/Customizations/Models/TelemetryItem.cs Co-authored-by: Timothy Mothra --- .../src/Customizations/Models/TelemetryItem.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/Customizations/Models/TelemetryItem.cs b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/Customizations/Models/TelemetryItem.cs index b4ae53d12efc..4270bad64c24 100644 --- a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/Customizations/Models/TelemetryItem.cs +++ b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/Customizations/Models/TelemetryItem.cs @@ -23,7 +23,8 @@ public TelemetryItem(Activity activity, ref ActivityTagsProcessor activityTagsPr Tags[ContextTagKeys.AiOperationId.ToString()] = activity.TraceId.ToHexString(); - var userAgent = AzMonList.GetTagValue(ref activityTagsProcessor.MappedTags, SemanticConventions.AttributeUserAgentOriginal)?.ToString() ?? AzMonList.GetTagValue(ref activityTagsProcessor.MappedTags, SemanticConventions.AttributeHttpUserAgent)?.ToString(); + var userAgent = AzMonList.GetTagValue(ref activityTagsProcessor.MappedTags, SemanticConventions.AttributeUserAgentOriginal)?.ToString() + ?? AzMonList.GetTagValue(ref activityTagsProcessor.MappedTags, SemanticConventions.AttributeHttpUserAgent)?.ToString(); if (userAgent != null) { From 82c59b4af5b11addf76d0e65dd49a2a35792fef7 Mon Sep 17 00:00:00 2001 From: Vishwesh Bankwar Date: Wed, 12 Jul 2023 15:29:00 -0700 Subject: [PATCH 3/3] fix build --- .../src/Customizations/Models/TelemetryItem.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/Customizations/Models/TelemetryItem.cs b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/Customizations/Models/TelemetryItem.cs index 4270bad64c24..d065d6d3119f 100644 --- a/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/Customizations/Models/TelemetryItem.cs +++ b/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/Customizations/Models/TelemetryItem.cs @@ -23,7 +23,7 @@ public TelemetryItem(Activity activity, ref ActivityTagsProcessor activityTagsPr Tags[ContextTagKeys.AiOperationId.ToString()] = activity.TraceId.ToHexString(); - var userAgent = AzMonList.GetTagValue(ref activityTagsProcessor.MappedTags, SemanticConventions.AttributeUserAgentOriginal)?.ToString() + var userAgent = AzMonList.GetTagValue(ref activityTagsProcessor.MappedTags, SemanticConventions.AttributeUserAgentOriginal)?.ToString() ?? AzMonList.GetTagValue(ref activityTagsProcessor.MappedTags, SemanticConventions.AttributeHttpUserAgent)?.ToString(); if (userAgent != null)