Add OpenTelemetry for tracing and metrics instrumentation

This commit is contained in:
2025-06-21 11:56:17 +01:00
parent a78ca9efa1
commit f301e6b137
3 changed files with 52 additions and 34 deletions

View File

@@ -18,6 +18,10 @@
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools"/>
<PackageReference Include="MimeKit"/>
<PackageReference Include="OpenTelemetry" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" />
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" />
<PackageReference Include="OpenTelemetry.Instrumentation.Http" />
<PackageReference Include="Serilog"/>
<PackageReference Include="Serilog.Extensions.Logging"/>
<PackageReference Include="Serilog.Sinks.Console"/>

View File

@@ -7,6 +7,8 @@ using Aaru.Server.Services;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using OpenTelemetry.Metrics;
using OpenTelemetry.Trace;
using Serilog;
using Serilog.Events;
using DbContext = Aaru.Server.Database.DbContext;
@@ -77,6 +79,14 @@ builder.Logging.AddSerilog(new LoggerConfiguration().WriteTo
restrictedToMinimumLevel: LogEventLevel.Information)
.CreateLogger());
builder.Services.AddOpenTelemetry()
.WithTracing(tracerProviderBuilder => tracerProviderBuilder
.AddAspNetCoreInstrumentation() // <-- Adds ASP.NET Core telemetry sources
.AddHttpClientInstrumentation() // <-- Adds HttpClient telemetry sources
)
.WithMetrics(metricsProviderBuilder =>
metricsProviderBuilder.AddAspNetCoreInstrumentation().AddHttpClientInstrumentation());
// Add services to the container.
builder.Services.AddRazorComponents().AddInteractiveServerComponents();

View File

@@ -21,6 +21,10 @@
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="9.0.6" />
<PackageVersion Include="Microsoft.VisualStudio.Threading.Analyzers" Version="17.14.15" />
<PackageVersion Include="MimeKit" Version="4.12.0" />
<PackageVersion Include="OpenTelemetry" Version="1.12.0" />
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.12.0" />
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.12.0" />
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.12.0" />
<PackageVersion Include="Philips.CodeAnalysis.MaintainabilityAnalyzers" Version="1.5.0" />
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql.Design" Version="1.1.2" />
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql" Version="9.0.0-preview.3.efcore.9.0.0" />