Skip to content

Commit

Permalink
Set ai.user.useragent to userAgentOriginal (#37571)
Browse files Browse the repository at this point in the history
* Set ai.user.useragent to userAgentOriginal

* Update sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/src/Customizations/Models/TelemetryItem.cs

Co-authored-by: Timothy Mothra <[email protected]>

* fix build

---------

Co-authored-by: Timothy Mothra <[email protected]>
  • Loading branch information
vishweshbankwar and TimothyMothra authored Jul 12, 2023
1 parent 5427282 commit 0bd39f2
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -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.AttributeHttpUserAgent)?.ToString();
var userAgent = AzMonList.GetTagValue(ref activityTagsProcessor.MappedTags, SemanticConventions.AttributeUserAgentOriginal)?.ToString()
?? AzMonList.GetTagValue(ref activityTagsProcessor.MappedTags, SemanticConventions.AttributeHttpUserAgent)?.ToString();

if (userAgent != null)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,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()
{
Expand Down

0 comments on commit 0bd39f2

Please sign in to comment.