Renamed extension methods from AddOpenTelemetry to AddOpenTelemetryTracerProvider (#1138)

* Renamed extension methods from AddOpenTelemetry to AddOpenTelemetryTracerProvider

* ununsed removal

* remove unnecessary test

* build fix
This commit is contained in:
Cijo Thomas 2020-08-21 21:28:10 -07:00 committed by GitHub
parent 6676fc4eae
commit 6377d6bd87
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 55 additions and 42 deletions

View File

@ -57,7 +57,7 @@ namespace Examples.AspNetCore
switch (exporter)
{
case "jaeger":
services.AddOpenTelemetry((builder) => builder
services.AddOpenTelemetryTracerProvider((builder) => builder
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddJaegerExporter(jaegerOptions =>
@ -68,7 +68,7 @@ namespace Examples.AspNetCore
}));
break;
case "zipkin":
services.AddOpenTelemetry((builder) => builder
services.AddOpenTelemetryTracerProvider((builder) => builder
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddZipkinExporter(zipkinOptions =>
@ -78,7 +78,7 @@ namespace Examples.AspNetCore
}));
break;
default:
services.AddOpenTelemetry((builder) => builder
services.AddOpenTelemetryTracerProvider((builder) => builder
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddConsoleExporter());

View File

@ -40,7 +40,7 @@ namespace WebApi
services.AddSingleton<MessageSender>();
services.AddOpenTelemetry((builder) => builder
services.AddOpenTelemetryTracerProvider((builder) => builder
.AddAspNetCoreInstrumentation()
.AddSource(nameof(MessageSender))
.AddZipkinExporter(b =>

View File

@ -37,7 +37,7 @@ namespace WorkerService
services.AddSingleton<MessageReceiver>();
services.AddOpenTelemetry((builder) =>
services.AddOpenTelemetryTracerProvider((builder) =>
{
builder
.AddSource(nameof(MessageReceiver))

View File

@ -2,6 +2,8 @@
## Unreleased
* Renamed all extension methods from AddOpenTelemetry to AddOpenTelemetryTracerProvider
## 0.4.0-beta.2
Released 2020-07-24

View File

@ -39,7 +39,7 @@ namespace OpenTelemetry.Extensions.Hosting.Implementation
// The sole purpose of this HostedService is to ensure
// all instrumentations are created and started.
// This method is invoked when host starts, and
// by requesting the OpenTelemetrySdk from DI
// by requesting the TracerProvider from DI
// it ensures all instrumentations gets started.
this.serviceProvider.GetRequiredService<TracerProvider>();
}

View File

@ -29,40 +29,50 @@ namespace Microsoft.Extensions.DependencyInjection
public static class OpenTelemetryServicesExtensions
{
/// <summary>
/// Adds OpenTelemetry services to the specified <see cref="IServiceCollection" />.
/// Adds OpenTelemetry TracerProvider to the specified <see cref="IServiceCollection" />.
/// </summary>
/// <param name="services">The <see cref="IServiceCollection" /> to add services to.</param>
/// <returns>The <see cref="IServiceCollection"/> so that additional calls can be chained.</returns>
public static IServiceCollection AddOpenTelemetry(this IServiceCollection services)
public static IServiceCollection AddOpenTelemetryTracerProvider(this IServiceCollection services)
{
services.AddOpenTelemetry(builder => { });
services.AddOpenTelemetryTracerProvider(builder => { });
return services;
}
/// <summary>
/// Adds OpenTelemetry services to the specified <see cref="IServiceCollection" />.
/// Adds OpenTelemetry TracerProvider to the specified <see cref="IServiceCollection" />.
/// </summary>
/// <param name="services">The <see cref="IServiceCollection" /> to add services to.</param>
/// <param name="configure">The <see cref="TracerProviderBuilder"/> configuration delegate.</param>
/// <param name="configure">The <see cref="TracerProviderBuilder"/> action to configure TracerProviderBuilder.</param>
/// <returns>The <see cref="IServiceCollection"/> so that additional calls can be chained.</returns>
public static IServiceCollection AddOpenTelemetry(this IServiceCollection services, Action<TracerProviderBuilder> configure)
public static IServiceCollection AddOpenTelemetryTracerProvider(this IServiceCollection services, Action<TracerProviderBuilder> configure)
{
if (configure is null)
{
throw new ArgumentNullException(nameof(configure));
}
var builder = Sdk.CreateTracerProviderBuilder();
configure(builder);
services.AddOpenTelemetry(() => builder.Build());
services.AddOpenTelemetryTracerProvider(() => builder.Build());
return services;
}
/// <summary>
/// Adds OpenTelemetry services to the specified <see cref="IServiceCollection" />.
/// Adds OpenTelemetry TracerProvider to the specified <see cref="IServiceCollection" />.
/// </summary>
/// <param name="services">The <see cref="IServiceCollection" /> to add services to.</param>
/// <param name="configure">The <see cref="TracerProviderBuilder"/> configuration delegate.</param>
/// <param name="configure">The <see cref="TracerProviderBuilder"/> action to configure TracerProviderBuilder.</param>
/// <returns>The <see cref="IServiceCollection"/> so that additional calls can be chained.</returns>
public static IServiceCollection AddOpenTelemetry(this IServiceCollection services, Action<IServiceProvider, TracerProviderBuilder> configure)
public static IServiceCollection AddOpenTelemetryTracerProvider(this IServiceCollection services, Action<IServiceProvider, TracerProviderBuilder> configure)
{
if (configure is null)
{
throw new ArgumentNullException(nameof(configure));
}
var builder = Sdk.CreateTracerProviderBuilder();
services.AddOpenTelemetry((sp) =>
services.AddOpenTelemetryTracerProvider((sp) =>
{
configure(sp, builder);
return builder.Build();
@ -71,26 +81,26 @@ namespace Microsoft.Extensions.DependencyInjection
}
/// <summary>
/// Adds OpenTelemetry services to the specified <see cref="IServiceCollection" />.
/// Adds OpenTelemetry TracerProvider to the specified <see cref="IServiceCollection" />.
/// </summary>
/// <param name="services">The <see cref="IServiceCollection" /> to add services to.</param>
/// <param name="createSdk">A delegate that provides the factory to be registered.</param>
/// <param name="createTracerProvider">A delegate that provides the tracer provider to be registered.</param>
/// <returns>The <see cref="IServiceCollection"/> so that additional calls can be chained.</returns>
public static IServiceCollection AddOpenTelemetry(this IServiceCollection services, Func<TracerProvider> createSdk)
public static IServiceCollection AddOpenTelemetryTracerProvider(this IServiceCollection services, Func<TracerProvider> createTracerProvider)
{
if (services is null)
{
throw new ArgumentNullException(nameof(services));
}
if (createSdk is null)
if (createTracerProvider is null)
{
throw new ArgumentNullException(nameof(createSdk));
throw new ArgumentNullException(nameof(createTracerProvider));
}
try
{
services.AddSingleton(s => createSdk());
services.AddSingleton(s => createTracerProvider());
AddOpenTelemetryInternal(services);
}
catch (Exception ex)
@ -102,26 +112,26 @@ namespace Microsoft.Extensions.DependencyInjection
}
/// <summary>
/// Adds OpenTelemetry services to the specified <see cref="IServiceCollection" />.
/// Adds OpenTelemetry TracerProvider to the specified <see cref="IServiceCollection" />.
/// </summary>
/// <param name="services">The <see cref="IServiceCollection" /> to add services to.</param>
/// <param name="createSdk">A delegate that provides the factory to be registered.</param>
/// <param name="createTracerProvider">A delegate that provides the tracer provider to be registered.</param>
/// <returns>The <see cref="IServiceCollection"/> so that additional calls can be chained.</returns>
public static IServiceCollection AddOpenTelemetry(this IServiceCollection services, Func<IServiceProvider, TracerProvider> createSdk)
public static IServiceCollection AddOpenTelemetryTracerProvider(this IServiceCollection services, Func<IServiceProvider, TracerProvider> createTracerProvider)
{
if (services is null)
{
throw new ArgumentNullException(nameof(services));
}
if (createSdk is null)
if (createTracerProvider is null)
{
throw new ArgumentNullException(nameof(createSdk));
throw new ArgumentNullException(nameof(createTracerProvider));
}
try
{
services.AddSingleton(s => createSdk(s));
services.AddSingleton(s => createTracerProvider(s));
AddOpenTelemetryInternal(services);
}
catch (Exception ex)

View File

@ -26,17 +26,18 @@ namespace OpenTelemetry.Extensions.Hosting
public class HostingExtensionsTests
{
[Fact]
public async Task AddOpenTelemetryInstrumentationCreationAndDisposal()
public async Task AddOpenTelemetryTracerProviderInstrumentationCreationAndDisposal()
{
var testInstrumentation = new TestInstrumentation();
var callbackRun = false;
var builder = new HostBuilder().ConfigureServices(services =>
{
services.AddOpenTelemetry(builder =>
services.AddOpenTelemetryTracerProvider(builder =>
{
builder.AddInstrumentation((activitySource) =>
{
Assert.NotNull(activitySource);
callbackRun = true;
return testInstrumentation;
});
@ -65,29 +66,29 @@ namespace OpenTelemetry.Extensions.Hosting
}
[Fact]
public void AddOpenTelemetry_HostBuilt_OpenTelemetrySdk_RegisteredAsSingleton()
public void AddOpenTelemetryTracerProvider_HostBuilt_OpenTelemetrySdk_RegisteredAsSingleton()
{
var builder = new HostBuilder().ConfigureServices(services =>
{
services.AddOpenTelemetry();
services.AddOpenTelemetryTracerProvider();
});
var host = builder.Build();
var tracerFactoryBase1 = host.Services.GetRequiredService<TracerProvider>();
var tracerFactoryBase2 = host.Services.GetRequiredService<TracerProvider>();
var tracerProvider1 = host.Services.GetRequiredService<TracerProvider>();
var tracerProvider2 = host.Services.GetRequiredService<TracerProvider>();
Assert.Same(tracerFactoryBase1, tracerFactoryBase2);
Assert.Same(tracerProvider1, tracerProvider2);
}
[Fact]
public void AddOpenTelemetry_ServiceProviderArgument_ServicesRegistered()
public void AddOpenTelemetryTracerProvider_ServiceProviderArgument_ServicesRegistered()
{
var testInstrumentation = new TestInstrumentation();
var services = new ServiceCollection();
services.AddSingleton(testInstrumentation);
services.AddOpenTelemetry((provider, builder) =>
services.AddOpenTelemetryTracerProvider((provider, builder) =>
{
builder.AddInstrumentation((activitySource) => provider.GetRequiredService<TestInstrumentation>());
});
@ -105,12 +106,12 @@ namespace OpenTelemetry.Extensions.Hosting
}
[Fact]
public void AddOpenTelemetry_BadArgs()
public void AddOpenTelemetryTracerProvider_BadArgs_NullServiceCollection()
{
ServiceCollection services = null;
Assert.Throws<ArgumentNullException>(() => services.AddOpenTelemetry());
Assert.Throws<ArgumentNullException>(() => services.AddOpenTelemetryTracerProvider());
Assert.Throws<ArgumentNullException>(() =>
services.AddOpenTelemetry((provider, builder) =>
services.AddOpenTelemetryTracerProvider((provider, builder) =>
{
builder.AddInstrumentation((activitySource) => provider.GetRequiredService<TestInstrumentation>());
}));

View File

@ -61,7 +61,7 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
builder.ConfigureTestServices((IServiceCollection services) =>
{
services.AddSingleton<CallbackMiddleware.CallbackMiddlewareImpl>(new TestCallbackMiddlewareImpl(statusCode, reasonPhrase));
services.AddOpenTelemetry((builder) => builder.AddAspNetCoreInstrumentation()
services.AddOpenTelemetryTracerProvider((builder) => builder.AddAspNetCoreInstrumentation()
.AddProcessor(processor.Object));
}))
.CreateClient())