HVO.Enterprise.Telemetry
1.0.3
dotnet add package HVO.Enterprise.Telemetry --version 1.0.3
NuGet\Install-Package HVO.Enterprise.Telemetry -Version 1.0.3
<PackageReference Include="HVO.Enterprise.Telemetry" Version="1.0.3" />
<PackageVersion Include="HVO.Enterprise.Telemetry" Version="1.0.3" />
<PackageReference Include="HVO.Enterprise.Telemetry" />
paket add HVO.Enterprise.Telemetry --version 1.0.3
#r "nuget: HVO.Enterprise.Telemetry, 1.0.3"
#:package HVO.Enterprise.Telemetry@1.0.3
#addin nuget:?package=HVO.Enterprise.Telemetry&version=1.0.3
#tool nuget:?package=HVO.Enterprise.Telemetry&version=1.0.3
HVO.Enterprise.Telemetry
Core telemetry library providing unified observability (distributed tracing, metrics, structured logging) across all .NET platforms.
Features
- Distributed Tracing — OpenTelemetry-compatible Activity-based tracing
- Metrics — Counter, histogram, and gauge instrumentation
- Structured Logging — ILogger integration with correlation context
- Correlation — Automatic request/operation correlation across service boundaries
- Health Checks — Built-in telemetry health monitoring
- Configuration — Hierarchical, hot-reloadable telemetry settings
- Sampling — Configurable per-operation sampling rates
- Multi-Platform — Single binary works on .NET Framework 4.8+ through .NET 10+
Installation
dotnet add package HVO.Enterprise.Telemetry
Quick Start
Dependency Injection Setup
using HVO.Enterprise.Telemetry;
// In Startup.cs or Program.cs
services.AddTelemetry(options =>
{
options.ServiceName = "MyService";
options.DefaultSamplingRate = 0.1;
options.DefaultDetailLevel = DetailLevel.Normal;
});
Tracking Operations
// Track an operation with automatic timing and correlation
using var operation = telemetry.TrackOperation("ProcessOrder");
operation.AddProperty("orderId", orderId);
operation.AddProperty("customerId", customerId);
// Nested operations are automatically correlated
using var childOp = telemetry.TrackOperation("ValidatePayment");
childOp.AddProperty("amount", amount);
Error Handling
using var operation = telemetry.TrackOperation("ImportData");
try
{
await ImportDataAsync();
}
catch (Exception ex)
{
operation.SetException(ex);
throw;
}
Configuration Hierarchy
Telemetry settings can be configured at multiple levels (global → type → method → call-site), with more specific settings taking precedence:
// Global default
services.AddTelemetry(o => o.DefaultSamplingRate = 0.1);
// Per-type override via attribute
[TelemetryOptions(SamplingRate = 1.0)]
public class CriticalService { }
// Per-method override
[TelemetryOptions(DetailLevel = DetailLevel.Detailed, CaptureParameters = CaptureLevel.Values)]
public Task<Order> GetOrderAsync(int id) { }
Extension Packages
| Package | Purpose |
|---|---|
| HVO.Enterprise.Telemetry.OpenTelemetry | OTLP export to Jaeger, Prometheus, Grafana |
| HVO.Enterprise.Telemetry.Serilog | Serilog sink integration |
| HVO.Enterprise.Telemetry.AppInsights | Azure Application Insights bridge |
| HVO.Enterprise.Telemetry.Datadog | Datadog APM integration |
| HVO.Enterprise.Telemetry.IIS | IIS HTTP module instrumentation |
| HVO.Enterprise.Telemetry.Wcf | WCF service/client instrumentation |
| HVO.Enterprise.Telemetry.Data.EfCore | Entity Framework Core interceptor |
| HVO.Enterprise.Telemetry.Data.AdoNet | ADO.NET command wrapper |
Documentation
For full documentation, examples, and architecture details, see the GitHub repository.
Target Framework
- .NET Standard 2.0 (compatible with .NET Framework 4.8+ and .NET Core 2.0+)
License
MIT — see LICENSE for details.
| 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 was computed. 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 was computed. 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
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.3)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Options (>= 10.0.3)
- OpenTelemetry.Api (>= 1.15.0)
- System.Diagnostics.DiagnosticSource (>= 10.0.3)
- System.Net.Http (>= 4.3.4)
- System.Reflection.DispatchProxy (>= 4.7.1)
- System.Text.Json (>= 8.0.5)
- System.Threading.Channels (>= 7.0.0)
NuGet packages (8)
Showing the top 5 NuGet packages that depend on HVO.Enterprise.Telemetry:
| Package | Downloads |
|---|---|
|
HVO.Enterprise.Telemetry.OpenTelemetry
OpenTelemetry OTLP exporter integration for HVO.Enterprise.Telemetry — exports traces, metrics, and logs to any OTLP-compatible backend (Jaeger, Zipkin, Grafana Tempo, Honeycomb, Dynatrace, New Relic, Splunk, Elastic, Prometheus). |
|
|
HVO.Enterprise.Telemetry.Serilog
Serilog enrichers for HVO.Enterprise.Telemetry providing automatic Activity tracing and correlation context enrichment in Serilog log events. |
|
|
HVO.Enterprise.Telemetry.Data
Shared data instrumentation infrastructure for HVO.Enterprise.Telemetry providing OpenTelemetry semantic conventions for database operations, parameter sanitization, database system detection, and common configuration for data extension packages. |
|
|
HVO.Enterprise.Telemetry.AppInsights
Application Insights integration for HVO.Enterprise.Telemetry with dual-mode support (OTLP and Direct SDK), telemetry initializers for Activity tracing and correlation context enrichment. |
|
|
HVO.Enterprise.Telemetry.Wcf
WCF extension for HVO.Enterprise.Telemetry providing automatic distributed tracing for WCF operations with W3C TraceContext propagation in SOAP headers, client and server message inspectors, and fault tracking. |
GitHub repositories
This package is not used by any popular GitHub repositories.
v1.0.2: Update OpenTelemetry.Api dependency from 1.9.0 to 1.15.0.