Elyspio.Utils.Telemetry
1.1.2
dotnet add package Elyspio.Utils.Telemetry --version 1.1.2
NuGet\Install-Package Elyspio.Utils.Telemetry -Version 1.1.2
<PackageReference Include="Elyspio.Utils.Telemetry" Version="1.1.2" />
<PackageVersion Include="Elyspio.Utils.Telemetry" Version="1.1.2" />
<PackageReference Include="Elyspio.Utils.Telemetry" />
paket add Elyspio.Utils.Telemetry --version 1.1.2
#r "nuget: Elyspio.Utils.Telemetry, 1.1.2"
#:package Elyspio.Utils.Telemetry@1.1.2
#addin nuget:?package=Elyspio.Utils.Telemetry&version=1.1.2
#tool nuget:?package=Elyspio.Utils.Telemetry&version=1.1.2
Elyspio.Utils.Telemetry
Elyspio.Utils.Telemetry bootstraps OpenTelemetry tracing and metrics for ASP.NET Core applications.
Requirements
- .NET 10 (
net10.0)
Installation
Core package:
dotnet add package Elyspio.Utils.Telemetry
Optional instrumentation packages:
dotnet add package Elyspio.Utils.Telemetry.MongoDB
dotnet add package Elyspio.Utils.Telemetry.Sql
dotnet add package Elyspio.Utils.Telemetry.Redis
dotnet add package Elyspio.Utils.Telemetry.MassTransit
Quick start
using Coexya.Utils.Telemetry.Tracing.Builder;
using Elyspio.Utils.Telemetry.MassTransit.Extensions;
using Elyspio.Utils.Telemetry.MongoDB.Extensions;
using Elyspio.Utils.Telemetry.Redis.Extensions;
using Elyspio.Utils.Telemetry.Sql.Extensions;
using Elyspio.Utils.Telemetry.Technical.Extensions;
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilogWithTelemetry();
if (builder.Configuration.IsTelemetryEnabled(out var telemetryOptions))
{
var telemetryBuilder = new AppOpenTelemetryBuilder<Program>(telemetryOptions!, builder.Configuration)
{
Tracing = (tracing, _) => tracing
.AddAppMongoInstrumentation()
.AddAppSqlClientInstrumentation()
.AddAppRedisInstrumentation()
.AddAppMassTransitInstrumentation(),
Meter = meter => meter.AddAppMassTransitInstrumentation()
};
telemetryBuilder.Build(builder.Services);
}
MongoDB tracing
To capture MongoDB commands, subscribe MongoDbActivityEventSubscriber when creating the client:
var mongoUrl = new MongoUrl(connectionString);
var clientSettings = MongoClientSettings.FromUrl(mongoUrl);
clientSettings.ClusterConfigurator = cb => { cb.Subscribe(new MongoDbActivityEventSubscriber()); };
var client = new MongoClient(clientSettings);
MassTransit consumers
To enrich consumer traces, inherit from TracingConsumer<TMessage> and implement ConsumeAsync:
using Elyspio.Utils.Telemetry.MassTransit.Tracing;
using MassTransit;
public class ToggleTodoConsumer : TracingConsumer<ToggleTodoMessage>
{
protected override async Task ConsumeAsync(ConsumeContext<ToggleTodoMessage> context)
{
// Process message
}
}
Configuration
Add this section to appsettings.json:
{
"OpenTelemetry": {
"CollectorUri": "http://localhost:4318/",
"Service": "my-service",
"Version": "1.0.0",
"Protocol": "HttpProtobuf",
"Debug": false
}
}
Required keys:
CollectorUriService
Notes:
- If
OTEL_EXPORTER_OTLP_ENDPOINTis set, OpenTelemetry standard environment configuration is used. Protocoldefaults toGrpcif omitted.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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
- JetBrains.Annotations (>= 2025.2.4)
- Macross.OpenTelemetry.Extensions (>= 1.0.0-beta6)
- Newtonsoft.Json (>= 13.0.3)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.15.0)
- OpenTelemetry.Extensions.Hosting (>= 1.15.0)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.15.0)
- OpenTelemetry.Instrumentation.Http (>= 1.15.0)
- OpenTelemetry.Instrumentation.Process (>= 1.0.0-alpha.6)
- OpenTelemetry.Instrumentation.Runtime (>= 1.15.0)
- Serilog.AspNetCore (>= 10.0.0)
- Serilog.Sinks.OpenTelemetry (>= 4.2.0)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on Elyspio.Utils.Telemetry:
| Package | Downloads |
|---|---|
|
Elyspio.Utils.Telemetry.MongoDB
Bootstrap OpenTelemetry instrumentation/exporter |
|
|
Elyspio.Utils.Telemetry.Redis
Bootstrap OpenTelemetry instrumentation/exporter |
|
|
Elyspio.Utils.Telemetry.MassTransit
Bootstrap OpenTelemetry instrumentation/exporter |
|
|
Elyspio.Utils.Telemetry.Sql
Bootstrap OpenTelemetry instrumentation/exporter |
GitHub repositories
This package is not used by any popular GitHub repositories.