Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Produce ActivitySource events #23192

Merged
merged 44 commits into from
Sep 27, 2021
Merged
Show file tree
Hide file tree
Changes from 37 commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
3ce03d4
Produce ActivitySource events
pakrym Oct 23, 2020
3f5966a
progress
pakrym Oct 26, 2020
ed2ff19
tests and more implementation
pakrym Oct 26, 2020
4d763a3
More tests
pakrym Oct 27, 2020
75960bd
...
pakrym Oct 27, 2020
4f6c272
Passes with reflection
pakrym Oct 27, 2020
0950319
more compiled
pakrym Oct 28, 2020
6682c7a
All compiled
pakrym Oct 28, 2020
5fb2a7f
nit
pakrym Oct 28, 2020
c643482
Merge remote-tracking branch 'azure/master' into pakrym/Produce-Activ…
pakrym Oct 28, 2020
6fff589
Merge remote-tracking branch 'azure/master' into pakrym/Produce-Activ…
pakrym Dec 9, 2020
cc071b4
add kind support
pakrym Dec 9, 2020
cfabfcc
Merge remote-tracking branch 'azure/master' into pakrym/Produce-Activ…
pakrym Jan 27, 2021
1aceaf4
Merge branch 'master' into pakrym/Produce-ActivitySource-events
pakrym Jan 28, 2021
1404a25
tests
pakrym Jan 28, 2021
2b51470
Migrate RequestActivityPolicy, add tests
pakrym Jan 28, 2021
2feee56
doc
pakrym Jan 28, 2021
9c7164b
Azure.Core.TestFramework.csproj
pakrym Jan 28, 2021
5ec95c9
Skip invalid parentIds
pakrym Jan 29, 2021
2ba385c
fix nesting
pakrym Jan 29, 2021
7035098
Let the new DiagnosticSource package dependency come in naturally in …
pakrym Jan 30, 2021
33738fe
Merge remote-tracking branch 'azure/master' into pakrym/Produce-Activ…
pakrym Mar 9, 2021
05d373f
merge scopes
pakrym Mar 9, 2021
8ec568d
tests
pakrym Mar 9, 2021
e7f44df
usages
pakrym Mar 10, 2021
fd4f9b7
Merge remote-tracking branch 'azure/master' into pakrym/Produce-Activ…
pakrym May 14, 2021
4a64234
Merge branch 'main' into pakrym/Produce-ActivitySource-events
pakrym Aug 6, 2021
01fbb99
...
pakrym Aug 10, 2021
1a096d4
Merge remote-tracking branch 'azure/main' into pakrym/Produce-Activit…
pakrym Sep 16, 2021
5ed859e
more
pakrym Sep 16, 2021
df11cc9
projes
pakrym Sep 16, 2021
8642079
more better tests and switch
pakrym Sep 16, 2021
372e0b7
down
pakrym Sep 17, 2021
efc12ec
Merge remote-tracking branch 'azure/main' into pakrym/Produce-Activit…
pakrym Sep 17, 2021
515fb48
more
pakrym Sep 17, 2021
3528b94
Merge remote-tracking branch 'azure/main' into pakrym/Produce-Activit…
pakrym Sep 17, 2021
ff1b90b
fix RequestActivityPolicyTest
pakrym Sep 17, 2021
a7753ad
start time/end time fixes
pakrym Sep 17, 2021
f383bb6
fb and revert versions
pakrym Sep 18, 2021
5cd9afb
Move enabled check to a less static place
pakrym Sep 20, 2021
428e06a
Merge remote-tracking branch 'azure/main' into pakrym/Produce-Activit…
pakrym Sep 20, 2021
13bbd7f
Merge remote-tracking branch 'azure/main' into pakrym/Produce-Activit…
pakrym Sep 20, 2021
0b2dd55
Merge remote-tracking branch 'azure/main' into pakrym/Produce-Activit…
pakrym Sep 27, 2021
da9794b
builds
pakrym Sep 27, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions eng/Directory.Build.Common.targets
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@
<PackageReference Include="System.Text.Json" />

<!-- TODO: Review these file references-->
<Compile Include="$(AzureCoreSharedSources)AppContextSwitchHelper.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ArrayBufferWriter.cs" Link="Shared\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="$(AzureCoreSharedSources)ClientDiagnostics.cs" Link="Shared\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="$(AzureCoreSharedSources)ContentTypeUtilities.cs" Link="Shared\%(RecursiveDir)\%(Filename)%(Extension)" />
Expand Down
2 changes: 1 addition & 1 deletion eng/Packages.Data.props
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@
All should have PrivateAssets="All" set so they don't become pacakge dependencies
-->
<ItemGroup>
<PackageReference Update="Microsoft.Azure.AutoRest.CSharp" Version="3.0.0-beta.20210915.2" PrivateAssets="All" />
<PackageReference Update="Microsoft.Azure.AutoRest.CSharp" Version="3.0.0-beta.20210913.4" PrivateAssets="All" />
<PackageReference Update="Azure.ClientSdk.Analyzers" Version="0.1.1-dev.20210601.1" PrivateAssets="All" />
<PackageReference Update="coverlet.collector" Version="1.3.0" PrivateAssets="All" />
<PackageReference Update="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.3.1" PrivateAssets="All" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

