TracerProvider renamings (#887)

* TracerProvider renamings

* rename

* Remove customization.md as its contents are part of SDK readme

* read only Default in TracerPRovier
This commit is contained in:
Cijo Thomas 2020-07-23 00:09:50 -07:00 committed by GitHub
parent ea107d3b69
commit c470f0bb9c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
48 changed files with 355 additions and 380 deletions

View File

@ -1,104 +0,0 @@
# Customizing OpenTelemetry .NET
## Custom Samplers
You may configure sampler of your choice
```csharp
TracerProviderSdk.EnableTracerProvider(b => b
.AddActivitySource(ActivitySourceName)
.SetSampler(new ProbabilityActivitySampler(0.1))
.SetResource(Resources.Resources.CreateServiceResource("my-service"))
.UseZipkinExporter(options => {}));
```
You can also implement a custom sampler and should subclass `ActivitySampler`
```csharp
class MySampler : ActivitySampler
{
public override string Description { get; } = "my custom sampler";
public override SamplingResult ShouldSample(in ActivitySamplingParameters samplingParameters)
{
bool sampledIn;
var parentContext = samplingParameters.ParentContext;
if (parentContext != null && parentContext.IsValid())
{
sampledIn = (
parentContext.TraceFlags & ActivityTraceFlags.Recorded
) != 0;
}
else
{
sampledIn = Stopwatch.GetTimestamp() % 2 == 0;
}
return new Decision(sampledIn);
}
}
```
## Custom Exporters
### Tracing
* Exporters should subclass `ActivityExporter` and implement `ExportAsync` and
`ShutdownAsync` methods.
* Depending on user's choice and load on the application `ExportAsync` may get
called concurrently with zero or more activities.
* Exporters should expect to receive only sampled-in ended activities.
* Exporters must not throw.
* Exporters should not modify activities they receive (the same activity may be
exported again by different exporter).
It's a good practice to make exporter `IDisposable` and shut it down in
IDispose unless it was shut down explicitly. This helps when exporters are
registered with dependency injection framework and their lifetime is tight to
the app lifetime.
```csharp
class MyExporter : ActivityExporter, IDisposable
{
public override Task<ExportResult> ExportAsync(
IEnumerable<Activity> batch, CancellationToken cancellationToken)
{
foreach (var activity in batch)
{
Console.WriteLine(
$"[{activity.StartTimeUtc:o}] " +
$"{activity.DisplayName} " +
$"{activity.Context.TraceId.ToHexString()} " +
$"{activity.Context.SpanId.ToHexString()}"
);
}
return Task.FromResult(ExportResult.Success);
}
public override Task ShutdownAsync(CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
public void Dispose()
{
// ...
}
protected virtual void Dispose(bool disposing)
{
// ...
}
}
```
* Users may configure the exporter similarly to other exporters.
* You should also provide additional methods to simplify configuration
similarly to `UseZipkinExporter` extension method.
```csharp
TracerProviderSdk.EnableTracerProvider(b => b
.AddActivitySource(ActivitySourceName)
.UseMyExporter();
```

View File

@ -38,7 +38,7 @@ class Program
static void Main() static void Main()
{ {
using var otel = TracerProviderSdk.EnableTracerProvider(b => b using var otel = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource("MyCompany.MyProduct.MyLibrary") .AddActivitySource("MyCompany.MyProduct.MyLibrary")
.UseConsoleExporter(options => options.DisplayAsJson = true)); .UseConsoleExporter(options => options.DisplayAsJson = true));

View File

@ -13,7 +13,7 @@ namespace Examples.AspNet
protected void Application_Start() protected void Application_Start()
{ {
this.openTelemetry = TracerProviderSdk.EnableTracerProvider( this.openTelemetry = OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddDependencyInstrumentation() (builder) => builder.AddDependencyInstrumentation()
.AddRequestInstrumentation() .AddRequestInstrumentation()
.UseJaegerExporter(c => .UseJaegerExporter(c =>

View File

@ -48,12 +48,17 @@ namespace Examples.AspNetCore
})); }));
*/ */
/*
services.AddOpenTelemetry((builder) => builder.AddRequestInstrumentation().AddDependencyInstrumentation() services.AddOpenTelemetry((builder) => builder.AddRequestInstrumentation().AddDependencyInstrumentation()
.UseZipkinExporter(o => .UseZipkinExporter(o =>
{ {
o.ServiceName = this.Configuration.GetValue<string>("Zipkin:ServiceName"); o.ServiceName = this.Configuration.GetValue<string>("Zipkin:ServiceName");
o.Endpoint = new Uri(this.Configuration.GetValue<string>("Zipkin:Endpoint")); o.Endpoint = new Uri(this.Configuration.GetValue<string>("Zipkin:Endpoint"));
})); }));
*/
services.AddOpenTelemetry((builder) => builder.AddRequestInstrumentation().AddDependencyInstrumentation()
.UseConsoleExporter());
} }
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) public void Configure(IApplicationBuilder app, IWebHostEnvironment env)

View File

