Snowberry.Mediator.OpenTelemetry
2.0.0
dotnet add package Snowberry.Mediator.OpenTelemetry --version 2.0.0
NuGet\Install-Package Snowberry.Mediator.OpenTelemetry -Version 2.0.0
<PackageReference Include="Snowberry.Mediator.OpenTelemetry" Version="2.0.0" />
<PackageVersion Include="Snowberry.Mediator.OpenTelemetry" Version="2.0.0" />
<PackageReference Include="Snowberry.Mediator.OpenTelemetry" />
paket add Snowberry.Mediator.OpenTelemetry --version 2.0.0
#r "nuget: Snowberry.Mediator.OpenTelemetry, 2.0.0"
#:package Snowberry.Mediator.OpenTelemetry@2.0.0
#addin nuget:?package=Snowberry.Mediator.OpenTelemetry&version=2.0.0
#tool nuget:?package=Snowberry.Mediator.OpenTelemetry&version=2.0.0
Snowberry.Mediator.OpenTelemetry
Snowberry.DependencyInjection integration for Snowberry.Mediator OpenTelemetry instrumentation.
This package wires the InstrumentedMediator decorator from Snowberry.Mediator.OpenTelemetry.Shared into an IServiceRegistry.
For Microsoft.Extensions.DependencyInjection consumers, use the Snowberry.Mediator.Extensions.OpenTelemetry package instead.
Usage
using Snowberry.DependencyInjection;
using Snowberry.DependencyInjection.Abstractions;
using Snowberry.Mediator.DependencyInjection;
using Snowberry.Mediator.OpenTelemetry;
using var container = new ServiceContainer();
// OpenTelemetry must be registered BEFORE AddSnowberryMediator.
container.AddSnowberryMediatorOpenTelemetry(
o =>
{
o.EnablePipelineBehaviorSpans = true; // optional, off by default
o.EnableNotificationHandlerSpans = true; // optional, off by default
},
lifetime: ServiceLifetime.Scoped);
container.AddSnowberryMediator(opt =>
{
opt.RequestHandlerTypes = [typeof(MyRequestHandler)];
// ...
}, ServiceLifetime.Scoped);
using var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddSnowberryMediatorInstrumentation()
.AddConsoleExporter()
.Build();
using var meterProvider = Sdk.CreateMeterProviderBuilder()
.AddSnowberryMediatorInstrumentation()
.AddConsoleExporter()
.Build();
Order of registration
AddSnowberryMediatorOpenTelemetry must be called before AddSnowberryMediator. Snowberry.DependencyInjection's default registry does not permit re-registering IMediator once it has been registered, so the decorator has to win the initial slot. Calling the extension after AddSnowberryMediator throws InvalidOperationException. Calling it more than once is a no-op.
The lifetime argument should match the lifetime that will be passed to AddSnowberryMediator.
Limitations
The decorator's inner mediator is always constructed as a Snowberry.Mediator.Mediator. Custom IMediator implementations registered against the same registry are not invoked through this decorator. Use the Snowberry.Mediator.Extensions.OpenTelemetry package on a Microsoft.Extensions.DependencyInjection container if you need to decorate a custom mediator.
See the Snowberry.Mediator.OpenTelemetry.Shared package for the full list of emitted activities, metrics, options, and enrichment/filter hooks.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Snowberry.DependencyInjection (>= 5.1.1)
- Snowberry.Mediator.OpenTelemetry.Shared (>= 2.0.0)
-
net10.0
- Snowberry.DependencyInjection (>= 5.1.1)
- Snowberry.Mediator.OpenTelemetry.Shared (>= 2.0.0)
-
net9.0
- Snowberry.DependencyInjection (>= 5.1.1)
- Snowberry.Mediator.OpenTelemetry.Shared (>= 2.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.0 | 50 | 6/1/2026 |