in src/Elastic.OpenTelemetry/Extensions/TracerProviderBuilderExtensions.cs [105:138]
internal static TracerProviderBuilder WithElasticDefaults(
this TracerProviderBuilder builder,
IConfiguration configuration,
IServiceCollection serviceCollection) =>
WithElasticDefaultsCore(builder, new(configuration), null, serviceCollection);
internal static TracerProviderBuilder WithElasticDefaults(
this TracerProviderBuilder builder,
ElasticOpenTelemetryComponents components,
IServiceCollection? services) =>
WithElasticDefaultsCore(builder, components.Options, components, services);
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static TracerProviderBuilder WithElasticDefaultsCore(
TracerProviderBuilder builder,
CompositeElasticOpenTelemetryOptions? options,
ElasticOpenTelemetryComponents? components,
IServiceCollection? services)
{
var logger = SignalBuilder.GetLogger(builder, components, options, null);
var callCount = Interlocked.Increment(ref WithElasticDefaultsCallCount);
if (callCount > 1)
{
logger.LogMultipleWithElasticDefaultsCallsWarning(callCount, nameof(TracerProviderBuilder));
}
else
{
logger.LogWithElasticDefaultsCallCount(callCount, nameof(TracerProviderBuilder));
}
return SignalBuilder.WithElasticDefaults(builder, Signals.Traces, options, components, services, ConfigureBuilder);
}