Add more telemetry.

This commit is contained in:
2025-09-10 18:49:13 +01:00
parent 1941c3fe7a
commit 61c962d4c4
3 changed files with 115 additions and 88 deletions

View File

@@ -5,51 +5,55 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Aaru.CommonTypes"/> <PackageReference Include="Aaru.CommonTypes" />
<PackageReference Include="Aaru.Decoders"/> <PackageReference Include="Aaru.Decoders" />
<PackageReference Include="Aaru.Dto"/> <PackageReference Include="Aaru.Dto" />
<PackageReference Include="Blazor.Bootstrap"/> <PackageReference Include="Blazor.Bootstrap" />
<PackageReference Include="HtmlAgilityPack"/> <PackageReference Include="HtmlAgilityPack" />
<PackageReference Include="ChoPGP"/> <PackageReference Include="ChoPGP" />
<PackageReference Include="MailKit"/> <PackageReference Include="MailKit" />
<PackageReference Include="Markdig"/> <PackageReference Include="Markdig" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore"/> <PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore"/> <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite"/> <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools"/> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" />
<PackageReference Include="MimeKit"/> <PackageReference Include="MimeKit" />
<PackageReference Include="OpenTelemetry"/> <PackageReference Include="OpenTelemetry" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting"/> <PackageReference Include="OpenTelemetry.Exporter.Prometheus.AspNetCore" />
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore"/> <PackageReference Include="OpenTelemetry.Extensions.Hosting" />
<PackageReference Include="OpenTelemetry.Instrumentation.Http"/> <PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" />
<PackageReference Include="Sentry"/> <PackageReference Include="OpenTelemetry.Instrumentation.EventCounters" />
<PackageReference Include="Sentry.AspNetCore"/> <PackageReference Include="OpenTelemetry.Instrumentation.Http" />
<PackageReference Include="Sentry.Extensions.Logging"/> <PackageReference Include="OpenTelemetry.Instrumentation.Process" />
<PackageReference Include="Sentry.OpenTelemetry"/> <PackageReference Include="OpenTelemetry.Instrumentation.Runtime" />
<PackageReference Include="Sentry.Serilog"/> <PackageReference Include="Sentry" />
<PackageReference Include="Serilog"/> <PackageReference Include="Sentry.AspNetCore" />
<PackageReference Include="Serilog.Extensions.Logging"/> <PackageReference Include="Sentry.Extensions.Logging" />
<PackageReference Include="Serilog.Sinks.Console"/> <PackageReference Include="Sentry.OpenTelemetry" />
<PackageReference Include="Serilog.Sinks.File"/> <PackageReference Include="Sentry.Serilog" />
<PackageReference Include="Serilog.Sinks.SyslogMessages"/> <PackageReference Include="Serilog" />
<PackageReference Include="WebStoating.Markdig.PrismWithPlugins"/> <PackageReference Include="Serilog.Extensions.Logging" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql"/> <PackageReference Include="Serilog.Sinks.Console" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql.Design"/> <PackageReference Include="Serilog.Sinks.File" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies"/> <PackageReference Include="Serilog.Sinks.SyslogMessages" />
<PackageReference Include="AsyncFixer"/> <PackageReference Include="WebStoating.Markdig.PrismWithPlugins" />
<PackageReference Include="ErrorProne.NET.CoreAnalyzers"/> <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" />
<PackageReference Include="ErrorProne.NET.Structs"/> <PackageReference Include="Pomelo.EntityFrameworkCore.MySql.Design" />
<PackageReference Include="Microsoft.VisualStudio.Threading.Analyzers"/> <PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" />
<PackageReference Include="Philips.CodeAnalysis.MaintainabilityAnalyzers"/> <PackageReference Include="AsyncFixer" />
<PackageReference Include="Roslynator.Analyzers"/> <PackageReference Include="ErrorProne.NET.CoreAnalyzers" />
<PackageReference Include="Roslynator.CodeAnalysis.Analyzers"/> <PackageReference Include="ErrorProne.NET.Structs" />
<PackageReference Include="Roslynator.Formatting.Analyzers"/> <PackageReference Include="Microsoft.VisualStudio.Threading.Analyzers" />
<PackageReference Include="SmartAnalyzers.MultithreadingAnalyzer"/> <PackageReference Include="Philips.CodeAnalysis.MaintainabilityAnalyzers" />
<PackageReference Include="Text.Analyzers"/> <PackageReference Include="Roslynator.Analyzers" />
<PackageReference Include="Roslynator.CodeAnalysis.Analyzers" />
<PackageReference Include="Roslynator.Formatting.Analyzers" />
<PackageReference Include="SmartAnalyzers.MultithreadingAnalyzer" />
<PackageReference Include="Text.Analyzers" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="wwwroot\assets\"/> <Folder Include="wwwroot\assets\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -59,7 +63,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Aaru.Server.Database\Aaru.Server.Database.csproj"/> <ProjectReference Include="..\Aaru.Server.Database\Aaru.Server.Database.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -9,6 +9,7 @@ using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using OpenTelemetry.Metrics; using OpenTelemetry.Metrics;
using OpenTelemetry.Trace; using OpenTelemetry.Trace;
using OpenTelemetry.Resources;
using Sentry.OpenTelemetry; using Sentry.OpenTelemetry;
using Serilog; using Serilog;
using Serilog.Events; using Serilog.Events;
@@ -114,7 +115,23 @@ builder.Services.AddOpenTelemetry()
.AddSentry() // <-- Configure OpenTelemetry to send trace information to Sentry .AddSentry() // <-- Configure OpenTelemetry to send trace information to Sentry
) )
.WithMetrics(metricsProviderBuilder => .WithMetrics(metricsProviderBuilder =>
metricsProviderBuilder.AddAspNetCoreInstrumentation().AddHttpClientInstrumentation()); metricsProviderBuilder
.SetResourceBuilder(ResourceBuilder.CreateDefault()
.AddService(
serviceName: "Aaru.Server",
serviceVersion: typeof(Program).Assembly.GetName().Version?.ToString() ?? "unknown"))
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddRuntimeInstrumentation()
.AddProcessInstrumentation()
.AddEventCountersInstrumentation(options =>
{
options.AddEventSources(
"System.Runtime",
"Microsoft.AspNetCore.Hosting",
"Microsoft-AspNetCore-Server-Kestrel");
})
.AddPrometheusExporter());
builder.WebHost.UseSentry(o => builder.WebHost.UseSentry(o =>
{ {
@@ -191,6 +208,8 @@ app.MapRazorComponents<App>().AddInteractiveServerRenderMode();
app.MapAdditionalIdentityEndpoints(); app.MapAdditionalIdentityEndpoints();
app.MapControllers(); app.MapControllers();
app.UseOpenTelemetryPrometheusScrapingEndpoint();
using(IServiceScope scope = app.Services.CreateScope()) using(IServiceScope scope = app.Services.CreateScope())
{ {
IServiceProvider services = scope.ServiceProvider; IServiceProvider services = scope.ServiceProvider;

View File

@@ -1,48 +1,52 @@
<Project ToolsVersion="15.0"> <Project ToolsVersion="15.0">
<ItemGroup> <ItemGroup>
<PackageVersion Include="Aaru.CommonTypes" Version="6.0.0-alpha10"/> <PackageVersion Include="Aaru.CommonTypes" Version="6.0.0-alpha10" />
<PackageVersion Include="Aaru.Decoders" 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="Aaru.Dto" Version="6.0.0-alpha10" />
<PackageVersion Include="AsyncFixer" Version="1.6.0"/> <PackageVersion Include="AsyncFixer" Version="1.6.0" />
<PackageVersion Include="Blazor.Bootstrap" Version="3.3.1"/> <PackageVersion Include="Blazor.Bootstrap" Version="3.3.1" />
<PackageVersion Include="ChoPGP" Version="1.0.1.5"/> <PackageVersion Include="ChoPGP" Version="1.0.1.5" />
<PackageVersion Include="ErrorProne.NET.CoreAnalyzers" Version="0.1.2"/> <PackageVersion Include="ErrorProne.NET.CoreAnalyzers" Version="0.1.2" />
<PackageVersion Include="ErrorProne.NET.Structs" Version="0.1.2"/> <PackageVersion Include="ErrorProne.NET.Structs" Version="0.1.2" />
<PackageVersion Include="HtmlAgilityPack" Version="1.12.1"/> <PackageVersion Include="HtmlAgilityPack" Version="1.12.1" />
<PackageVersion Include="MailKit" Version="4.12.1"/> <PackageVersion Include="MailKit" Version="4.12.1" />
<PackageVersion Include="Markdig" Version="0.41.2"/> <PackageVersion Include="Markdig" Version="0.41.2" />
<PackageVersion Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="9.0.6"/> <PackageVersion Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="9.0.6" />
<PackageVersion Include="Microsoft.AspNetCore.Identity.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.Design" Version="9.0.6" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Proxies" 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.Sqlite" Version="9.0.6" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" 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.Json" Version="9.0.6" />
<PackageVersion Include="Microsoft.Extensions.Configuration" 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="Microsoft.VisualStudio.Threading.Analyzers" Version="17.14.15" />
<PackageVersion Include="MimeKit" Version="4.12.0"/> <PackageVersion Include="MimeKit" Version="4.12.0" />
<PackageVersion Include="OpenTelemetry" Version="1.12.0"/> <PackageVersion Include="OpenTelemetry" Version="1.12.0" />
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.12.0"/> <PackageVersion Include="OpenTelemetry.Exporter.Prometheus.AspNetCore" Version="1.12.0-beta.1" />
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.12.0"/> <PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.12.0" />
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.12.0"/> <PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.12.0" />
<PackageVersion Include="Philips.CodeAnalysis.MaintainabilityAnalyzers" Version="1.5.0"/> <PackageVersion Include="OpenTelemetry.Instrumentation.EventCounters" Version="1.5.1-alpha.1" />
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql.Design" Version="1.1.2"/> <PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.12.0" />
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql" Version="9.0.0-preview.3.efcore.9.0.0"/> <PackageVersion Include="OpenTelemetry.Instrumentation.Process" Version="1.12.0-beta.1" />
<PackageVersion Include="Roslynator.Analyzers" Version="4.13.1"/> <PackageVersion Include="OpenTelemetry.Instrumentation.Runtime" Version="1.12.0" />
<PackageVersion Include="Roslynator.CodeAnalysis.Analyzers" Version="4.13.1"/> <PackageVersion Include="Philips.CodeAnalysis.MaintainabilityAnalyzers" Version="1.5.0" />
<PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.13.1"/> <PackageVersion Include="Pomelo.EntityFrameworkCore.MySql.Design" Version="1.1.2" />
<PackageVersion Include="Sentry" Version="5.11.0"/> <PackageVersion Include="Pomelo.EntityFrameworkCore.MySql" Version="9.0.0-preview.3.efcore.9.0.0" />
<PackageVersion Include="Sentry.AspNetCore" Version="5.11.0"/> <PackageVersion Include="Roslynator.Analyzers" Version="4.13.1" />
<PackageVersion Include="Sentry.Extensions.Logging" Version="5.11.0"/> <PackageVersion Include="Roslynator.CodeAnalysis.Analyzers" Version="4.13.1" />
<PackageVersion Include="Sentry.OpenTelemetry" Version="5.11.0"/> <PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.13.1" />
<PackageVersion Include="Sentry.Serilog" Version="5.11.0"/> <PackageVersion Include="Sentry" Version="5.11.0" />
<PackageVersion Include="Serilog" Version="4.3.0"/> <PackageVersion Include="Sentry.AspNetCore" Version="5.11.0" />
<PackageVersion Include="Serilog.Extensions.Logging" Version="9.0.2"/> <PackageVersion Include="Sentry.Extensions.Logging" Version="5.11.0" />
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0"/> <PackageVersion Include="Sentry.OpenTelemetry" Version="5.11.0" />
<PackageVersion Include="Serilog.Sinks.File" Version="7.0.0"/> <PackageVersion Include="Sentry.Serilog" Version="5.11.0" />
<PackageVersion Include="Serilog.Sinks.SyslogMessages" Version="4.0.0"/> <PackageVersion Include="Serilog" Version="4.3.0" />
<PackageVersion Include="SmartAnalyzers.MultithreadingAnalyzer" Version="1.1.31"/> <PackageVersion Include="Serilog.Extensions.Logging" Version="9.0.2" />
<PackageVersion Include="Text.Analyzers" Version="4.14.0"/> <PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" />
<PackageVersion Include="WebStoating.Markdig.PrismWithPlugins" Version="1.0.0"/> <PackageVersion Include="Serilog.Sinks.File" Version="7.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> </ItemGroup>
</Project> </Project>