<!-- Shared source from Azure.Core -->
<ItemGroup>
<Compile Include="$(AzureCoreSharedSources)AppContextSwitchHelper.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ArrayBufferWriter.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)Argument.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)AzureKeyCredentialPolicy.cs" LinkBase="Shared" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

<!-- Shared source from Azure.Core -->
<ItemGroup>
<Compile Include="$(AzureCoreSharedSources)AppContextSwitchHelper.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)Argument.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ArrayBufferWriter.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)AzureKeyCredentialPolicy.cs" LinkBase="Shared" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
</ItemGroup>

<ItemGroup>
<Compile Include="$(AzureCoreSharedSources)AppContextSwitchHelper.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)Argument.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)AzureResourceProviderNamespaceAttribute.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ConnectionString.cs" LinkBase="Shared" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

<!-- Shared source from Azure.Core -->
<ItemGroup>
<Compile Include="$(AzureCoreSharedSources)AppContextSwitchHelper.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)Argument.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ArrayBufferWriter.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ClientDiagnostics.cs" LinkBase="Shared" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

<!-- Shared source from Azure.Core -->
<ItemGroup>
<Compile Include="$(AzureCoreSharedSources)AppContextSwitchHelper.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)Argument.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ArrayBufferWriter.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)AzureKeyCredentialPolicy.cs" LinkBase="Shared" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@
<Compile Include="..\..\Shared\src\ClientOptionsExtensions.cs" Link="Shared\Communication\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="..\..\Shared\src\HMACAuthenticationPolicy.cs" Link="Shared\Communication\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="..\..\Shared\src\CommunicationIdentifierSerializer.cs" Link="Shared\Communication\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="$(AzureCoreSharedSources)AppContextSwitchHelper.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)Argument.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ArrayBufferWriter.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)AzureResourceProviderNamespaceAttribute.cs" Link="Shared\Core\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="$(AzureCoreSharedSources)AzureResourceProviderNamespaceAttribute.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ClientDiagnostics.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ConnectionString.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ContentTypeUtilities.cs" LinkBase="Shared" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
<ItemGroup>
<Compile Include="..\..\Shared\src\CommunicationIdentifierSerializer.cs" Link="Shared\Communication\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="..\..\Shared\src\CommunicationBearerTokenCredential.cs" Link="Shared\Communication\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="$(AzureCoreSharedSources)AppContextSwitchHelper.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)AzureResourceProviderNamespaceAttribute.cs" Link="Shared\Core\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="$(AzureCoreSharedSources)Argument.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ClientDiagnostics.cs" LinkBase="Shared" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@
<ItemGroup>
<Compile Include="..\..\Shared\src\ClientOptionsExtensions.cs" Link="Shared\Communication\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="..\..\Shared\src\HMACAuthenticationPolicy.cs" Link="Shared\Communication\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="..\..\Shared\Properties\CommunicationAssembyInfo.cs" Link="Shared\Communication\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="..\..\Shared\Properties\CommunicationAssembyInfo.cs" Link="Shared\Communication\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="$(AzureCoreSharedSources)AppContextSwitchHelper.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)AzureResourceProviderNamespaceAttribute.cs" Link="Shared\Core\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="$(AzureCoreSharedSources)Argument.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ArrayBufferWriter.cs" LinkBase="Shared" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
<Compile Include="..\..\Shared\src\ClientOptionsExtensions.cs" Link="Shared\Communication\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="..\..\Shared\src\HMACAuthenticationPolicy.cs" Link="Shared\Communication\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="..\..\Shared\Properties\CommunicationAssembyInfo.cs" Link="Shared\Communication\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="$(AzureCoreSharedSources)AppContextSwitchHelper.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)AzureResourceProviderNamespaceAttribute.cs" Link="Shared\Core\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="$(AzureCoreSharedSources)Argument.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ArrayBufferWriter.cs" LinkBase="Shared" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
<Compile Include="..\..\Shared\src\ClientOptionsExtensions.cs" Link="Shared\Communication\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="..\..\Shared\src\HMACAuthenticationPolicy.cs" Link="Shared\Communication\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="..\..\Shared\Properties\CommunicationAssembyInfo.cs" Link="Shared\Communication\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="$(AzureCoreSharedSources)AppContextSwitchHelper.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)AzureResourceProviderNamespaceAttribute.cs" Link="Shared\Core\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="$(AzureCoreSharedSources)Argument.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ArrayBufferWriter.cs" LinkBase="Shared" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,10 @@
<ItemGroup>
<Compile Include="..\..\Shared\src\ClientOptionsExtensions.cs" Link="Shared\Communication\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="..\..\Shared\src\HMACAuthenticationPolicy.cs" Link="Shared\Communication\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="$(AzureCoreSharedSources)AppContextSwitchHelper.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)Argument.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ArrayBufferWriter.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)AzureResourceProviderNamespaceAttribute.cs" Link="Shared\Core\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="$(AzureCoreSharedSources)AzureResourceProviderNamespaceAttribute.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ClientDiagnostics.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ConnectionString.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ContentTypeUtilities.cs" LinkBase="Shared" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

