dotnet add package --prerelease OpenTelemetry.Extensions.Hosting
The OpenTelemetry.Extensions.Hosting package provides extension methods for
automatically starting (and stopping) OpenTelemetry tracing (TracerProvider
)
and metrics (MeterProvider
) in ASP.NET
Core and
.NET Generic
hosts. These are completely optional extensions meant to simplify the
management of the OpenTelemetry SDK lifecycle.
Targeting OpenTelemetry.OpenTelemetryBuilder
:
StartWithHost
: Registers an IHostedService to automatically start tracing and/or metric services in the supplied IServiceCollection.
Note: The below extension methods should be called by application host code only. Library authors see: Registration extension method guidance for library authors.
Note: Multiple calls to the below extensions will NOT result in multiple
providers. To establish multiple providers use the
Sdk.CreateTracerProviderBuilder()
and/or Sdk.CreateMeterProviderBuilder()
methods. See TracerProvider
configuration
and Building a
MeterProvider
for more details.
Targeting Microsoft.Extensions.DependencyInjection.IServiceCollection
:
-
AddOpenTelemetryTracing
: Configure OpenTelemetry and register an IHostedService to automatically start tracing services in the supplied IServiceCollection. -
AddOpenTelemetryMetrics
: Configure OpenTelemetry and register an IHostedService to automatically start metric services in the supplied IServiceCollection.
The following example shows how to register OpenTelemetry tracing & metrics in an ASP.NET Core host using the OpenTelemetry.Extensions.Hosting extensions.
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using OpenTelemetry.Metrics;
using OpenTelemetry.Trace;
var appBuilder = WebApplication.CreateBuilder(args);
appBuilder.Services.AddOpenTelemetry()
.WithTracing(builder => builder.AddConsoleExporter())
.WithMetrics(builder => builder.AddConsoleExporter())
.StartWithHost();
var app = appBuilder.Build();
app.Run();