C
C#2w ago
James

Blazor WASM OTeL ManagedError: AggregateException_ctor_DefaultMessage (Arg_PlatformNotSupported)

Trying to add OTeL logging to my Blazor WASM Standalone app.
public static WebAssemblyHostBuilder AddOpenTelemetry(this WebAssemblyHostBuilder builder)
{
var telemetryOptions = builder.Configuration
.GetSection(nameof(TelemetryOptions))
.Get<TelemetryOptions>()
?? new TelemetryOptions();

builder.Services.AddSingleton(telemetryOptions);

builder.Logging.ClearProviders();
builder.Logging.AddConsole();

if (telemetryOptions.Address is not null)
{
builder.Logging.AddOpenTelemetry(logging =>
{
var rb = ResourceBuilder.CreateDefault();
ConfigureResource(rb);

logging.IncludeFormattedMessage = true;
logging.SetResourceBuilder(rb);

logging.AddOtlpExporter(oep =>
{
oep.Protocol = OtlpExportProtocol.HttpProtobuf;
oep.Endpoint = telemetryOptions.Address;
});
});
}

builder.Logging.AddFilter((_, level) => level >= telemetryOptions.CurrentLogLevel);

return builder;

void ConfigureResource(ResourceBuilder resourceBuilder)
{
resourceBuilder
.AddService(
serviceName: Assembly.GetEntryAssembly()?.GetName().Name!,
serviceInstanceId: Environment.MachineName)
.AddAttributes(
[new KeyValuePair<string, object>(
"deployment.environment", builder.HostEnvironment.Environment)]);
}
}
public static WebAssemblyHostBuilder AddOpenTelemetry(this WebAssemblyHostBuilder builder)
{
var telemetryOptions = builder.Configuration
.GetSection(nameof(TelemetryOptions))
.Get<TelemetryOptions>()
?? new TelemetryOptions();

builder.Services.AddSingleton(telemetryOptions);

builder.Logging.ClearProviders();
builder.Logging.AddConsole();

if (telemetryOptions.Address is not null)
{
builder.Logging.AddOpenTelemetry(logging =>
{
var rb = ResourceBuilder.CreateDefault();
ConfigureResource(rb);

logging.IncludeFormattedMessage = true;
logging.SetResourceBuilder(rb);

logging.AddOtlpExporter(oep =>
{
oep.Protocol = OtlpExportProtocol.HttpProtobuf;
oep.Endpoint = telemetryOptions.Address;
});
});
}

builder.Logging.AddFilter((_, level) => level >= telemetryOptions.CurrentLogLevel);

return builder;

void ConfigureResource(ResourceBuilder resourceBuilder)
{
resourceBuilder
.AddService(
serviceName: Assembly.GetEntryAssembly()?.GetName().Name!,
serviceInstanceId: Environment.MachineName)
.AddAttributes(
[new KeyValuePair<string, object>(
"deployment.environment", builder.HostEnvironment.Environment)]);
}
}
But when I run it I get: ManagedError: AggregateException_ctor_DefaultMessage (Arg_PlatformNotSupported) https://github.com/open-telemetry/opentelemetry-dotnet/issues/2816 In this issue people are discussing traces as if its the only problem not that logging is too, and they seem to have got traces to work somewhat, but I am not sure what I can change in my implementation.
GitHub
Tracing not working in Blazor WebAssembly application · Issue #281...
Bug Report OpenTelemetry.Exporter.Console 1.2.0-rc1 Runtime version (e.g. net461, net48, netcoreapp3.1, net5.0 etc. You can find this information from the *.csproj file): net6.0 Blazor app running ...
1 Reply
Unknown User
Unknown User2w ago
Message Not Public
Sign In & Join Server To View

Did you find this page helpful?