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

@@ -19,9 +19,13 @@
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" />
<PackageReference Include="MimeKit" />
<PackageReference Include="OpenTelemetry" />
<PackageReference Include="OpenTelemetry.Exporter.Prometheus.AspNetCore" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" />
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" />
<PackageReference Include="OpenTelemetry.Instrumentation.EventCounters" />
<PackageReference Include="OpenTelemetry.Instrumentation.Http" />
<PackageReference Include="OpenTelemetry.Instrumentation.Process" />
<PackageReference Include="OpenTelemetry.Instrumentation.Runtime" />
<PackageReference Include="Sentry" />
<PackageReference Include="Sentry.AspNetCore" />
<PackageReference Include="Sentry.Extensions.Logging" />

View File

@@ -9,6 +9,7 @@ using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using OpenTelemetry.Metrics;
using OpenTelemetry.Trace;
using OpenTelemetry.Resources;
using Sentry.OpenTelemetry;
using Serilog;
using Serilog.Events;
@@ -114,7 +115,23 @@ builder.Services.AddOpenTelemetry()
.AddSentry() // <-- Configure OpenTelemetry to send trace information to Sentry
)
.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 =>
{
@@ -191,6 +208,8 @@ app.MapRazorComponents<App>().AddInteractiveServerRenderMode();
app.MapAdditionalIdentityEndpoints();
app.MapControllers();
app.UseOpenTelemetryPrometheusScrapingEndpoint();
using(IServiceScope scope = app.Services.CreateScope())
{
IServiceProvider services = scope.ServiceProvider;

View File

@@ -22,9 +22,13 @@
<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.Exporter.Prometheus.AspNetCore" Version="1.12.0-beta.1" />
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.12.0" />
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.12.0" />
<PackageVersion Include="OpenTelemetry.Instrumentation.EventCounters" Version="1.5.1-alpha.1" />
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.12.0" />
<PackageVersion Include="OpenTelemetry.Instrumentation.Process" Version="1.12.0-beta.1" />
<PackageVersion Include="OpenTelemetry.Instrumentation.Runtime" 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" />