@ -30,7 +30,7 @@ namespace Examples.Console
{ {
// Enable TracerProvider for the source "MyCompany.MyProduct.MyWebServer" // Enable TracerProvider for the source "MyCompany.MyProduct.MyWebServer"
// and use a single pipeline with a custom MyProcessor, and Console exporter. // and use a single pipeline with a custom MyProcessor, and Console exporter.
using var tracerProvider = TracerProviderSdk.EnableTracerProvider( using var tracerProvider = OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddActivitySource("MyCompany.MyProduct.MyWebServer") (builder) => builder.AddActivitySource("MyCompany.MyProduct.MyWebServer")
.SetResource(Resources.CreateServiceResource("MyServiceName")) .SetResource(Resources.CreateServiceResource("MyServiceName"))
.UseConsoleExporter(opt => opt.DisplayAsJson = options.DisplayAsJson, .UseConsoleExporter(opt => opt.DisplayAsJson = options.DisplayAsJson,

View File

@ -26,7 +26,7 @@ namespace Examples.Console
{ {
System.Console.WriteLine("Hello World!"); System.Console.WriteLine("Hello World!");
using var openTelemetry = TracerProviderSdk.EnableTracerProvider( using var openTelemetry = OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddHttpClientDependencyInstrumentation() (builder) => builder.AddHttpClientDependencyInstrumentation()
.SetResource(Resources.CreateServiceResource("http-service-example")) .SetResource(Resources.CreateServiceResource("http-service-example"))
.AddActivitySource("http-client-test") .AddActivitySource("http-client-test")

View File

@ -30,7 +30,7 @@ namespace Examples.Console
{ {
// Enable OpenTelemetry for the sources "Samples.SampleServer" and "Samples.SampleClient" // Enable OpenTelemetry for the sources "Samples.SampleServer" and "Samples.SampleClient"
// and use the Jaeger exporter. // and use the Jaeger exporter.
using var openTelemetry = TracerProviderSdk.EnableTracerProvider( using var openTelemetry = OpenTelemetrySdk.CreateTracerProvider(
builder => builder builder => builder
.AddActivitySource("Samples.SampleServer") .AddActivitySource("Samples.SampleServer")
.AddActivitySource("Samples.SampleClient") .AddActivitySource("Samples.SampleClient")

View File

@ -25,7 +25,7 @@ namespace Examples.Console
{ {
// Enable OpenTelemetry for the source "MyCompany.MyProduct.MyWebServer" // Enable OpenTelemetry for the source "MyCompany.MyProduct.MyWebServer"
// and use a single pipeline with a custom MyProcessor, and Console exporter. // and use a single pipeline with a custom MyProcessor, and Console exporter.
using var openTelemetry = TracerProviderSdk.EnableTracerProvider( using var tracerProvider = OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddActivitySource("MyCompany.MyProduct.MyWebServer") (builder) => builder.AddActivitySource("MyCompany.MyProduct.MyWebServer")
.SetResource(Resources.CreateServiceResource("MyServiceName")) .SetResource(Resources.CreateServiceResource("MyServiceName"))
.UseConsoleExporter(opt => opt.DisplayAsJson = options.DisplayAsJson)); .UseConsoleExporter(opt => opt.DisplayAsJson = options.DisplayAsJson));
@ -33,7 +33,7 @@ namespace Examples.Console
// The above line is required only in applications // The above line is required only in applications
// which decide to use Open Telemetry. // which decide to use Open Telemetry.
var tracer = TracerProvider.GetTracer("MyCompany.MyProduct.MyWebServer"); var tracer = TracerProvider.Default.GetTracer("MyCompany.MyProduct.MyWebServer");
var span = tracer.StartSpan("parent span"); var span = tracer.StartSpan("parent span");
span.SetAttribute("my", "value"); span.SetAttribute("my", "value");
span.UpdateName("parent span new name"); span.UpdateName("parent span new name");

View File

@ -28,7 +28,7 @@ namespace Examples.Console
{ {
// Enable OpenTelemetry for the source "MyCompany.MyProduct.MyWebServer" // Enable OpenTelemetry for the source "MyCompany.MyProduct.MyWebServer"
// and use Console exporter. // and use Console exporter.
using var openTelemetry = TracerProviderSdk.EnableTracerProvider( using var openTelemetry = OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddActivitySource("MyCompany.MyProduct.MyWebServer") (builder) => builder.AddActivitySource("MyCompany.MyProduct.MyWebServer")
.SetResource(Resources.CreateServiceResource("MyServiceName")) .SetResource(Resources.CreateServiceResource("MyServiceName"))
.UseConsoleExporter(opt => opt.DisplayAsJson = options.DisplayAsJson)); .UseConsoleExporter(opt => opt.DisplayAsJson = options.DisplayAsJson));
@ -38,7 +38,7 @@ namespace Examples.Console
// Following shows how to use the OpenTracing shim // Following shows how to use the OpenTracing shim
var tracer = new TracerShim(TracerProvider.GetTracer("MyCompany.MyProduct.MyWebServer"), new TraceContextFormat()); var tracer = new TracerShim(TracerProvider.Default.GetTracer("MyCompany.MyProduct.MyWebServer"), new TraceContextFormat());
using (IScope parentScope = tracer.BuildSpan("Parent").StartActive(finishSpanOnDispose: true)) using (IScope parentScope = tracer.BuildSpan("Parent").StartActive(finishSpanOnDispose: true))
{ {

View File

@ -29,7 +29,7 @@ namespace Examples.Console
{ {
// Enable OpenTelemetry for the sources "Samples.SampleServer" and "Samples.SampleClient" // Enable OpenTelemetry for the sources "Samples.SampleServer" and "Samples.SampleClient"
// and use OTLP exporter. // and use OTLP exporter.
using var openTelemetry = TracerProviderSdk.EnableTracerProvider( using var openTelemetry = OpenTelemetrySdk.CreateTracerProvider(
builder => builder builder => builder
.AddActivitySource("Samples.SampleServer") .AddActivitySource("Samples.SampleServer")
.AddActivitySource("Samples.SampleClient") .AddActivitySource("Samples.SampleClient")

View File

@ -41,7 +41,7 @@ namespace Examples.Console
var connection = ConnectionMultiplexer.Connect("localhost"); var connection = ConnectionMultiplexer.Connect("localhost");
// Configure exporter to export traces to Zipkin // Configure exporter to export traces to Zipkin
using var openTelemetry = TracerProviderSdk.EnableTracerProvider( using var openTelemetry = OpenTelemetrySdk.CreateTracerProvider(
builder => builder builder => builder
.UseZipkinExporter(o => .UseZipkinExporter(o =>
{ {

View File

@ -33,7 +33,7 @@ namespace Examples.Console
// Start the server // Start the server
httpServer.Start(); httpServer.Start();
using var openTelemetry = TracerProviderSdk.EnableTracerProvider( using var openTelemetry = OpenTelemetrySdk.CreateTracerProvider(
builder => builder builder => builder
.AddActivitySource("zpages-test") .AddActivitySource("zpages-test")
.UseZPagesExporter( .UseZPagesExporter(

View File

@ -25,7 +25,7 @@ namespace Examples.Console
{ {
// Enable OpenTelemetry for the sources "Samples.SampleServer" and "Samples.SampleClient" // Enable OpenTelemetry for the sources "Samples.SampleServer" and "Samples.SampleClient"
// and use the Zipkin exporter. // and use the Zipkin exporter.
using var openTelemetry = TracerProviderSdk.EnableTracerProvider( using var openTelemetry = OpenTelemetrySdk.CreateTracerProvider(
builder => builder builder => builder
.AddActivitySource("Samples.SampleServer") .AddActivitySource("Samples.SampleServer")
.AddActivitySource("Samples.SampleClient") .AddActivitySource("Samples.SampleClient")

View File

@ -14,22 +14,40 @@
// limitations under the License. // limitations under the License.
// </copyright> // </copyright>
using System;
using System.Diagnostics; using System.Diagnostics;
namespace OpenTelemetry.Trace namespace OpenTelemetry.Trace
{ {
/// <summary> /// <summary>
/// TracerProvider is the entry point of the OTel API. It provides access to Tracers. /// TracerProvider is the entry point of the OpenTelemetry API. It provides access to Tracers.
/// </summary> /// </summary>
public abstract class TracerProvider public class TracerProvider : IDisposable
{ {
/// <summary>
/// Initializes a new instance of the <see cref="TracerProvider"/> class.
/// </summary>
protected TracerProvider()
{
}
/// <summary>
/// Gets the default Tracer.
/// </summary>
public static TracerProvider Default { get; } = new TracerProvider();
/// <inheritdoc/>
public virtual void Dispose()
{
}
/// <summary> /// <summary>
/// Gets a tracer with given name and version. /// Gets a tracer with given name and version.
/// </summary> /// </summary>
/// <param name="name">Name identifying the instrumentation library.</param> /// <param name="name">Name identifying the instrumentation library.</param>
/// <param name="version">Version of the instrumentation library.</param> /// <param name="version">Version of the instrumentation library.</param>
/// <returns>Tracer instance.</returns> /// <returns>Tracer instance.</returns>
public static Tracer GetTracer(string name, string version = null) public Tracer GetTracer(string name, string version = null)
{ {
if (name == null) if (name == null)
{ {

View File

@ -41,7 +41,7 @@ namespace OpenTelemetry.Extensions.Hosting.Implementation
// This method is invoked when host starts, and // This method is invoked when host starts, and
// by requesting the OpenTelemetrySdk from DI // by requesting the OpenTelemetrySdk from DI
// it ensures all instrumentations gets started. // it ensures all instrumentations gets started.
this.serviceProvider.GetRequiredService<TracerProviderSdk>(); this.serviceProvider.GetRequiredService<TracerProvider>();
} }
catch (Exception ex) catch (Exception ex)
{ {

View File

@ -46,7 +46,7 @@ namespace Microsoft.Extensions.DependencyInjection
/// <returns>The <see cref="IServiceCollection"/> so that additional calls can be chained.</returns> /// <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 AddOpenTelemetry(this IServiceCollection services, Action<TracerProviderBuilder> configure)
{ {
services.AddOpenTelemetry(() => TracerProviderSdk.EnableTracerProvider(configure)); services.AddOpenTelemetry(() => OpenTelemetrySdk.CreateTracerProvider(configure));
return services; return services;
} }
@ -58,7 +58,7 @@ namespace Microsoft.Extensions.DependencyInjection
/// <returns>The <see cref="IServiceCollection"/> so that additional calls can be chained.</returns> /// <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 AddOpenTelemetry(this IServiceCollection services, Action<IServiceProvider, TracerProviderBuilder> configure)
{ {
services.AddOpenTelemetry(s => TracerProviderSdk.EnableTracerProvider(builder => configure(s, builder))); services.AddOpenTelemetry(s => OpenTelemetrySdk.CreateTracerProvider(builder => configure(s, builder)));
return services; return services;
} }
@ -68,7 +68,7 @@ namespace Microsoft.Extensions.DependencyInjection
/// <param name="services">The <see cref="IServiceCollection" /> to add services to.</param> /// <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="createSdk">A delegate that provides the factory to be registered.</param>
/// <returns>The <see cref="IServiceCollection"/> so that additional calls can be chained.</returns> /// <returns>The <see cref="IServiceCollection"/> so that additional calls can be chained.</returns>
public static IServiceCollection AddOpenTelemetry(this IServiceCollection services, Func<TracerProviderSdk> createSdk) public static IServiceCollection AddOpenTelemetry(this IServiceCollection services, Func<TracerProvider> createSdk)
{ {
if (services is null) if (services is null)
{ {
@ -99,7 +99,7 @@ namespace Microsoft.Extensions.DependencyInjection
/// <param name="services">The <see cref="IServiceCollection" /> to add services to.</param> /// <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="createSdk">A delegate that provides the factory to be registered.</param>
/// <returns>The <see cref="IServiceCollection"/> so that additional calls can be chained.</returns> /// <returns>The <see cref="IServiceCollection"/> so that additional calls can be chained.</returns>
public static IServiceCollection AddOpenTelemetry(this IServiceCollection services, Func<IServiceProvider, TracerProviderSdk> createSdk) public static IServiceCollection AddOpenTelemetry(this IServiceCollection services, Func<IServiceProvider, TracerProvider> createSdk)
{ {
if (services is null) if (services is null)
{ {

View File

@ -19,7 +19,7 @@ dotnet add package OpenTelemetry.Instrumentation.StackExchangeRedis
using var connection = ConnectionMultiplexer.Connect("localhost:6379"); using var connection = ConnectionMultiplexer.Connect("localhost:6379");
// Pass the connection to AddRedisInstrumentation. // Pass the connection to AddRedisInstrumentation.
using var openTelemetry = TracerProviderSdk.EnableTracerProvider(b => b using var openTelemetry = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddRedisInstrumentation(connection) .AddRedisInstrumentation(connection)
.UseZipkinExporter() .UseZipkinExporter()
.SetResource(Resources.CreateServiceResource("my-service")); .SetResource(Resources.CreateServiceResource("my-service"));

View File

@ -59,12 +59,12 @@ console application, and have the traces displayed in the console.
the source named "companyname.product.library". the source named "companyname.product.library".
```csharp ```csharp
using var openTelemetry = TracerProviderSdk.EnableTracerProvider(builder => builder using var openTelemetry = OpenTelemetrySdk.CreateTracerProvider(builder => builder
.AddActivitySource("companyname.product.library") .AddActivitySource("companyname.product.library")
.UseConsoleExporter()) .UseConsoleExporter())
``` ```
The above requires import of namespace `OpenTelemetry.Trace.Configuration`. The above requires import of namespace `OpenTelemetry.Trace`.
3. Generate some activities in the application as shown below. 3. Generate some activities in the application as shown below.
@ -95,13 +95,40 @@ The following sample shows how to change it to
with sampling probability of 25%. with sampling probability of 25%.
```csharp ```csharp
using var openTelemetry = TracerProviderSdk.EnableTracerProvider(builder => builder using var openTelemetry = OpenTelemetrySdk.CreateTracerProvider(builder => builder
.AddActivitySource("companyname.product.library") .AddActivitySource("companyname.product.library")
.SetSampler(new ProbabilitySampler(.25)) .SetSampler(new ProbabilitySampler(.25))
.UseConsoleExporter()); .UseConsoleExporter());
``` ```
The above requires import of the namespace `OpenTelemetry.Trace.Samplers`. The above requires import of the namespace `OpenTelemetry.Trace.Samplers`.
You can also implement a custom sampler by subclassing `Sampler`
```csharp
class MySampler : Sampler
{
public override string Description { get; } = "mysampler";
public override SamplingResult ShouldSample(in SamplingParameters samplingParameters)
{
bool sampledIn;
var parentContext = samplingParameters.ParentContext;
if (parentContext != null && parentContext.IsValid())
{
sampledIn = (
parentContext.TraceFlags & ActivityTraceFlags.Recorded
) != 0;
}
else
{
sampledIn = Stopwatch.GetTimestamp() % 2 == 0;
}
return new SamplingResult(sampledIn);
}
}
```
### Customize Resource ### Customize Resource

View File

@ -0,0 +1,151 @@
// <copyright file="OpenTelemetrySdk.cs" company="OpenTelemetry Authors">
// Copyright The OpenTelemetry Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// </copyright>
using System;
using System.Diagnostics;
using System.Linq;
using OpenTelemetry.Trace.Export;
using OpenTelemetry.Trace.Export.Internal;
using OpenTelemetry.Trace.Samplers;
namespace OpenTelemetry.Trace
{
/// <summary>
/// OpenTelemetry helper.
/// </summary>
public class OpenTelemetrySdk
{
/// <summary>
/// Creates TracerProvider with the configuration provided.
/// This sets up listeners for all configured ActivitySources and
/// sends activities to the pipeline of Sampler, Processor and Exporter.
/// </summary>
/// <param name="configureTracerProviderBuilder">Action to configure TracerProviderBuilder.</param>
/// <returns>TracerProvider instance, which must be disposed upon shutdown.</returns>
public static TracerProvider CreateTracerProvider(Action<TracerProviderBuilder> configureTracerProviderBuilder)
{
var tracerProviderBuilder = new TracerProviderBuilder();
configureTracerProviderBuilder?.Invoke(tracerProviderBuilder);
var tracerProviderSdk = new TracerProviderSdk();
Sampler sampler = tracerProviderBuilder.Sampler ?? new AlwaysOnSampler();
ActivityProcessor activityProcessor;
if (tracerProviderBuilder.ProcessingPipelines == null || !tracerProviderBuilder.ProcessingPipelines.Any())
{
// if there are no pipelines are configured, use noop processor
activityProcessor = new NoopActivityProcessor();
}
else if (tracerProviderBuilder.ProcessingPipelines.Count == 1)
{
// if there is only one pipeline - use it's outer processor as a
// single processor on the tracerSdk.
var processorFactory = tracerProviderBuilder.ProcessingPipelines[0];
activityProcessor = processorFactory.Build();
}
else
{
// if there are more pipelines, use processor that will broadcast to all pipelines
var processors = new ActivityProcessor[tracerProviderBuilder.ProcessingPipelines.Count];
for (int i = 0; i < tracerProviderBuilder.ProcessingPipelines.Count; i++)
{
processors[i] = tracerProviderBuilder.ProcessingPipelines[i].Build();
}
activityProcessor = new BroadcastActivityProcessor(processors);
}
tracerProviderSdk.Resource = tracerProviderBuilder.Resource;
var activitySource = new ActivitySourceAdapter(sampler, activityProcessor, tracerProviderSdk.Resource);
if (tracerProviderBuilder.InstrumentationFactories != null)
{
foreach (var instrumentation in tracerProviderBuilder.InstrumentationFactories)
{
tracerProviderSdk.Instrumentations.Add(instrumentation.Factory(activitySource));
}
}
// This is what subscribes to Activities.
// Think of this as the replacement for DiagnosticListener.AllListeners.Subscribe(onNext => diagnosticListener.Subscribe(..));
tracerProviderSdk.ActivityListener = new ActivityListener
{
// Callback when Activity is started.
ActivityStarted = (activity) =>
{
if (activity.IsAllDataRequested)
{
activity.SetResource(tracerProviderSdk.Resource);
}
activityProcessor.OnStart(activity);
},
// Callback when Activity is stopped.
ActivityStopped = activityProcessor.OnEnd,
// Function which takes ActivitySource and returns true/false to indicate if it should be subscribed to
// or not
ShouldListenTo = (activitySource) => tracerProviderBuilder.ActivitySourceNames?.Contains(activitySource.Name.ToUpperInvariant()) ?? false,
// The following parameter is not used now.
GetRequestedDataUsingParentId = (ref ActivityCreationOptions<string> options) => ActivityDataRequest.AllData,
// This delegate informs ActivitySource about sampling decision when the parent context is an ActivityContext.
GetRequestedDataUsingContext = (ref ActivityCreationOptions<ActivityContext> options) => ComputeActivityDataRequest(options, sampler),
};
ActivitySource.AddActivityListener(tracerProviderSdk.ActivityListener);
tracerProviderSdk.ActivityProcessor = activityProcessor;
return tracerProviderSdk;
}
internal static ActivityDataRequest ComputeActivityDataRequest(
in ActivityCreationOptions<ActivityContext> options,
Sampler sampler)
{
var isRootSpan = options.Parent.TraceId == default;
// This is not going to be the final traceId of the Activity (if one is created), however, it is
// needed in order for the sampling to work. This differs from other OTel SDKs in which it is
// the Sampler always receives the actual traceId of a root span/activity.
ActivityTraceId traceId = !isRootSpan
? options.Parent.TraceId
: ActivityTraceId.CreateRandom();
var samplingParameters = new SamplingParameters(
options.Parent,
traceId,
options.Name,
options.Kind,
options.Tags,
options.Links);
var shouldSample = sampler.ShouldSample(samplingParameters);
if (shouldSample.IsSampled)
{
return ActivityDataRequest.AllDataAndRecorded;
}
// If it is the root span select PropagationData so the trace ID is preserved
// even if no activity of the trace is recorded (sampled per OpenTelemetry parlance).
return isRootSpan
? ActivityDataRequest.PropagationData
: ActivityDataRequest.None;
}
}
}

View File

@ -17,20 +17,17 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Linq;
using OpenTelemetry.Resources; using OpenTelemetry.Resources;
using OpenTelemetry.Trace.Export; using OpenTelemetry.Trace.Export;
using OpenTelemetry.Trace.Export.Internal;
using OpenTelemetry.Trace.Samplers;
namespace OpenTelemetry.Trace namespace OpenTelemetry.Trace
{ {
public class TracerProviderSdk : TracerProvider, IDisposable internal class TracerProviderSdk : TracerProvider, IDisposable
{ {
private readonly List<object> instrumentations = new List<object>(); internal readonly List<object> Instrumentations = new List<object>();
private Resource resource; internal Resource Resource;
private ActivityProcessor activityProcessor; internal ActivityProcessor ActivityProcessor;
private ActivityListener listener; internal ActivityListener ActivityListener;
static TracerProviderSdk() static TracerProviderSdk()
{ {
@ -38,98 +35,13 @@ namespace OpenTelemetry.Trace
Activity.ForceDefaultIdFormat = true; Activity.ForceDefaultIdFormat = true;
} }
private TracerProviderSdk() internal TracerProviderSdk()
{ {
} }
/// <summary> public override void Dispose()
/// Enables OpenTelemetry.
/// </summary>
/// <param name="configureTracerProviderBuilder">Function that configures TracerProviderBuilder.</param>
/// <returns><see cref="TracerProviderSdk"/> instance which can be disposed on application shutdown.</returns>
public static TracerProviderSdk EnableTracerProvider(Action<TracerProviderBuilder> configureTracerProviderBuilder)
{ {
var tracerProviderBuilder = new TracerProviderBuilder(); foreach (var item in this.Instrumentations)
configureTracerProviderBuilder?.Invoke(tracerProviderBuilder);
var tracerProviderSdk = new TracerProviderSdk();
Sampler sampler = tracerProviderBuilder.Sampler ?? new AlwaysOnSampler();
ActivityProcessor activityProcessor;
if (tracerProviderBuilder.ProcessingPipelines == null || !tracerProviderBuilder.ProcessingPipelines.Any())
{
// if there are no pipelines are configured, use noop processor
activityProcessor = new NoopActivityProcessor();
}
else if (tracerProviderBuilder.ProcessingPipelines.Count == 1)
{
// if there is only one pipeline - use it's outer processor as a
// single processor on the tracerSdk.
var processorFactory = tracerProviderBuilder.ProcessingPipelines[0];
activityProcessor = processorFactory.Build();
}
else
{
// if there are more pipelines, use processor that will broadcast to all pipelines
var processors = new ActivityProcessor[tracerProviderBuilder.ProcessingPipelines.Count];
for (int i = 0; i < tracerProviderBuilder.ProcessingPipelines.Count; i++)
{
processors[i] = tracerProviderBuilder.ProcessingPipelines[i].Build();
}
activityProcessor = new BroadcastActivityProcessor(processors);
}
tracerProviderSdk.resource = tracerProviderBuilder.Resource;
var activitySource = new ActivitySourceAdapter(sampler, activityProcessor, tracerProviderSdk.resource);
if (tracerProviderBuilder.InstrumentationFactories != null)
{
foreach (var instrumentation in tracerProviderBuilder.InstrumentationFactories)
{
tracerProviderSdk.instrumentations.Add(instrumentation.Factory(activitySource));
}
}
// This is what subscribes to Activities.
// Think of this as the replacement for DiagnosticListener.AllListeners.Subscribe(onNext => diagnosticListener.Subscribe(..));
tracerProviderSdk.listener = new ActivityListener
{
// Callback when Activity is started.
ActivityStarted = (activity) =>
{
if (activity.IsAllDataRequested)
{
activity.SetResource(tracerProviderSdk.resource);
}
activityProcessor.OnStart(activity);
},
// Callback when Activity is stopped.
ActivityStopped = activityProcessor.OnEnd,
// Function which takes ActivitySource and returns true/false to indicate if it should be subscribed to
// or not
ShouldListenTo = (activitySource) => tracerProviderBuilder.ActivitySourceNames?.Contains(activitySource.Name.ToUpperInvariant()) ?? false,
// The following parameter is not used now.
GetRequestedDataUsingParentId = (ref ActivityCreationOptions<string> options) => ActivityDataRequest.AllData,
// This delegate informs ActivitySource about sampling decision when the parent context is an ActivityContext.
GetRequestedDataUsingContext = (ref ActivityCreationOptions<ActivityContext> options) => ComputeActivityDataRequest(options, sampler),
};
ActivitySource.AddActivityListener(tracerProviderSdk.listener);
tracerProviderSdk.activityProcessor = activityProcessor;
return tracerProviderSdk;
}
public void Dispose()
{
foreach (var item in this.instrumentations)
{ {
if (item is IDisposable disposable) if (item is IDisposable disposable)
{ {
@ -137,9 +49,9 @@ namespace OpenTelemetry.Trace
} }
} }
this.instrumentations.Clear(); this.Instrumentations.Clear();
if (this.activityProcessor is IDisposable disposableProcessor) if (this.ActivityProcessor is IDisposable disposableProcessor)
{ {
disposableProcessor.Dispose(); disposableProcessor.Dispose();
} }
@ -147,41 +59,7 @@ namespace OpenTelemetry.Trace
// Shutdown the listener last so that anything created while instrumentation cleans up will still be processed. // Shutdown the listener last so that anything created while instrumentation cleans up will still be processed.
// Redis instrumentation, for example, flushes during dispose which creates Activity objects for any profiling // Redis instrumentation, for example, flushes during dispose which creates Activity objects for any profiling
// sessions that were open. // sessions that were open.
this.listener.Dispose(); this.ActivityListener.Dispose();
}
internal static ActivityDataRequest ComputeActivityDataRequest(
in ActivityCreationOptions<ActivityContext> options,
Sampler sampler)
{
var isRootSpan = options.Parent.TraceId == default;
// This is not going to be the final traceId of the Activity (if one is created), however, it is
// needed in order for the sampling to work. This differs from other OTel SDKs in which it is
// the Sampler always receives the actual traceId of a root span/activity.
ActivityTraceId traceId = !isRootSpan
? options.Parent.TraceId
: ActivityTraceId.CreateRandom();
var samplingParameters = new SamplingParameters(
options.Parent,
traceId,
options.Name,
options.Kind,
options.Tags,
options.Links);
var shouldSample = sampler.ShouldSample(samplingParameters);
if (shouldSample.IsSampled)
{
return ActivityDataRequest.AllDataAndRecorded;
}
// If it is the root span select PropagationData so the trace ID is preserved
// even if no activity of the trace is recorded (sampled per OpenTelemetry parlance).
return isRootSpan
? ActivityDataRequest.PropagationData
: ActivityDataRequest.None;
} }
} }
} }

View File

@ -30,17 +30,17 @@ namespace Benchmarks
public OpenTelemetrySdkBenchmarks() public OpenTelemetrySdkBenchmarks()
{ {
using var openTelemetryAlwaysOnSample = TracerProviderSdk.EnableTracerProvider( using var openTelemetryAlwaysOnSample = OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddActivitySource("AlwaysOnSample").SetSampler(new AlwaysOnSampler())); (builder) => builder.AddActivitySource("AlwaysOnSample").SetSampler(new AlwaysOnSampler()));
using var openTelemetryAlwaysOffSample = TracerProviderSdk.EnableTracerProvider( using var openTelemetryAlwaysOffSample = OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddActivitySource("AlwaysOffSample").SetSampler(new AlwaysOffSampler())); (builder) => builder.AddActivitySource("AlwaysOffSample").SetSampler(new AlwaysOffSampler()));
using var openTelemetryNoOp = TracerProviderSdk.EnableTracerProvider(null); using var openTelemetryNoOp = OpenTelemetrySdk.CreateTracerProvider(null);
this.alwaysSampleTracer = TracerProvider.GetTracer("AlwaysOnSample"); this.alwaysSampleTracer = TracerProvider.Default.GetTracer("AlwaysOnSample");
this.neverSampleTracer = TracerProvider.GetTracer("AlwaysOffSample"); this.neverSampleTracer = TracerProvider.Default.GetTracer("AlwaysOffSample");
this.noopTracer = TracerProvider.GetTracer("NoOp"); this.noopTracer = TracerProvider.Default.GetTracer("NoOp");
} }
[Benchmark] [Benchmark]

View File

@ -31,7 +31,7 @@ namespace Benchmarks
public OpenTelemetrySdkBenchmarksActivity() public OpenTelemetrySdkBenchmarksActivity()
{ {
// Not configuring pipeline, which will result in default NoOpActivityProcessor. // Not configuring pipeline, which will result in default NoOpActivityProcessor.
var openTel = TracerProviderSdk.EnableTracerProvider((builder) => builder.AddActivitySource("BenchMark")); var openTel = OpenTelemetrySdk.CreateTracerProvider((builder) => builder.AddActivitySource("BenchMark"));
} }
[Benchmark] [Benchmark]

View File

@ -46,7 +46,7 @@ namespace OpenTelemetry.Exporter.Jaeger.Tests
endCalled = true; endCalled = true;
}; };
var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName) .AddActivitySource(ActivitySourceName)
.UseJaegerExporter( .UseJaegerExporter(
null, p => p.AddProcessor((next) => testActivityProcessor))); null, p => p.AddProcessor((next) => testActivityProcessor)));

View File

@ -66,7 +66,7 @@ namespace OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests
}); });
// This following is done just to set Resource to Activity. // This following is done just to set Resource to Activity.
using var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b using var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(sources[0].Name) .AddActivitySource(sources[0].Name)
.AddActivitySource(sources[1].Name) .AddActivitySource(sources[1].Name)
.SetResource(resource)); .SetResource(resource));
@ -248,7 +248,7 @@ namespace OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests
endCalled = true; endCalled = true;
}; };
var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName) .AddActivitySource(ActivitySourceName)
.UseOtlpExporter( .UseOtlpExporter(
null, p => p.AddProcessor((next) => testActivityProcessor))); null, p => p.AddProcessor((next) => testActivityProcessor)));

View File

@ -81,7 +81,7 @@ namespace OpenTelemetry.Exporter.ZPages.Tests
endCalled = true; endCalled = true;
}; };
var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName) .AddActivitySource(ActivitySourceName)
.UseZPagesExporter( .UseZPagesExporter(
processorConfigure: p => p.AddProcessor((next) => testActivityProcessor))); processorConfigure: p => p.AddProcessor((next) => testActivityProcessor)));

View File

@ -150,7 +150,7 @@ namespace OpenTelemetry.Exporter.Zipkin.Tests
endCalled = true; endCalled = true;
}; };
var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName) .AddActivitySource(ActivitySourceName)
.UseZipkinExporter( .UseZipkinExporter(
o => o =>

View File

@ -74,8 +74,8 @@ namespace OpenTelemetry.Extensions.Hosting
var host = builder.Build(); var host = builder.Build();
var tracerFactoryBase1 = host.Services.GetRequiredService<TracerProviderSdk>(); var tracerFactoryBase1 = host.Services.GetRequiredService<TracerProvider>();
var tracerFactoryBase2 = host.Services.GetRequiredService<TracerProviderSdk>(); var tracerFactoryBase2 = host.Services.GetRequiredService<TracerProvider>();
Assert.Same(tracerFactoryBase1, tracerFactoryBase2); Assert.Same(tracerFactoryBase1, tracerFactoryBase2);
} }
@ -94,7 +94,7 @@ namespace OpenTelemetry.Extensions.Hosting
var serviceProvider = services.BuildServiceProvider(); var serviceProvider = services.BuildServiceProvider();
var tracerFactory = serviceProvider.GetRequiredService<TracerProviderSdk>(); var tracerFactory = serviceProvider.GetRequiredService<TracerProvider>();
Assert.NotNull(tracerFactory); Assert.NotNull(tracerFactory);
Assert.False(testInstrumentation.Disposed); Assert.False(testInstrumentation.Disposed);

View File

@ -138,7 +138,7 @@ namespace OpenTelemetry.Instrumentation.AspNet.Tests
var activity = new Activity(ActivityNameAspNet).AddBaggage("Stuff", "123"); var activity = new Activity(ActivityNameAspNet).AddBaggage("Stuff", "123");
activity.SetParentId(expectedTraceId, expectedSpanId, ActivityTraceFlags.Recorded); activity.SetParentId(expectedTraceId, expectedSpanId, ActivityTraceFlags.Recorded);
var activityProcessor = new Mock<ActivityProcessor>(); var activityProcessor = new Mock<ActivityProcessor>();
using (openTelemetry = TracerProviderSdk.EnableTracerProvider( using (openTelemetry = OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddRequestInstrumentation( (builder) => builder.AddRequestInstrumentation(
(options) => (options) =>
{ {

View File

@ -43,7 +43,7 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
: IClassFixture<WebApplicationFactory<Startup>>, IDisposable : IClassFixture<WebApplicationFactory<Startup>>, IDisposable
{ {
private readonly WebApplicationFactory<Startup> factory; private readonly WebApplicationFactory<Startup> factory;
private TracerProviderSdk openTelemetrySdk = null; private TracerProvider openTelemetrySdk = null;
public BasicTests(WebApplicationFactory<Startup> factory) public BasicTests(WebApplicationFactory<Startup> factory)
{ {
@ -64,7 +64,7 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
var spanProcessor = new Mock<ActivityProcessor>(); var spanProcessor = new Mock<ActivityProcessor>();
void ConfigureTestServices(IServiceCollection services) void ConfigureTestServices(IServiceCollection services)
{ {
this.openTelemetrySdk = TracerProviderSdk.EnableTracerProvider( this.openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddRequestInstrumentation() (builder) => builder.AddRequestInstrumentation()
.SetResource(expectedResource) .SetResource(expectedResource)
.AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object))); .AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object)));
@ -106,7 +106,7 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
.WithWebHostBuilder(builder => .WithWebHostBuilder(builder =>
builder.ConfigureTestServices(services => builder.ConfigureTestServices(services =>
{ {
this.openTelemetrySdk = TracerProviderSdk.EnableTracerProvider((builder) => builder.AddRequestInstrumentation() this.openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider((builder) => builder.AddRequestInstrumentation()
.AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object))); .AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object)));
}))) })))
{ {
@ -153,7 +153,7 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
.WithWebHostBuilder(builder => .WithWebHostBuilder(builder =>
builder.ConfigureTestServices(services => builder.ConfigureTestServices(services =>
{ {
this.openTelemetrySdk = TracerProviderSdk.EnableTracerProvider( this.openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddRequestInstrumentation((opt) => opt.TextFormat = textFormat.Object) (builder) => builder.AddRequestInstrumentation((opt) => opt.TextFormat = textFormat.Object)
.AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object))); .AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object)));
}))) })))
@ -185,7 +185,7 @@ namespace OpenTelemetry.Instrumentation.AspNetCore.Tests
void ConfigureTestServices(IServiceCollection services) void ConfigureTestServices(IServiceCollection services)
{ {
this.openTelemetrySdk = TracerProviderSdk.EnableTracerProvider( this.openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(
(builder) => (builder) =>
builder.AddRequestInstrumentation((opt) => opt.RequestFilter = (ctx) => ctx.Request.Path != "/api/values/2") builder.AddRequestInstrumentation((opt) => opt.RequestFilter = (ctx) => ctx.Request.Path != "/api/values/2")
.AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object))); .AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object)));

View File

@ -91,7 +91,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
} }
}); });
using (TracerProviderSdk.EnableTracerProvider( using (OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddHttpClientDependencyInstrumentation(o => o.TextFormat = mockTextFormat.Object) (builder) => builder.AddHttpClientDependencyInstrumentation(o => o.TextFormat = mockTextFormat.Object)
.AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object)))) .AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object))))
{ {
@ -144,7 +144,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
parent.TraceStateString = "k1=v1,k2=v2"; parent.TraceStateString = "k1=v1,k2=v2";
parent.ActivityTraceFlags = ActivityTraceFlags.Recorded; parent.ActivityTraceFlags = ActivityTraceFlags.Recorded;
using (TracerProviderSdk.EnableTracerProvider( using (OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddHttpClientDependencyInstrumentation((opt) => opt.TextFormat = textFormat.Object) (builder) => builder.AddHttpClientDependencyInstrumentation((opt) => opt.TextFormat = textFormat.Object)
.AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object)))) .AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object))))
{ {
@ -174,7 +174,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
{ {
var spanProcessor = new Mock<ActivityProcessor>(); var spanProcessor = new Mock<ActivityProcessor>();
using (TracerProviderSdk.EnableTracerProvider( using (OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddHttpClientDependencyInstrumentation() (builder) => builder.AddHttpClientDependencyInstrumentation()
.AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object)))) .AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object))))
{ {
@ -192,7 +192,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
{ {
var spanProcessor = new Mock<ActivityProcessor>(); var spanProcessor = new Mock<ActivityProcessor>();
using (TracerProviderSdk.EnableTracerProvider( using (OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddHttpClientDependencyInstrumentation() (builder) => builder.AddHttpClientDependencyInstrumentation()
.AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object)))) .AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object))))
{ {
@ -218,7 +218,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
request.Headers.Add("traceparent", "00-0123456789abcdef0123456789abcdef-0123456789abcdef-01"); request.Headers.Add("traceparent", "00-0123456789abcdef0123456789abcdef-0123456789abcdef-01");
using (TracerProviderSdk.EnableTracerProvider( using (OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddHttpClientDependencyInstrumentation() (builder) => builder.AddHttpClientDependencyInstrumentation()
.AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object)))) .AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object))))
{ {
@ -234,7 +234,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
{ {
var spanProcessor = new Mock<ActivityProcessor>(); var spanProcessor = new Mock<ActivityProcessor>();
using (TracerProviderSdk.EnableTracerProvider( using (OpenTelemetrySdk.CreateTracerProvider(
(builder) => (builder) =>
builder.AddHttpClientDependencyInstrumentation( builder.AddHttpClientDependencyInstrumentation(
(opt) => opt.FilterFunc = (req) => !req.RequestUri.OriginalString.Contains(this.url)) (opt) => opt.FilterFunc = (req) => !req.RequestUri.OriginalString.Contains(this.url))
@ -252,7 +252,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
{ {
var spanProcessor = new Mock<ActivityProcessor>(); var spanProcessor = new Mock<ActivityProcessor>();
using (TracerProviderSdk.EnableTracerProvider( using (OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddHttpClientDependencyInstrumentation() (builder) => builder.AddHttpClientDependencyInstrumentation()
.AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object)))) .AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object))))
{ {

View File

@ -55,7 +55,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
using (serverLifeTime) using (serverLifeTime)
using (TracerProviderSdk.EnableTracerProvider( using (OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddHttpClientDependencyInstrumentation((opt) => opt.SetHttpFlavor = tc.SetHttpFlavor) (builder) => builder.AddHttpClientDependencyInstrumentation((opt) => opt.SetHttpFlavor = tc.SetHttpFlavor)
.SetResource(expectedResource) .SetResource(expectedResource)
.AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object)))) .AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object))))

View File

@ -60,7 +60,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
public async Task HttpDependenciesInstrumentationInjectsHeadersAsync() public async Task HttpDependenciesInstrumentationInjectsHeadersAsync()
{ {
var activityProcessor = new Mock<ActivityProcessor>(); var activityProcessor = new Mock<ActivityProcessor>();
using var shutdownSignal = TracerProviderSdk.EnableTracerProvider(b => using var shutdownSignal = OpenTelemetrySdk.CreateTracerProvider(b =>
{ {
b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object)); b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object));
b.AddHttpWebRequestDependencyInstrumentation(); b.AddHttpWebRequestDependencyInstrumentation();
@ -107,7 +107,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
}); });
var activityProcessor = new Mock<ActivityProcessor>(); var activityProcessor = new Mock<ActivityProcessor>();
using var shutdownSignal = TracerProviderSdk.EnableTracerProvider(b => using var shutdownSignal = OpenTelemetrySdk.CreateTracerProvider(b =>
{ {
b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object)); b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object));
b.AddHttpWebRequestDependencyInstrumentation(options => options.TextFormat = textFormat.Object); b.AddHttpWebRequestDependencyInstrumentation(options => options.TextFormat = textFormat.Object);
@ -147,7 +147,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
public async Task HttpDependenciesInstrumentationBacksOffIfAlreadyInstrumented() public async Task HttpDependenciesInstrumentationBacksOffIfAlreadyInstrumented()
{ {
var activityProcessor = new Mock<ActivityProcessor>(); var activityProcessor = new Mock<ActivityProcessor>();
using var shutdownSignal = TracerProviderSdk.EnableTracerProvider(b => using var shutdownSignal = OpenTelemetrySdk.CreateTracerProvider(b =>
{ {
b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object)); b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object));
b.AddHttpWebRequestDependencyInstrumentation(); b.AddHttpWebRequestDependencyInstrumentation();
@ -171,7 +171,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
public async Task HttpDependenciesInstrumentationFiltersOutRequests() public async Task HttpDependenciesInstrumentationFiltersOutRequests()
{ {
var activityProcessor = new Mock<ActivityProcessor>(); var activityProcessor = new Mock<ActivityProcessor>();
using var shutdownSignal = TracerProviderSdk.EnableTracerProvider(b => using var shutdownSignal = OpenTelemetrySdk.CreateTracerProvider(b =>
{ {
b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object)); b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object));
b.AddHttpWebRequestDependencyInstrumentation( b.AddHttpWebRequestDependencyInstrumentation(

View File

@ -48,7 +48,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
var expectedResource = Resources.Resources.CreateServiceResource("test-service"); var expectedResource = Resources.Resources.CreateServiceResource("test-service");
var activityProcessor = new Mock<ActivityProcessor>(); var activityProcessor = new Mock<ActivityProcessor>();
using var shutdownSignal = TracerProviderSdk.EnableTracerProvider(b => using var shutdownSignal = OpenTelemetrySdk.CreateTracerProvider(b =>
{ {
b.SetResource(expectedResource); b.SetResource(expectedResource);
b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object)); b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object));

View File

@ -77,7 +77,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
bool isFailure = false) bool isFailure = false)
{ {
var activityProcessor = new Mock<ActivityProcessor>(); var activityProcessor = new Mock<ActivityProcessor>();
using var shutdownSignal = TracerProviderSdk.EnableTracerProvider(b => using var shutdownSignal = OpenTelemetrySdk.CreateTracerProvider(b =>
{ {
b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object)); b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object));
b.AddSqlClientDependencyInstrumentation(options => b.AddSqlClientDependencyInstrumentation(options =>
@ -132,7 +132,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
using var sqlCommand = sqlConnection.CreateCommand(); using var sqlCommand = sqlConnection.CreateCommand();
var spanProcessor = new Mock<ActivityProcessor>(); var spanProcessor = new Mock<ActivityProcessor>();
using (TracerProviderSdk.EnableTracerProvider( using (OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddSqlClientDependencyInstrumentation( (builder) => builder.AddSqlClientDependencyInstrumentation(
(opt) => (opt) =>
{ {
@ -182,7 +182,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
using var sqlCommand = sqlConnection.CreateCommand(); using var sqlCommand = sqlConnection.CreateCommand();
var spanProcessor = new Mock<ActivityProcessor>(); var spanProcessor = new Mock<ActivityProcessor>();
using (TracerProviderSdk.EnableTracerProvider( using (OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddSqlClientDependencyInstrumentation() (builder) => builder.AddSqlClientDependencyInstrumentation()
.AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object)))) .AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object))))
{ {

View File

@ -52,7 +52,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
public async Task SuccessfulCommandTest(CommandType commandType, string commandText, bool captureText, bool isFailure = false) public async Task SuccessfulCommandTest(CommandType commandType, string commandText, bool captureText, bool isFailure = false)
{ {
var activityProcessor = new Mock<ActivityProcessor>(); var activityProcessor = new Mock<ActivityProcessor>();
using var shutdownSignal = TracerProviderSdk.EnableTracerProvider(b => using var shutdownSignal = OpenTelemetrySdk.CreateTracerProvider(b =>
{ {
b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object)); b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object));
b.AddSqlClientDependencyInstrumentation(options => b.AddSqlClientDependencyInstrumentation(options =>
@ -105,7 +105,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
using FakeBehavingSqlEventSource fakeSqlEventSource = new FakeBehavingSqlEventSource(); using FakeBehavingSqlEventSource fakeSqlEventSource = new FakeBehavingSqlEventSource();
var activityProcessor = new Mock<ActivityProcessor>(); var activityProcessor = new Mock<ActivityProcessor>();
using var shutdownSignal = TracerProviderSdk.EnableTracerProvider(b => using var shutdownSignal = OpenTelemetrySdk.CreateTracerProvider(b =>
{ {
b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object)); b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object));
b.AddSqlClientDependencyInstrumentation(options => b.AddSqlClientDependencyInstrumentation(options =>
@ -145,7 +145,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
using FakeMisbehavingSqlEventSource fakeSqlEventSource = new FakeMisbehavingSqlEventSource(); using FakeMisbehavingSqlEventSource fakeSqlEventSource = new FakeMisbehavingSqlEventSource();
var activityProcessor = new Mock<ActivityProcessor>(); var activityProcessor = new Mock<ActivityProcessor>();
using var shutdownSignal = TracerProviderSdk.EnableTracerProvider(b => using var shutdownSignal = OpenTelemetrySdk.CreateTracerProvider(b =>
{ {
b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object)); b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object));
b.AddSqlClientDependencyInstrumentation(); b.AddSqlClientDependencyInstrumentation();
@ -162,7 +162,7 @@ namespace OpenTelemetry.Instrumentation.Dependencies.Tests
using FakeMisbehavingSqlEventSource fakeSqlEventSource = new FakeMisbehavingSqlEventSource(); using FakeMisbehavingSqlEventSource fakeSqlEventSource = new FakeMisbehavingSqlEventSource();
var activityProcessor = new Mock<ActivityProcessor>(); var activityProcessor = new Mock<ActivityProcessor>();
using var shutdownSignal = TracerProviderSdk.EnableTracerProvider(b => using var shutdownSignal = OpenTelemetrySdk.CreateTracerProvider(b =>
{ {
b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object)); b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object));
b.AddSqlClientDependencyInstrumentation(); b.AddSqlClientDependencyInstrumentation();

View File

@ -56,7 +56,7 @@ namespace OpenTelemetry.Instrumentation.GrpcClient.Tests
var parent = new Activity("parent") var parent = new Activity("parent")
.Start(); .Start();
using (TracerProviderSdk.EnableTracerProvider( using (OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder (builder) => builder
.AddGrpcClientDependencyInstrumentation() .AddGrpcClientDependencyInstrumentation()
.SetResource(expectedResource) .SetResource(expectedResource)
@ -107,7 +107,7 @@ namespace OpenTelemetry.Instrumentation.GrpcClient.Tests
var parent = new Activity("parent") var parent = new Activity("parent")
.Start(); .Start();
using (TracerProviderSdk.EnableTracerProvider( using (OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder (builder) => builder
.AddDependencyInstrumentation() // AddDependencyInstrumentation applies both gRPC client and HttpClient instrumentation .AddDependencyInstrumentation() // AddDependencyInstrumentation applies both gRPC client and HttpClient instrumentation
.AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object)))) .AddProcessorPipeline(p => p.AddProcessor(n => spanProcessor.Object))))

View File

@ -43,7 +43,7 @@ namespace OpenTelemetry.Instrumentation.StackExchangeRedis.Implementation
this.connection = ConnectionMultiplexer.Connect(connectionOptions); this.connection = ConnectionMultiplexer.Connect(connectionOptions);
this.sdk = TracerProviderSdk.EnableTracerProvider( this.sdk = OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddRedisInstrumentation(this.connection)); (builder) => builder.AddRedisInstrumentation(this.connection));
} }

View File

@ -56,13 +56,13 @@ namespace OpenTelemetry.Instrumentation.StackExchangeRedis.Tests
using var connection = ConnectionMultiplexer.Connect(connectionOptions); using var connection = ConnectionMultiplexer.Connect(connectionOptions);
var activityProcessor = new Mock<ActivityProcessor>(); var activityProcessor = new Mock<ActivityProcessor>();
using (TracerProviderSdk.EnableTracerProvider(b => using (OpenTelemetrySdk.CreateTracerProvider(b =>
{ {
b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object)); b.AddProcessorPipeline(c => c.AddProcessor(ap => activityProcessor.Object));
b.AddRedisInstrumentation(connection); b.AddRedisInstrumentation(connection);
})) }))
{ {
IDatabase db = connection.GetDatabase(); var db = connection.GetDatabase();
bool set = db.StringSet("key1", value, TimeSpan.FromSeconds(60)); bool set = db.StringSet("key1", value, TimeSpan.FromSeconds(60));

View File

@ -51,7 +51,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void Active_IsNull() public void Active_IsNull()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new ScopeManagerShim(tracer); var shim = new ScopeManagerShim(tracer);
Assert.Null(Activity.Current); Assert.Null(Activity.Current);
@ -61,7 +61,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void Active_IsNotNull() public void Active_IsNotNull()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new ScopeManagerShim(tracer); var shim = new ScopeManagerShim(tracer);
var openTracingSpan = new SpanShim(tracer.StartSpan(SpanName)); var openTracingSpan = new SpanShim(tracer.StartSpan(SpanName));
@ -76,7 +76,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void Activate_SpanMustBeShim() public void Activate_SpanMustBeShim()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new ScopeManagerShim(tracer); var shim = new ScopeManagerShim(tracer);
Assert.Throws<ArgumentException>(() => shim.Activate(new Mock<global::OpenTracing.ISpan>().Object, true)); Assert.Throws<ArgumentException>(() => shim.Activate(new Mock<global::OpenTracing.ISpan>().Object, true));
@ -85,7 +85,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void Activate() public void Activate()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new ScopeManagerShim(tracer); var shim = new ScopeManagerShim(tracer);
var spanShim = new SpanShim(tracer.StartSpan(SpanName)); var spanShim = new SpanShim(tracer.StartSpan(SpanName));

View File

@ -47,7 +47,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void CtorArgumentValidation() public void CtorArgumentValidation()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
Assert.Throws<ArgumentNullException>(() => new SpanBuilderShim(null, "foo")); Assert.Throws<ArgumentNullException>(() => new SpanBuilderShim(null, "foo"));
Assert.Throws<ArgumentNullException>(() => new SpanBuilderShim(tracer, null)); Assert.Throws<ArgumentNullException>(() => new SpanBuilderShim(tracer, null));
} }
@ -55,7 +55,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void IgnoreActiveSpan() public void IgnoreActiveSpan()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanBuilderShim(tracer, "foo"); var shim = new SpanBuilderShim(tracer, "foo");
// Add a parent. The shim requires that the ISpan implementation be a SpanShim // Add a parent. The shim requires that the ISpan implementation be a SpanShim
@ -73,7 +73,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void StartWithExplicitTimestamp() public void StartWithExplicitTimestamp()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanBuilderShim(tracer, "foo"); var shim = new SpanBuilderShim(tracer, "foo");
var startTimestamp = DateTimeOffset.Now; var startTimestamp = DateTimeOffset.Now;
@ -88,7 +88,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void AsChildOf_WithNullSpan() public void AsChildOf_WithNullSpan()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanBuilderShim(tracer, "foo"); var shim = new SpanBuilderShim(tracer, "foo");
// Add a null parent // Add a null parent
@ -104,7 +104,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void AsChildOf_WithSpan() public void AsChildOf_WithSpan()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanBuilderShim(tracer, "foo"); var shim = new SpanBuilderShim(tracer, "foo");
// Add a parent. // Add a parent.
@ -122,7 +122,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
public void Start_ActivityOperationRootSpanChecks() public void Start_ActivityOperationRootSpanChecks()
{ {
// matching root operation name // matching root operation name
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanBuilderShim(tracer, "foo", new List<string> { "foo" }); var shim = new SpanBuilderShim(tracer, "foo", new List<string> { "foo" });
var spanShim = (SpanShim)shim.Start(); var spanShim = (SpanShim)shim.Start();
@ -139,7 +139,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void AsChildOf_MultipleCallsWithSpan() public void AsChildOf_MultipleCallsWithSpan()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanBuilderShim(tracer, "foo"); var shim = new SpanBuilderShim(tracer, "foo");
// Multiple calls // Multiple calls
@ -160,7 +160,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void AsChildOf_WithNullSpanContext() public void AsChildOf_WithNullSpanContext()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanBuilderShim(tracer, "foo"); var shim = new SpanBuilderShim(tracer, "foo");
// Add a null parent // Add a null parent
@ -176,7 +176,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void AsChildOfWithSpanContext() public void AsChildOfWithSpanContext()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanBuilderShim(tracer, "foo"); var shim = new SpanBuilderShim(tracer, "foo");
// Add a parent // Add a parent
@ -192,7 +192,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void AsChildOf_MultipleCallsWithSpanContext() public void AsChildOf_MultipleCallsWithSpanContext()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanBuilderShim(tracer, "foo"); var shim = new SpanBuilderShim(tracer, "foo");
// Multiple calls // Multiple calls
@ -217,7 +217,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void WithTag_KeyIsSpanKindStringValue() public void WithTag_KeyIsSpanKindStringValue()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanBuilderShim(tracer, "foo"); var shim = new SpanBuilderShim(tracer, "foo");
shim.WithTag(global::OpenTracing.Tag.Tags.SpanKind.Key, global::OpenTracing.Tag.Tags.SpanKindClient); shim.WithTag(global::OpenTracing.Tag.Tags.SpanKind.Key, global::OpenTracing.Tag.Tags.SpanKindClient);
@ -234,7 +234,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void WithTag_KeyIsErrorStringValue() public void WithTag_KeyIsErrorStringValue()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanBuilderShim(tracer, "foo"); var shim = new SpanBuilderShim(tracer, "foo");
shim.WithTag(global::OpenTracing.Tag.Tags.Error.Key, "true"); shim.WithTag(global::OpenTracing.Tag.Tags.Error.Key, "true");
@ -249,7 +249,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void WithTag_KeyIsNullStringValue() public void WithTag_KeyIsNullStringValue()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanBuilderShim(tracer, "foo"); var shim = new SpanBuilderShim(tracer, "foo");
shim.WithTag((string)null, "unused"); shim.WithTag((string)null, "unused");
@ -264,7 +264,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void WithTag_ValueIsNullStringValue() public void WithTag_ValueIsNullStringValue()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanBuilderShim(tracer, "foo"); var shim = new SpanBuilderShim(tracer, "foo");
shim.WithTag("foo", null); shim.WithTag("foo", null);
@ -280,7 +280,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void WithTag_KeyIsErrorBoolValue() public void WithTag_KeyIsErrorBoolValue()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanBuilderShim(tracer, "foo"); var shim = new SpanBuilderShim(tracer, "foo");
shim.WithTag(global::OpenTracing.Tag.Tags.Error.Key, true); shim.WithTag(global::OpenTracing.Tag.Tags.Error.Key, true);
@ -295,7 +295,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void WithTag_VariousValueTypes() public void WithTag_VariousValueTypes()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanBuilderShim(tracer, "foo"); var shim = new SpanBuilderShim(tracer, "foo");
shim.WithTag("foo", "unused"); shim.WithTag("foo", "unused");
@ -316,7 +316,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void Start() public void Start()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanBuilderShim(tracer, "foo"); var shim = new SpanBuilderShim(tracer, "foo");
// build // build

View File

@ -53,7 +53,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void SpanContextIsNotNull() public void SpanContextIsNotNull()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanShim(tracer.StartSpan(SpanName)); var shim = new SpanShim(tracer.StartSpan(SpanName));
// ISpanContext validation handled in a separate test class // ISpanContext validation handled in a separate test class
@ -63,7 +63,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void FinishSpan() public void FinishSpan()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanShim(tracer.StartSpan(SpanName)); var shim = new SpanShim(tracer.StartSpan(SpanName));
shim.Finish(); shim.Finish();
@ -74,7 +74,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void FinishSpanUsingSpecificTimestamp() public void FinishSpanUsingSpecificTimestamp()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanShim(tracer.StartSpan(SpanName)); var shim = new SpanShim(tracer.StartSpan(SpanName));
var endTime = DateTimeOffset.UtcNow; var endTime = DateTimeOffset.UtcNow;
@ -86,7 +86,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void SetOperationName() public void SetOperationName()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanShim(tracer.StartSpan(SpanName)); var shim = new SpanShim(tracer.StartSpan(SpanName));
// parameter validation // parameter validation
@ -99,7 +99,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void GetBaggageItem() public void GetBaggageItem()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanShim(tracer.StartSpan(SpanName)); var shim = new SpanShim(tracer.StartSpan(SpanName));
// parameter validation // parameter validation
@ -111,7 +111,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void Log() public void Log()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanShim(tracer.StartSpan(SpanName)); var shim = new SpanShim(tracer.StartSpan(SpanName));
shim.Log("foo"); shim.Log("foo");
@ -125,7 +125,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void LogWithExplicitTimestamp() public void LogWithExplicitTimestamp()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanShim(tracer.StartSpan(SpanName)); var shim = new SpanShim(tracer.StartSpan(SpanName));
var now = DateTimeOffset.UtcNow; var now = DateTimeOffset.UtcNow;
@ -141,7 +141,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void LogUsingFields() public void LogUsingFields()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanShim(tracer.StartSpan(SpanName)); var shim = new SpanShim(tracer.StartSpan(SpanName));
Assert.Throws<ArgumentNullException>(() => shim.Log((IEnumerable<KeyValuePair<string, object>>)null)); Assert.Throws<ArgumentNullException>(() => shim.Log((IEnumerable<KeyValuePair<string, object>>)null));
@ -172,7 +172,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void LogUsingFieldsWithExplicitTimestamp() public void LogUsingFieldsWithExplicitTimestamp()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanShim(tracer.StartSpan(SpanName)); var shim = new SpanShim(tracer.StartSpan(SpanName));
Assert.Throws<ArgumentNullException>(() => shim.Log((IEnumerable<KeyValuePair<string, object>>)null)); Assert.Throws<ArgumentNullException>(() => shim.Log((IEnumerable<KeyValuePair<string, object>>)null));
@ -205,7 +205,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void SetTagStringValue() public void SetTagStringValue()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanShim(tracer.StartSpan(SpanName)); var shim = new SpanShim(tracer.StartSpan(SpanName));
Assert.Throws<ArgumentNullException>(() => shim.SetTag((string)null, "foo")); Assert.Throws<ArgumentNullException>(() => shim.SetTag((string)null, "foo"));
@ -220,7 +220,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void SetTagBoolValue() public void SetTagBoolValue()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanShim(tracer.StartSpan(SpanName)); var shim = new SpanShim(tracer.StartSpan(SpanName));
Assert.Throws<ArgumentNullException>(() => shim.SetTag((string)null, true)); Assert.Throws<ArgumentNullException>(() => shim.SetTag((string)null, true));
@ -242,7 +242,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void SetTagIntValue() public void SetTagIntValue()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanShim(tracer.StartSpan(SpanName)); var shim = new SpanShim(tracer.StartSpan(SpanName));
Assert.Throws<ArgumentNullException>(() => shim.SetTag((string)null, 1)); Assert.Throws<ArgumentNullException>(() => shim.SetTag((string)null, 1));
@ -257,7 +257,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void SetTagDoubleValue() public void SetTagDoubleValue()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanShim(tracer.StartSpan(SpanName)); var shim = new SpanShim(tracer.StartSpan(SpanName));
Assert.Throws<ArgumentNullException>(() => shim.SetTag(null, 1D)); Assert.Throws<ArgumentNullException>(() => shim.SetTag(null, 1D));
@ -272,7 +272,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void SetTagBooleanTagValue() public void SetTagBooleanTagValue()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanShim(tracer.StartSpan(SpanName)); var shim = new SpanShim(tracer.StartSpan(SpanName));
Assert.Throws<ArgumentNullException>(() => shim.SetTag((BooleanTag)null, true)); Assert.Throws<ArgumentNullException>(() => shim.SetTag((BooleanTag)null, true));
@ -294,7 +294,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void SetTagStringTagValue() public void SetTagStringTagValue()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanShim(tracer.StartSpan(SpanName)); var shim = new SpanShim(tracer.StartSpan(SpanName));
Assert.Throws<ArgumentNullException>(() => shim.SetTag((StringTag)null, "foo")); Assert.Throws<ArgumentNullException>(() => shim.SetTag((StringTag)null, "foo"));
@ -309,7 +309,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void SetTagIntTagValue() public void SetTagIntTagValue()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanShim(tracer.StartSpan(SpanName)); var shim = new SpanShim(tracer.StartSpan(SpanName));
Assert.Throws<ArgumentNullException>(() => shim.SetTag((IntTag)null, 1)); Assert.Throws<ArgumentNullException>(() => shim.SetTag((IntTag)null, 1));
@ -324,7 +324,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void SetTagIntOrStringTagValue() public void SetTagIntOrStringTagValue()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new SpanShim(tracer.StartSpan(SpanName)); var shim = new SpanShim(tracer.StartSpan(SpanName));
Assert.Throws<ArgumentNullException>(() => shim.SetTag((IntOrStringTag)null, "foo")); Assert.Throws<ArgumentNullException>(() => shim.SetTag((IntOrStringTag)null, "foo"));

View File

@ -43,13 +43,13 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
// null context format // null context format
var tracerMock = new Mock<Trace.Tracer>(); var tracerMock = new Mock<Trace.Tracer>();
Assert.Throws<ArgumentNullException>(() => new TracerShim(TracerProvider.GetTracer("test"), null)); Assert.Throws<ArgumentNullException>(() => new TracerShim(TracerProvider.Default.GetTracer("test"), null));
} }
[Fact] [Fact]
public void ScopeManager_NotNull() public void ScopeManager_NotNull()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new TracerShim(tracer, new TraceContextFormat()); var shim = new TracerShim(tracer, new TraceContextFormat());
// Internals of the ScopeManagerShim tested elsewhere // Internals of the ScopeManagerShim tested elsewhere
@ -59,7 +59,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void BuildSpan_NotNull() public void BuildSpan_NotNull()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new TracerShim(tracer, new TraceContextFormat()); var shim = new TracerShim(tracer, new TraceContextFormat());
// Internals of the SpanBuilderShim tested elsewhere // Internals of the SpanBuilderShim tested elsewhere
@ -69,7 +69,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void Inject_ArgumentValidation() public void Inject_ArgumentValidation()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new TracerShim(tracer, new TraceContextFormat()); var shim = new TracerShim(tracer, new TraceContextFormat());
var spanContextShim = new SpanContextShim(new SpanContext(ActivityTraceId.CreateRandom(), ActivitySpanId.CreateRandom(), ActivityTraceFlags.None)); var spanContextShim = new SpanContextShim(new SpanContext(ActivityTraceId.CreateRandom(), ActivitySpanId.CreateRandom(), ActivityTraceFlags.None));
@ -85,7 +85,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void Inject_UnknownFormatIgnored() public void Inject_UnknownFormatIgnored()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new TracerShim(tracer, new TraceContextFormat()); var shim = new TracerShim(tracer, new TraceContextFormat());
var spanContextShim = new SpanContextShim(new SpanContext(ActivityTraceId.CreateRandom(), ActivitySpanId.CreateRandom(), ActivityTraceFlags.Recorded)); var spanContextShim = new SpanContextShim(new SpanContext(ActivityTraceId.CreateRandom(), ActivitySpanId.CreateRandom(), ActivityTraceFlags.Recorded));
@ -101,7 +101,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void Extract_ArgumentValidation() public void Extract_ArgumentValidation()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new TracerShim(tracer, new TraceContextFormat()); var shim = new TracerShim(tracer, new TraceContextFormat());
Assert.Throws<ArgumentNullException>(() => shim.Extract(null, new Mock<ITextMap>().Object)); Assert.Throws<ArgumentNullException>(() => shim.Extract(null, new Mock<ITextMap>().Object));
@ -111,7 +111,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void Extract_UnknownFormatIgnored() public void Extract_UnknownFormatIgnored()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new TracerShim(tracer, new TraceContextFormat()); var shim = new TracerShim(tracer, new TraceContextFormat());
var spanContextShim = new SpanContextShim(new SpanContext(ActivityTraceId.CreateRandom(), ActivitySpanId.CreateRandom(), ActivityTraceFlags.None)); var spanContextShim = new SpanContextShim(new SpanContext(ActivityTraceId.CreateRandom(), ActivitySpanId.CreateRandom(), ActivityTraceFlags.None));
@ -127,7 +127,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
[Fact] [Fact]
public void Extract_InvalidTraceParent() public void Extract_InvalidTraceParent()
{ {
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new TracerShim(tracer, new TraceContextFormat()); var shim = new TracerShim(tracer, new TraceContextFormat());
var mockCarrier = new Mock<ITextMap>(); var mockCarrier = new Mock<ITextMap>();
@ -159,7 +159,7 @@ namespace OpenTelemetry.Shims.OpenTracing.Tests
var format = new TraceContextFormat(); var format = new TraceContextFormat();
var tracer = TracerProvider.GetTracer(TracerName); var tracer = TracerProvider.Default.GetTracer(TracerName);
var shim = new TracerShim(tracer, format); var shim = new TracerShim(tracer, format);
// first inject // first inject

View File

@ -29,7 +29,7 @@ namespace OpenTelemetry.Trace.Test
[Fact] [Fact]
public void SetStatus() public void SetStatus()
{ {
using var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b using var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName)); .AddActivitySource(ActivitySourceName));
using var source = new ActivitySource(ActivitySourceName); using var source = new ActivitySource(ActivitySourceName);
@ -43,7 +43,7 @@ namespace OpenTelemetry.Trace.Test
[Fact] [Fact]
public void SetStatusWithDescription() public void SetStatusWithDescription()
{ {
using var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b using var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName)); .AddActivitySource(ActivitySourceName));
using var source = new ActivitySource(ActivitySourceName); using var source = new ActivitySource(ActivitySourceName);
@ -59,7 +59,7 @@ namespace OpenTelemetry.Trace.Test
[Fact] [Fact]
public void SetCancelledStatus() public void SetCancelledStatus()
{ {
using var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b using var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName)); .AddActivitySource(ActivitySourceName));
using var source = new ActivitySource(ActivitySourceName); using var source = new ActivitySource(ActivitySourceName);
@ -73,7 +73,7 @@ namespace OpenTelemetry.Trace.Test
[Fact] [Fact]
public void GetStatusWithNoStatusInActivity() public void GetStatusWithNoStatusInActivity()
{ {
using var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b using var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName)); .AddActivitySource(ActivitySourceName));
using var source = new ActivitySource(ActivitySourceName); using var source = new ActivitySource(ActivitySourceName);
@ -86,7 +86,7 @@ namespace OpenTelemetry.Trace.Test
[Fact(Skip = "Activity does not support UpdateTag now. Enable once .NET Activity support SetTag method.")] [Fact(Skip = "Activity does not support UpdateTag now. Enable once .NET Activity support SetTag method.")]
public void LastSetStatusWins() public void LastSetStatusWins()
{ {
using var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b using var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName)); .AddActivitySource(ActivitySourceName));
using var source = new ActivitySource(ActivitySourceName); using var source = new ActivitySource(ActivitySourceName);

View File

@ -39,7 +39,7 @@ namespace OpenTelemetry.Tests.Implementation.Trace
{ {
ShouldListenTo = _ => true, ShouldListenTo = _ => true,
GetRequestedDataUsingContext = (ref ActivityCreationOptions<ActivityContext> options) => GetRequestedDataUsingContext = (ref ActivityCreationOptions<ActivityContext> options) =>
TracerProviderSdk.ComputeActivityDataRequest(options, testSampler), OpenTelemetry.Trace.OpenTelemetrySdk.ComputeActivityDataRequest(options, testSampler),
}; };
ActivitySource.AddActivityListener(listener); ActivitySource.AddActivityListener(listener);

View File

@ -31,7 +31,7 @@ namespace OpenTelemetry.Trace.Test
Activity.DefaultIdFormat = ActivityIdFormat.W3C; Activity.DefaultIdFormat = ActivityIdFormat.W3C;
Activity.ForceDefaultIdFormat = true; Activity.ForceDefaultIdFormat = true;
this.tracer = TracerProvider.GetTracer(null); this.tracer = TracerProvider.Default.GetTracer(null);
} }
[Fact] [Fact]

View File

@ -89,7 +89,7 @@ namespace OpenTelemetry.Trace.Export.Test
using var inMemoryEventListener = new InMemoryEventListener(); using var inMemoryEventListener = new InMemoryEventListener();
var activityExporter = new TestActivityExporter(null, sleepMilliseconds: 5000); var activityExporter = new TestActivityExporter(null, sleepMilliseconds: 5000);
using var activityProcessor = new BatchingActivityProcessor(activityExporter, 128, TimeSpan.FromMilliseconds(1000), TimeSpan.FromMilliseconds(0), 1); using var activityProcessor = new BatchingActivityProcessor(activityExporter, 128, TimeSpan.FromMilliseconds(1000), TimeSpan.FromMilliseconds(0), 1);
using (var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b using (var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName) .AddActivitySource(ActivitySourceName)
.SetSampler(new AlwaysOnSampler()) .SetSampler(new AlwaysOnSampler())
.AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor)))) .AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor))))
@ -105,7 +105,7 @@ namespace OpenTelemetry.Trace.Export.Test
{ {
var activityExporter = new TestActivityExporter(null); var activityExporter = new TestActivityExporter(null);
using var activityProcessor = new BatchingActivityProcessor(activityExporter, 128, DefaultDelay, DefaultTimeout, 128); using var activityProcessor = new BatchingActivityProcessor(activityExporter, 128, DefaultDelay, DefaultTimeout, 128);
using var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b using var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName) .AddActivitySource(ActivitySourceName)
.SetSampler(new AlwaysOnSampler()) .SetSampler(new AlwaysOnSampler())
.AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor))); .AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor)));
@ -133,7 +133,7 @@ namespace OpenTelemetry.Trace.Export.Test
}); });
using var activityProcessor = new BatchingActivityProcessor(activityExporter, 128, TimeSpan.FromMilliseconds(30), DefaultTimeout, 10); using var activityProcessor = new BatchingActivityProcessor(activityExporter, 128, TimeSpan.FromMilliseconds(30), DefaultTimeout, 10);
using var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b using var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName) .AddActivitySource(ActivitySourceName)
.SetSampler(new AlwaysOnSampler()) .SetSampler(new AlwaysOnSampler())
.AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor))); .AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor)));
@ -165,7 +165,7 @@ namespace OpenTelemetry.Trace.Export.Test
Thread.Sleep(50); Thread.Sleep(50);
}); });
using var activityProcessor = new BatchingActivityProcessor(activityExporter, 1, TimeSpan.FromMilliseconds(100), DefaultTimeout, 1); using var activityProcessor = new BatchingActivityProcessor(activityExporter, 1, TimeSpan.FromMilliseconds(100), DefaultTimeout, 1);
using var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b using var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName) .AddActivitySource(ActivitySourceName)
.SetSampler(new AlwaysOnSampler()) .SetSampler(new AlwaysOnSampler())
.AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor))); .AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor)));
@ -195,7 +195,7 @@ namespace OpenTelemetry.Trace.Export.Test
}); });
using var activityProcessor = new BatchingActivityProcessor(activityExporter, 128, DefaultDelay, DefaultTimeout, 3); using var activityProcessor = new BatchingActivityProcessor(activityExporter, 128, DefaultDelay, DefaultTimeout, 3);
using var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b using var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName) .AddActivitySource(ActivitySourceName)
.SetSampler(new AlwaysOnSampler()) .SetSampler(new AlwaysOnSampler())
.AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor))); .AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor)));
@ -229,7 +229,7 @@ namespace OpenTelemetry.Trace.Export.Test
int exportCalledCount = 0; int exportCalledCount = 0;
var activityExporter = new TestActivityExporter(_ => Interlocked.Increment(ref exportCalledCount)); var activityExporter = new TestActivityExporter(_ => Interlocked.Increment(ref exportCalledCount));
using var activityProcessor = new BatchingActivityProcessor(activityExporter, 128, DefaultDelay, DefaultTimeout, 1); using var activityProcessor = new BatchingActivityProcessor(activityExporter, 128, DefaultDelay, DefaultTimeout, 1);
using var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b using var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.SetSampler(new ParentOrElseSampler(new AlwaysOffSampler())) .SetSampler(new ParentOrElseSampler(new AlwaysOffSampler()))
.AddActivitySource(ActivitySourceName) .AddActivitySource(ActivitySourceName)
.AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor))); .AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor)));
@ -257,7 +257,7 @@ namespace OpenTelemetry.Trace.Export.Test
var activityExporter = new TestActivityExporter(_ => resetEvent.WaitOne(TimeSpan.FromSeconds(10))); var activityExporter = new TestActivityExporter(_ => resetEvent.WaitOne(TimeSpan.FromSeconds(10)));
using var activityProcessor = new BatchingActivityProcessor(activityExporter, 128, DefaultDelay, DefaultTimeout, 128); using var activityProcessor = new BatchingActivityProcessor(activityExporter, 128, DefaultDelay, DefaultTimeout, 128);
using var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b using var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName) .AddActivitySource(ActivitySourceName)
.SetSampler(new AlwaysOnSampler()) .SetSampler(new AlwaysOnSampler())
.AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor))); .AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor)));
@ -286,7 +286,7 @@ namespace OpenTelemetry.Trace.Export.Test
var activityExporter = new TestActivityExporter(_ => Interlocked.Increment(ref exportCalledCount)); var activityExporter = new TestActivityExporter(_ => Interlocked.Increment(ref exportCalledCount));
using var activityProcessor = using var activityProcessor =
new BatchingActivityProcessor(activityExporter, 128, DefaultDelay, DefaultTimeout, batchSize); new BatchingActivityProcessor(activityExporter, 128, DefaultDelay, DefaultTimeout, batchSize);
using (var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b using (var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName) .AddActivitySource(ActivitySourceName)
.SetSampler(new AlwaysOnSampler()) .SetSampler(new AlwaysOnSampler())
.AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor)))) .AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor))))
@ -332,7 +332,7 @@ namespace OpenTelemetry.Trace.Export.Test
using var activityProcessor = using var activityProcessor =
new BatchingActivityProcessor(activityExporter, 128, DefaultDelay, DefaultTimeout, batchSize); new BatchingActivityProcessor(activityExporter, 128, DefaultDelay, DefaultTimeout, batchSize);
using (var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b using (var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName) .AddActivitySource(ActivitySourceName)
.SetSampler(new AlwaysOnSampler()) .SetSampler(new AlwaysOnSampler())
.AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor)))) .AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor))))
@ -374,7 +374,7 @@ namespace OpenTelemetry.Trace.Export.Test
int exportCalledCount = 0; int exportCalledCount = 0;
var activityExporter = new TestActivityExporter(_ => Interlocked.Increment(ref exportCalledCount)); var activityExporter = new TestActivityExporter(_ => Interlocked.Increment(ref exportCalledCount));
using var activityProcessor = new BatchingActivityProcessor(activityExporter, 128, DefaultDelay, DefaultTimeout, batchSize); using var activityProcessor = new BatchingActivityProcessor(activityExporter, 128, DefaultDelay, DefaultTimeout, batchSize);
using (var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b using (var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName) .AddActivitySource(ActivitySourceName)
.SetSampler(new AlwaysOnSampler()) .SetSampler(new AlwaysOnSampler())
.AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor)))) .AddProcessorPipeline(pp => pp.AddProcessor(ap => activityProcessor))))
@ -419,7 +419,7 @@ namespace OpenTelemetry.Trace.Export.Test
using var inMemoryEventListener = new InMemoryEventListener(); using var inMemoryEventListener = new InMemoryEventListener();
using (var batchingActivityProcessor = new BatchingActivityProcessor(activityExporter, 128, DefaultDelay, DefaultTimeout, batchSize)) using (var batchingActivityProcessor = new BatchingActivityProcessor(activityExporter, 128, DefaultDelay, DefaultTimeout, batchSize))
{ {
using var openTelemetrySdk = TracerProviderSdk.EnableTracerProvider(b => b using var openTelemetrySdk = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName) .AddActivitySource(ActivitySourceName)
.SetSampler(new AlwaysOnSampler()) .SetSampler(new AlwaysOnSampler())
.AddProcessorPipeline(pp => pp.AddProcessor(ap => batchingActivityProcessor))); .AddProcessorPipeline(pp => pp.AddProcessor(ap => batchingActivityProcessor)));

