namespace OpenTelemetry.Trace
{
///
/// Extension methods to simplify registering of dependency instrumentation.
///
public static class TracerProviderBuilderExtensions
{
///
/// Enables Microsoft.EntityFrameworkCore instrumentation.
///
/// being configured.
/// EntityFrameworkCore configuration options.
/// The instance of to chain the calls.
public static TracerProviderBuilder AddEntityFrameworkCoreInstrumentation(
this TracerProviderBuilder builder,
Action configureOptions = null)
{
if (builder == null)
{
throw new ArgumentNullException(nameof(builder));
}
var options = new EntityFrameworkInstrumentationOptions();
configureOptions?.Invoke(options);
builder.AddInstrumentation(() => new EntityFrameworkInstrumentation(options));
builder.AddSource(EntityFrameworkDiagnosticListener.ActivitySourceName);
return builder;
}
}
}