Oakrey.Applications.Telemetry
2.0.6
dotnet add package Oakrey.Applications.Telemetry --version 2.0.6
NuGet\Install-Package Oakrey.Applications.Telemetry -Version 2.0.6
<PackageReference Include="Oakrey.Applications.Telemetry" Version="2.0.6" />
<PackageVersion Include="Oakrey.Applications.Telemetry" Version="2.0.6" />
<PackageReference Include="Oakrey.Applications.Telemetry" />
paket add Oakrey.Applications.Telemetry --version 2.0.6
#r "nuget: Oakrey.Applications.Telemetry, 2.0.6"
#:package Oakrey.Applications.Telemetry@2.0.6
#addin nuget:?package=Oakrey.Applications.Telemetry&version=2.0.6
#tool nuget:?package=Oakrey.Applications.Telemetry&version=2.0.6
Oakrey.Applications.Telemetry
A Windows .NET library providing pre-configured OpenTelemetry TracerProvider factories for Console and Seq (OTLP/HTTP) backends, with HTTP client instrumentation and a DI extension for registering a Seq trace provider.
NuGet package ID: Oakrey.Applications.Telemetry
Main features
TracerProviders.ConsoleTraceProvider(sourceName)� builds aTracerProviderthat exports traces to the consoleTracerProviders.SeqTraceProvider(sourceName)� builds aTracerProviderthat exports to Seq via OTLP/HTTP (localhost:5341) and to the console, withHttpClientinstrumentation enabledAddSeqTraceProvider(IServiceCollection, sourceName)DI extension � registers the Seq provider as a singleton- Service resource metadata automatically set to
sourceNamein all providers - Hardcoded Seq endpoint:
http://localhost:5341/ingest/otlp/v1/traces(OTLP HTTP/Protobuf)
Architecture
classDiagram
class TracerProviders {
+ConsoleTraceProvider(sourceName) TracerProvider
+SeqTraceProvider(sourceName) TracerProvider
-AddSeqExporter(builder) TracerProviderBuilder
}
class TelemetryConfigurationExtensions {
+AddSeqTraceProvider(services, sourceName) IServiceCollection
}
TelemetryConfigurationExtensions --> TracerProviders : calls SeqTraceProvider
Project files
| File | Purpose |
|---|---|
TracerProviders.cs |
Static factory methods for ConsoleTraceProvider and SeqTraceProvider |
TelemetryConfigurationExtensions.cs |
IServiceCollection extension to register the Seq provider |
Requirements
- .NET 10 (Windows only �
net10.0-windows) - A running Seq instance on
localhost:5341when using the Seq provider
Dependencies
| Package | Version |
|---|---|
Microsoft.Extensions.DependencyInjection |
10.0.8 |
OpenTelemetry |
1.15.3 |
OpenTelemetry.Exporter.Console |
1.15.3 |
OpenTelemetry.Exporter.OpenTelemetryProtocol |
1.15.3 |
OpenTelemetry.Instrumentation.AspNetCore |
1.15.2 |
OpenTelemetry.Instrumentation.Http |
1.15.1 |
Installation
NuGet Package Manager
- Open your project in Visual Studio.
- Navigate to Tools > NuGet Package Manager > Manage NuGet Packages for Solution.
- Search for
Oakrey.Applications.Telemetryand click Install.
.NET CLI
dotnet add package Oakrey.Applications.Telemetry
Package Manager Console
Install-Package Oakrey.Applications.Telemetry
Configuration
The Seq OTLP endpoint is hardcoded to http://localhost:5341/ingest/otlp/v1/traces. No external configuration file is required. To target a different Seq instance, call TracerProviders.SeqTraceProvider is not directly configurable from outside � see Development notes below.
Example usage
Console exporter only
using OpenTelemetry.Trace;
using Oakrey.Applications.Telemetry;
TracerProvider provider = TracerProviders.ConsoleTraceProvider("MyApplication");
ActivitySource source = new("MyApplication");
using Activity? activity = source.StartActivity("DoWork");
activity?.SetTag("key", "value");
Seq exporter with HTTP client instrumentation
using OpenTelemetry.Trace;
using Oakrey.Applications.Telemetry;
TracerProvider provider = TracerProviders.SeqTraceProvider("MyApplication");
Dependency Injection registration
using Oakrey.Applications.Telemetry;
IServiceCollection services = new ServiceCollection();
services.AddSeqTraceProvider("MyApplication");
Development notes
- The Seq OTLP endpoint (
localhost:5341) is hardcoded inTracerProviders.AddSeqExporter. To make it configurable, extract the URI into a parameter or options object. OpenTelemetry.Instrumentation.AspNetCoreis listed as a package reference butAddAspNetCoreInstrumentation()is not called anywhere in the current source. It is a transitive dependency only.TracerProviderimplementsIDisposable. Providers created via the static factories must be disposed by the caller when the application exits.- Both
ConsoleTraceProviderandSeqTraceProvidercall.Build()immediately � they are not lazy.
License
MIT - Copyright (c) Oakrey 2016-present
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-windows7.0 is compatible. |
-
net10.0-windows7.0
- Microsoft.Extensions.DependencyInjection (>= 10.0.8)
- OpenTelemetry (>= 1.15.3)
- OpenTelemetry.Exporter.Console (>= 1.15.3)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.15.3)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.15.2)
- OpenTelemetry.Instrumentation.Http (>= 1.15.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Oakrey.Applications.Telemetry:
| Package | Downloads |
|---|---|
|
Oakrey.Applications.Base
A foundational .NET library for building modular WPF applications. Provides application lifecycle management, MVVM ViewModel resolution, structured logging, telemetry, and sequential or parallel service preloading with full unhandled-exception coverage. |
GitHub repositories
This package is not used by any popular GitHub repositories.