BuildingBlocks.Telemetry
1.0.1
See the version list below for details.
dotnet add package BuildingBlocks.Telemetry --version 1.0.1
NuGet\Install-Package BuildingBlocks.Telemetry -Version 1.0.1
<PackageReference Include="BuildingBlocks.Telemetry" Version="1.0.1" />
<PackageVersion Include="BuildingBlocks.Telemetry" Version="1.0.1" />
<PackageReference Include="BuildingBlocks.Telemetry" />
paket add BuildingBlocks.Telemetry --version 1.0.1
#r "nuget: BuildingBlocks.Telemetry, 1.0.1"
#:package BuildingBlocks.Telemetry@1.0.1
#addin nuget:?package=BuildingBlocks.Telemetry&version=1.0.1
#tool nuget:?package=BuildingBlocks.Telemetry&version=1.0.1
BuildingBlocks.Telemetry
Config-driven OpenTelemetry metrics, logging, and tracing for .NET.
What's new in 1.0.1
IntegrateMediatoralsoAddMeter("BuildingBlocks.Mediator")so Send metrics export with tracesTelemetryDefaults.MediatorMeter(same name as the mediator ActivitySource)
Requirements
- .NET 8, .NET 9, or .NET 10 (
net8.0/net9.0/net10.0) IHostApplicationBuilder(Microsoft.AspNetCore.App)
Install
dotnet add package BuildingBlocks.Telemetry
Quick start
builder.AddTelemetry(o =>
{
o.IntegrateMediator = true;
o.Instrumentation.Npgsql = true;
o.Instrumentation.EventBus = true;
});
builder.AddTelemetry(
configureOptions: o => o.EnableMetrics = true,
configureBuilder: t => t.AddSource("DbMigrations"));
OTLP turns on when OTEL_EXPORTER_OTLP_ENDPOINT is set. Prefer env over hard-coded endpoints. On that fast-path, Exporters.Otlp.Protocol is ignored; use OTEL_EXPORTER_OTLP_PROTOCOL.
Features
- Tracing, metrics, and logs from one
AddTelemetrycall - Stable instrumentations: ASP.NET Core, HttpClient, Runtime, Npgsql (on by default); SqlClient opt-in
- Framework meters: Hosting, Kestrel, Routing, Diagnostics, Auth, MemoryPool, Http, DNS
- Health/metrics path filter (
/health,/alive,/ready,/metrics) RecordExceptionandSetErrorStatusOnExceptiontelemetry.componentspan tag for filtering- Startup summary log: service name, environment, signals, exporter modes, instrumentation — plus a warning when no exporter is configured
- Source-only: Mediator (
IntegrateMediator), EventBus, MassTransit - Exporters: OTLP, Console, optional Azure Monitor
- ParentBased sampling; AlwaysOn in Development unless
TracesSamplerRatiois set - Trace-based exemplars;
deployment.environment/service.environmentresource attributes TelemetryActivityfor manual spansTelemetryBuilderhooks:ConfigureTracing/ConfigureMetrics/ConfigureLogging/AddSource/AddMeter
ConfigureAspNetCore / ConfigureHttpClient / ConfigureSqlClient order: Filter / RecordException → user callback → telemetry.component.
Extra instrumentations (not shipped here) go through TelemetryBuilder.ConfigureTracing.
Startup summary
One Information log after host start, e.g.:
BuildingBlocks.Telemetry ready for catalog-api in Development. Signals: traces, metrics, logs.
Exporters: OTLP (environment). Instrumentation: aspnetcore, httpclient, runtime, npgsql, framework-meters, mediator.
Endpoints, OTLP headers, and connection strings are never logged. Silence it with a log filter on
BuildingBlocks.Telemetry.Internal.Pipeline.TelemetryStartupSummaryReporter.
Docs
License
MIT — Copyright (c) 2026 Mohammad Hasan Hosseini
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. 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. |
-
net10.0
- Azure.Monitor.OpenTelemetry.Exporter (>= 1.8.3)
- Npgsql.OpenTelemetry (>= 10.0.3)
- OpenTelemetry.Exporter.Console (>= 1.18.0)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.18.0)
- OpenTelemetry.Extensions.Hosting (>= 1.18.0)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.18.0)
- OpenTelemetry.Instrumentation.Http (>= 1.18.0)
- OpenTelemetry.Instrumentation.Runtime (>= 1.18.0)
- OpenTelemetry.Instrumentation.SqlClient (>= 1.18.0)
-
net8.0
- Azure.Monitor.OpenTelemetry.Exporter (>= 1.8.3)
- Npgsql.OpenTelemetry (>= 8.0.9)
- OpenTelemetry.Exporter.Console (>= 1.18.0)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.18.0)
- OpenTelemetry.Extensions.Hosting (>= 1.18.0)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.18.0)
- OpenTelemetry.Instrumentation.Http (>= 1.18.0)
- OpenTelemetry.Instrumentation.Runtime (>= 1.18.0)
- OpenTelemetry.Instrumentation.SqlClient (>= 1.18.0)
-
net9.0
- Azure.Monitor.OpenTelemetry.Exporter (>= 1.8.3)
- Npgsql.OpenTelemetry (>= 9.0.5)
- OpenTelemetry.Exporter.Console (>= 1.18.0)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.18.0)
- OpenTelemetry.Extensions.Hosting (>= 1.18.0)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.18.0)
- OpenTelemetry.Instrumentation.Http (>= 1.18.0)
- OpenTelemetry.Instrumentation.Runtime (>= 1.18.0)
- OpenTelemetry.Instrumentation.SqlClient (>= 1.18.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
1.0.1: IntegrateMediator also AddMeter(BuildingBlocks.Mediator) so Send metrics export with traces; TelemetryDefaults.MediatorMeter. https://github.com/Maxofpower/FeatureFusion/blob/main/CHANGELOG.md