Skip to content

Commit f0398ff

Browse files
add activity source
1 parent b8149ed commit f0398ff

File tree

4 files changed

+18
-13
lines changed

4 files changed

+18
-13
lines changed

src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationOptions.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ public class AzureAppConfigurationOptions
5050
/// </summary>
5151
public bool LoadBalancingEnabled { get; set; }
5252

53+
/// <summary>
54+
/// An optional timespan value to set the minimum backoff duration to a value other than the default.
55+
/// </summary>
56+
public TimeSpan MinBackoffDuration { get; set; } = FailOverConstants.MinBackoffDuration;
57+
5358
/// <summary>
5459
/// The list of connection strings used to connect to an Azure App Configuration store and its replicas.
5560
/// </summary>
@@ -121,11 +126,6 @@ internal IEnumerable<IKeyValueAdapter> Adapters
121126
/// </summary>
122127
internal IConfigurationSettingPageIterator ConfigurationSettingPageIterator { get; set; }
123128

124-
/// <summary>
125-
/// An optional timespan value to set the minimum backoff duration to a value other than the default.
126-
/// </summary>
127-
internal TimeSpan MinBackoffDuration { get; set; } = FailOverConstants.MinBackoffDuration;
128-
129129
/// <summary>
130130
/// Options used to configure the client used to communicate with Azure App Configuration.
131131
/// </summary>

src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationProvider.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,14 @@ private class ConfigurationClientBackoffStatus
5858
public DateTimeOffset BackoffEndTime { get; set; }
5959
}
6060

61+
private readonly ActivityListener _activityListener = new ActivityListener
62+
{
63+
ShouldListenTo = (activitySource) => activitySource.Name == RequestTracingConstants.AzureAppConfigurationActivitySource,
64+
Sample = (ref ActivityCreationOptions<ActivityContext> options) => ActivitySamplingResult.AllData
65+
};
66+
67+
public static readonly ActivitySource ActivitySource = new ActivitySource(RequestTracingConstants.AzureAppConfigurationActivitySource);
68+
6169
public DateTimeOffset? LastSuccessfulAttempt { get; private set; } = null;
6270
public DateTimeOffset? LastFailedAttempt { get; private set; } = null;
6371

@@ -156,6 +164,8 @@ public AzureAppConfigurationProvider(IConfigurationClientManager configClientMan
156164
{
157165
SetRequestTracingOptions();
158166
}
167+
168+
ActivitySource.AddActivityListener(_activityListener);
159169
}
160170

161171
/// <summary>
@@ -1412,6 +1422,7 @@ private async Task ProcessKeyValueChangesAsync(
14121422
public void Dispose()
14131423
{
14141424
(_configClientManager as ConfigurationClientManager)?.Dispose();
1425+
_activityListener.Dispose();
14151426
}
14161427
}
14171428
}

src/Microsoft.Extensions.Configuration.AzureAppConfiguration/Constants/RequestTracingConstants.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ internal class RequestTracingConstants
4545
public const string FeatureFlagUsesSeedTag = "Seed";
4646
public const string FeatureFlagMaxVariantsKey = "MaxVariants";
4747

48+
public const string AzureAppConfigurationActivitySource = "Microsoft.Extensions.Configuration.AzureAppConfiguration";
4849
public const string DiagnosticHeaderActivityName = "Azure.CustomDiagnosticHeaders";
4950
public const string CorrelationContextHeader = "Correlation-Context";
5051
public const string UserAgentHeader = "User-Agent";

src/Microsoft.Extensions.Configuration.AzureAppConfiguration/TracingUtils.cs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,7 @@ public static async Task CallWithRequestTracing(bool tracingEnabled, RequestType
116116
correlationContextHeader = CreateCorrelationContextHeader(requestType, requestTracingOptions);
117117
}
118118

119-
var activity = new Activity(RequestTracingConstants.DiagnosticHeaderActivityName);
120-
activity.Start();
121-
122-
try
119+
using (var activity = AzureAppConfigurationProvider.ActivitySource.StartActivity(RequestTracingConstants.DiagnosticHeaderActivityName))
123120
{
124121
if (!string.IsNullOrWhiteSpace(correlationContextHeader))
125122
{
@@ -128,10 +125,6 @@ public static async Task CallWithRequestTracing(bool tracingEnabled, RequestType
128125

129126
await clientCall().ConfigureAwait(false);
130127
}
131-
finally
132-
{
133-
activity.Stop();
134-
}
135128
}
136129

137130
private static string CreateCorrelationContextHeader(RequestType requestType, RequestTracingOptions requestTracingOptions)

0 commit comments

Comments
 (0)