in src/Elastic.Ingest.OpenTelemetry/CustomOtlpTraceExporter.cs [23:37]
public CustomOtlpTraceExporter(OtlpExporterOptions options, TraceChannelOptions channelOptions) : base(options)
{
var type = GetType();
var attrbutes = new[] { new KeyValuePair<string, object>("telemetry.sdk.language", "dotnet") };
var resource = ResourceBuilder.CreateDefault();
if (!string.IsNullOrWhiteSpace(channelOptions.ServiceName))
resource.AddService(channelOptions.ServiceName);
var buildResource = resource.AddAttributes(attrbutes).Build();
// hack but there is no other way to set a resource without spinning up the world
// through SDK.
// internal void SetResource(Resource resource)
var prop = type.BaseType?.GetMethod("SetResource", BindingFlags.Instance | BindingFlags.NonPublic);
prop?.Invoke(this, new object?[]{ buildResource });
}