in src/Elastic.OpenTelemetry.Core/Extensions/ResourceBuilderExtensions.cs [29:69]
internal static ResourceBuilder WithElasticDefaultsCore(
this ResourceBuilder builder,
BuilderState builderState,
IServiceCollection? services,
Action<ResourceBuilder, BuilderState>? configure) =>
WithElasticDefaultsCore(builder, builderState.Components, services, configure);
internal static ResourceBuilder WithElasticDefaultsCore(
this ResourceBuilder builder,
ElasticOpenTelemetryComponents components,
IServiceCollection? services,
Action<ResourceBuilder, BuilderState>? configure)
{
var callCount = Interlocked.Increment(ref WithElasticDefaultsCallCount);
components.Logger.LogWithElasticDefaultsCallCount(callCount, nameof(ResourceBuilder));
return SignalBuilder.WithElasticDefaults(builder, components.Options, components, services,
(ResourceBuilder builder, BuilderState builderState, IServiceCollection? services) =>
{
var attributes = new Dictionary<string, object>
{
{ ResourceSemanticConventions.AttributeServiceInstanceId, ApplicationInstanceId },
{ ResourceSemanticConventions.AttributeTelemetryDistroName, "elastic" },
{ ResourceSemanticConventions.AttributeTelemetryDistroVersion, VersionHelper.InformationalVersion }
};
builder.AddAttributes(attributes);
foreach (var attribute in attributes)
{
if (attribute.Value is not null)
{
var value = attribute.Value.ToString() ?? "<empty>";
builderState.Components.Logger.LogAddingResourceAttribute(attribute.Key, value, builderState.InstanceIdentifier);
}
}
configure?.Invoke(builder, builderState);
});
}