View File

@ -32,13 +32,13 @@ namespace OpenTelemetry.Trace.Export.Test
private const string ActivitySourceName = "defaultactivitysource"; private const string ActivitySourceName = "defaultactivitysource";
private TestActivityExporter activityExporter; private TestActivityExporter activityExporter;
private TracerProviderSdk openTelemetry; private TracerProvider openTelemetry;
private ActivitySource activitySource; private ActivitySource activitySource;
public SimpleActivityProcessorTest() public SimpleActivityProcessorTest()
{ {
this.activityExporter = new TestActivityExporter(null); this.activityExporter = new TestActivityExporter(null);
this.openTelemetry = TracerProviderSdk.EnableTracerProvider(b => b this.openTelemetry = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource(ActivitySourceName) .AddActivitySource(ActivitySourceName)
.AddProcessorPipeline(p => p .AddProcessorPipeline(p => p
.SetExporter(this.activityExporter) .SetExporter(this.activityExporter)
@ -57,7 +57,7 @@ namespace OpenTelemetry.Trace.Export.Test
public void ThrowsInExporter() public void ThrowsInExporter()
{ {
this.activityExporter = new TestActivityExporter(_ => throw new ArgumentException("123")); this.activityExporter = new TestActivityExporter(_ => throw new ArgumentException("123"));
this.openTelemetry = TracerProviderSdk.EnableTracerProvider(b => b this.openTelemetry = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource("cijo") .AddActivitySource("cijo")
.AddProcessorPipeline(p => p .AddProcessorPipeline(p => p
.SetExporter(this.activityExporter) .SetExporter(this.activityExporter)
@ -74,7 +74,7 @@ namespace OpenTelemetry.Trace.Export.Test
public void ProcessorDoesNotBlockOnExporter() public void ProcessorDoesNotBlockOnExporter()
{ {
this.activityExporter = new TestActivityExporter(async _ => await Task.Delay(500)); this.activityExporter = new TestActivityExporter(async _ => await Task.Delay(500));
this.openTelemetry = TracerProviderSdk.EnableTracerProvider(b => b this.openTelemetry = OpenTelemetrySdk.CreateTracerProvider(b => b
.AddActivitySource("cijo") .AddActivitySource("cijo")
.AddProcessorPipeline(p => p .AddProcessorPipeline(p => p
.SetExporter(this.activityExporter) .SetExporter(this.activityExporter)

View File

@ -27,9 +27,9 @@ namespace OpenTelemetry.Tests.Implementation.Trace
public void ResourceGetsAssociatedWithActivity() public void ResourceGetsAssociatedWithActivity()
{ {
using var activitySource = new ActivitySource(nameof(this.ResourceGetsAssociatedWithActivity)); using var activitySource = new ActivitySource(nameof(this.ResourceGetsAssociatedWithActivity));
var expectedResource = OpenTelemetry.Resources.Resources.CreateServiceResource("ServiceNameAbc"); var expectedResource = Resources.Resources.CreateServiceResource("ServiceNameAbc");
using var openTelemetry = TracerProviderSdk.EnableTracerProvider( using var openTelemetry = OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddActivitySource(nameof(this.ResourceGetsAssociatedWithActivity)) (builder) => builder.AddActivitySource(nameof(this.ResourceGetsAssociatedWithActivity))
.SetResource(expectedResource)); .SetResource(expectedResource));
@ -45,7 +45,7 @@ namespace OpenTelemetry.Tests.Implementation.Trace
using var activitySource = new ActivitySource(nameof(this.ResourceGetsAssociatedWithActivity)); using var activitySource = new ActivitySource(nameof(this.ResourceGetsAssociatedWithActivity));
var expectedResource = Resource.Empty; var expectedResource = Resource.Empty;
using var openTelemetry = TracerProviderSdk.EnableTracerProvider( using var openTelemetry = OpenTelemetrySdk.CreateTracerProvider(
(builder) => builder.AddActivitySource(nameof(this.ResourceGetsAssociatedWithActivity))); (builder) => builder.AddActivitySource(nameof(this.ResourceGetsAssociatedWithActivity)));
using (var root = activitySource.StartActivity("root")) using (var root = activitySource.StartActivity("root"))