<!-- Shared source from Azure.Core -->
<ItemGroup>
<Compile Include="$(AzureCoreSharedSources)AppContextSwitchHelper.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)Argument.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)AzureKeyCredentialPolicy.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ClientDiagnostics.cs" LinkBase="Shared" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

<!-- Shared source from Azure.Core -->
<ItemGroup>
<Compile Include="$(AzureCoreSharedSources)AppContextSwitchHelper.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)Argument.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ArrayBufferWriter.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)AuthorizationChallengeParser.cs" LinkBase="Shared" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

<!-- Shared source from Azure.Core -->
<ItemGroup>
<Compile Include="$(AzureCoreSharedSources)AppContextSwitchHelper.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ArrayBufferWriter.cs" Link="Shared\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="$(AzureCoreSharedSources)ClientDiagnostics.cs" Link="Shared\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="$(AzureCoreSharedSources)ContentTypeUtilities.cs" Link="Shared\%(RecursiveDir)\%(Filename)%(Extension)" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
</ItemGroup>
<!-- Import Azure.Core shared source -->
<ItemGroup>
<Compile Include="$(AzureCoreSharedSources)AppContextSwitchHelper.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)Argument.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ConnectionString.cs" LinkBase="Shared" />
<Compile Include="$(AzureCoreSharedSources)ContentTypeUtilities.cs" LinkBase="Shared" />
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

using System;
using System.Collections.Generic;
using System.Diagnostics;

namespace Azure.Core.Tests
{
#if NET5_0
public class TestActivitySourceListener: IDisposable
{
private readonly ActivityListener _listener;

public Queue<Activity> Activities { get; } =
new Queue<Activity>();

public TestActivitySourceListener(string name) : this(source => source.Name == name)
{
}

public TestActivitySourceListener(Func<ActivitySource, bool> sourceSelector)
{
_listener = new ActivityListener
{
ShouldListenTo = sourceSelector,
ActivityStarted = activity =>
{
lock (Activities)
{
Activities.Enqueue(activity);
}
},
Sample = (ref ActivityCreationOptions<ActivityContext> options) => ActivitySamplingResult.AllDataAndRecorded
};

ActivitySource.AddActivityListener(_listener);
}

public void Dispose()
{
_listener?.Dispose();
}
}
#endif
}
2 changes: 0 additions & 2 deletions sdk/core/Azure.Core/src/Azure.Core.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@

<ItemGroup>
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" />
<PackageReference Include="System.Buffers" />
<PackageReference Include="System.Diagnostics.DiagnosticSource" />
<PackageReference Include="System.Memory" />
<PackageReference Include="System.Numerics.Vectors" />
<PackageReference Include="System.Threading.Tasks.Extensions" />
<PackageReference Include="System.Text.Json" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ internal class RequestActivityPolicy : HttpPipelinePolicy
private const string RequestIdHeaderName = "Request-Id";

private static readonly DiagnosticListener s_diagnosticSource = new DiagnosticListener("Azure.Core");
private static readonly object? s_activitySource = ActivityExtensions.CreateActivitySource("Azure.Core.Http");
pakrym marked this conversation as resolved.
Show resolved Hide resolved
pakrym marked this conversation as resolved.
Show resolved Hide resolved

