in src/Elastic.OpenTelemetry/Extensions/OpenTelemetryBuilderExtensions.cs [113:138]
internal static IOpenTelemetryBuilder WithElasticDefaultsCore(
this IOpenTelemetryBuilder builder,
CompositeElasticOpenTelemetryOptions options)
{
var callCount = Interlocked.Increment(ref WithElasticDefaultsCallCount);
var providerBuilderName = builder.GetType().Name;
var logger = SignalBuilder.GetLogger(builder, null, options, null);
if (callCount > 1)
{
logger.LogMultipleWithElasticDefaultsCallsWarning(callCount, nameof(IOpenTelemetryBuilder));
}
// If for some reason `WithElasticDefaults` is invoked with the `Signals` option set to
// none, we skip bootstrapping entirely. We log this as a warning since it's best to
// simply not call `WithElasticDefaults` in this scenario and it may indicate a misconfiguration.
if (options.Signals == Signals.None)
{
logger.LogSkippingBootstrapWarning();
return builder;
}
return SignalBuilder.WithElasticDefaults(builder, options, null, builder.Services, ConfigureBuilder);
}