BuildingBlocks.Telemetry
1.0.0
See the version list below for details.
dotnet add package BuildingBlocks.Telemetry --version 1.0.0
NuGet\Install-Package BuildingBlocks.Telemetry -Version 1.0.0
<PackageReference Include="BuildingBlocks.Telemetry" Version="1.0.0" />
<PackageVersion Include="BuildingBlocks.Telemetry" Version="1.0.0" />
<PackageReference Include="BuildingBlocks.Telemetry" />
paket add BuildingBlocks.Telemetry --version 1.0.0
#r "nuget: BuildingBlocks.Telemetry, 1.0.0"
#:package BuildingBlocks.Telemetry@1.0.0
#addin nuget:?package=BuildingBlocks.Telemetry&version=1.0.0
#tool nuget:?package=BuildingBlocks.Telemetry&version=1.0.0
BuildingBlocks.Telemetry
Config-driven OpenTelemetry metrics, logging, and tracing for .NET.
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.
See CHANGELOG.md in the repository for release notes.