public RequestActivityPolicy(bool isDistributedTracingEnabled, string? resourceProviderNamespace)
{
Expand All @@ -27,8 +28,7 @@ public RequestActivityPolicy(bool isDistributedTracingEnabled, string? resourceP

public override ValueTask ProcessAsync(HttpMessage message, ReadOnlyMemory<HttpPipelinePolicy> pipeline)
{
if (!_isDistributedTracingEnabled ||
!s_diagnosticSource.IsEnabled())
if (!ShouldCreateActivity)
pakrym marked this conversation as resolved.
Show resolved Hide resolved
{
return ProcessNextAsync(message, pipeline, true);
}
Expand All @@ -38,8 +38,7 @@ public override ValueTask ProcessAsync(HttpMessage message, ReadOnlyMemory<HttpP

public override void Process(HttpMessage message, ReadOnlyMemory<HttpPipelinePolicy> pipeline)
{
if (!_isDistributedTracingEnabled ||
!s_diagnosticSource.IsEnabled())
if (!ShouldCreateActivity)
{
ProcessNextAsync(message, pipeline, false).EnsureCompleted();
return;
Expand All @@ -50,67 +49,40 @@ public override void Process(HttpMessage message, ReadOnlyMemory<HttpPipelinePol

private async ValueTask ProcessAsync(HttpMessage message, ReadOnlyMemory<HttpPipelinePolicy> pipeline, bool async)
{
var activity = new Activity("Azure.Core.Http.Request");
activity.AddTag("http.method", message.Request.Method.Method);
activity.AddTag("http.url", message.Request.Uri.ToString());
activity.AddTag("requestId", message.Request.ClientRequestId);
activity.AddTag("kind", "client");
using var scope = new DiagnosticScope("Azure.Core.Http.Request", s_diagnosticSource, message, s_activitySource, DiagnosticScope.ActivityKind.Client);
scope.AddAttribute("http.method", message.Request.Method.Method);
scope.AddAttribute("http.url", message.Request.Uri.ToString());
scope.AddAttribute("requestId", message.Request.ClientRequestId);

if (_resourceProviderNamespace != null)
{
activity.AddTag("az.namespace", _resourceProviderNamespace);
scope.AddAttribute("az.namespace", _resourceProviderNamespace);
}

if (message.Request.Headers.TryGetValue("User-Agent", out string? userAgent))
{
activity.AddTag("http.user_agent", userAgent);
scope.AddAttribute("http.user_agent", userAgent);
}

var diagnosticSourceActivityEnabled = s_diagnosticSource.IsEnabled(activity.OperationName, message);
scope.Start();

if (diagnosticSourceActivityEnabled)
if (async)
{
s_diagnosticSource.StartActivity(activity, message);
await ProcessNextAsync(message, pipeline, true).ConfigureAwait(false);
}
else
{
activity.Start();
ProcessNextAsync(message, pipeline, false).EnsureCompleted();
}

try
{
if (async)
{
await ProcessNextAsync(message, pipeline, true).ConfigureAwait(false);
}
else
{
ProcessNextAsync(message, pipeline, false).EnsureCompleted();
}

activity.AddTag("http.status_code", message.Response.Status.ToString(CultureInfo.InvariantCulture));
activity.AddTag("serviceRequestId", message.Response.Headers.RequestId);
if (message.ResponseClassifier.IsErrorResponse(message))
{
activity.AddTag("otel.status_code", "ERROR");
}
else
{
// Set the status to UNSET so the AppInsights doesn't try to infer it from the status code
activity.AddTag("otel.status_code", "UNSET");
}
}
finally
scope.AddAttribute("http.status_code", message.Response.Status, static i => i.ToString(CultureInfo.InvariantCulture));
lmolkova marked this conversation as resolved.
Show resolved Hide resolved
if (message.Response.Headers.RequestId is string serviceRequestId)
{
if (diagnosticSourceActivityEnabled)
{
s_diagnosticSource.StopActivity(activity, message);
}
else
{
activity.Stop();
}
scope.AddAttribute("serviceRequestId", serviceRequestId);
}

// Set the status to UNSET so the AppInsights doesn't try to infer it from the status code
scope.AddAttribute("otel.status_code", message.ResponseClassifier.IsErrorResponse(message) ? "ERROR" : "UNSET");
}

private static ValueTask ProcessNextAsync(HttpMessage message, ReadOnlyMemory<HttpPipelinePolicy> pipeline, bool async)
Expand All @@ -126,7 +98,7 @@ private static ValueTask ProcessNextAsync(HttpMessage message, ReadOnlyMemory<Ht
if (!message.Request.Headers.Contains(TraceParentHeaderName))
{
message.Request.Headers.Add(TraceParentHeaderName, currentActivityId);
if (currentActivity.TryGetTraceState(out string? traceStateString) && traceStateString != null)
if (currentActivity.GetTraceState() is string traceStateString)
{
message.Request.Headers.Add(TraceStateHeaderName, traceStateString);
}
Expand All @@ -151,5 +123,9 @@ private static ValueTask ProcessNextAsync(HttpMessage message, ReadOnlyMemory<Ht
return default;
}
}

private bool ShouldCreateActivity =>
_isDistributedTracingEnabled &&
(s_diagnosticSource.IsEnabled() || ActivityExtensions.ActivitySourceHasListeners(s_activitySource));
}
}
Loading