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

@@ -1,38 +1,42 @@
<Project ToolsVersion="15.0">
<ItemGroup>
<PackageVersion Include="Aaru.CommonTypes" Version="6.0.0-alpha10"/>
<PackageVersion Include="Aaru.Decoders" Version="6.0.0-alpha10"/>
<PackageVersion Include="Aaru.Dto" Version="6.0.0-alpha10"/>
<PackageVersion Include="AsyncFixer" Version="1.6.0"/>
<PackageVersion Include="Blazor.Bootstrap" Version="3.3.1"/>
<PackageVersion Include="ChoPGP" Version="1.0.1.5"/>
<PackageVersion Include="ErrorProne.NET.CoreAnalyzers" Version="0.1.2"/>
<PackageVersion Include="ErrorProne.NET.Structs" Version="0.1.2"/>
<PackageVersion Include="HtmlAgilityPack" Version="1.12.1"/>
<PackageVersion Include="MailKit" Version="4.12.1"/>
<PackageVersion Include="Markdig" Version="0.41.2"/>
<PackageVersion Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="9.0.6"/>
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.6"/>
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.6"/>
<PackageVersion Include="Microsoft.EntityFrameworkCore.Proxies" Version="9.0.6"/>
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="9.0.6"/>
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.6"/>
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="9.0.6"/>
<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="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"/>
<PackageVersion Include="Roslynator.Analyzers" Version="4.13.1"/>
<PackageVersion Include="Roslynator.CodeAnalysis.Analyzers" Version="4.13.1"/>
<PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.13.1"/>
<PackageVersion Include="Serilog" Version="4.3.0"/>
<PackageVersion Include="Serilog.Extensions.Logging" Version="9.0.2"/>
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0"/>
<PackageVersion Include="Serilog.Sinks.SyslogMessages" Version="4.0.0"/>
<PackageVersion Include="SmartAnalyzers.MultithreadingAnalyzer" Version="1.1.31"/>
<PackageVersion Include="Text.Analyzers" Version="4.14.0"/>
<PackageVersion Include="WebStoating.Markdig.PrismWithPlugins" Version="1.0.0"/>
<PackageVersion Include="Aaru.CommonTypes" Version="6.0.0-alpha10" />
<PackageVersion Include="Aaru.Decoders" Version="6.0.0-alpha10" />
<PackageVersion Include="Aaru.Dto" Version="6.0.0-alpha10" />
<PackageVersion Include="AsyncFixer" Version="1.6.0" />
<PackageVersion Include="Blazor.Bootstrap" Version="3.3.1" />
<PackageVersion Include="ChoPGP" Version="1.0.1.5" />
<PackageVersion Include="ErrorProne.NET.CoreAnalyzers" Version="0.1.2" />
<PackageVersion Include="ErrorProne.NET.Structs" Version="0.1.2" />
<PackageVersion Include="HtmlAgilityPack" Version="1.12.1" />
<PackageVersion Include="MailKit" Version="4.12.1" />
<PackageVersion Include="Markdig" Version="0.41.2" />
<PackageVersion Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="9.0.6" />
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="9.0.6" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.6" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Proxies" Version="9.0.6" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="9.0.6" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.6" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="9.0.6" />
<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" />
<PackageVersion Include="Roslynator.Analyzers" Version="4.13.1" />
<PackageVersion Include="Roslynator.CodeAnalysis.Analyzers" Version="4.13.1" />
<PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.13.1" />
<PackageVersion Include="Serilog" Version="4.3.0" />
<PackageVersion Include="Serilog.Extensions.Logging" Version="9.0.2" />
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" />
<PackageVersion Include="Serilog.Sinks.SyslogMessages" Version="4.0.0" />
<PackageVersion Include="SmartAnalyzers.MultithreadingAnalyzer" Version="1.1.31" />
<PackageVersion Include="Text.Analyzers" Version="4.14.0" />
<PackageVersion Include="WebStoating.Markdig.PrismWithPlugins" Version="1.0.0" />
</ItemGroup>
</Project>