Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ namespace Microsoft.Extensions.Hosting;
public static class AspireAppConfigurationExtensions
{
internal const string DefaultConfigSectionName = "Aspire:Microsoft:Extensions:Configuration:AzureAppConfiguration";
internal const string ActivitySourceName = "Microsoft.Extensions.Configuration.AzureAppConfiguration";
internal static readonly string[] s_activitySourceNames = ["Microsoft.Extensions.Configuration.AzureAppConfiguration", "Azure.Data.AppConfiguration"];

internal sealed class RemoveAuthorizationHeaderPolicy : HttpPipelinePolicy
{
Expand Down Expand Up @@ -97,7 +97,7 @@ public static void AddAzureAppConfiguration(
{
builder.Services.AddOpenTelemetry()
.WithTracing(traceBuilder =>
traceBuilder.AddSource(ActivitySourceName));
traceBuilder.AddSource(s_activitySourceNames));
}

if (!settings.DisableHealthChecks)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using Aspire.Azure;
using Azure.Core;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System.Text;
using Xunit;
Expand Down Expand Up @@ -113,6 +114,30 @@ public void AddsAppConfigurationToApplication()
Assert.Equal("test-value-2", builder.Configuration["test-key-2"]);
}

[Fact]
public void TracingRegistersMultipleActivitySources()
{
var endpoint = new Uri("https://aspiretests.azconfig.io/");
var mockTransport = new MockTransport(CreateResponse("""{}"""));

var builder = Host.CreateEmptyApplicationBuilder(null);
builder.AddAzureAppConfiguration(
"appConfig",
settings =>
{
settings.Endpoint = endpoint;
settings.Credential = new EmptyTokenCredential();
settings.DisableTracing = false;
},
options => options.ConfigureClientOptions(clientOptions => clientOptions.Transport = mockTransport));

using var host = builder.Build();

// Verify that OpenTelemetry was configured with the expected activity sources
var tracerProvider = host.Services.GetService<OpenTelemetry.Trace.TracerProvider>();
Assert.NotNull(tracerProvider);
}

private static MockResponse CreateResponse(string content)
{
var buffer = Encoding.UTF8.GetBytes(content);
Expand Down