summary refs log tree commit diff
path: root/extra/admin-api/Spacebar.Offload/Program.cs
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2026-06-30 18:35:29 +0200
committerRory& <root@rory.gay>2026-06-30 18:35:29 +0200
commit1dd3825ea070641cb034139d33b99d2b70ea6a98 (patch)
treecb10dd36b72ed2114546238ab877404fe89740a6 /extra/admin-api/Spacebar.Offload/Program.cs
parentVarious tests stuff (diff)
downloadserver-ts-1dd3825ea070641cb034139d33b99d2b70ea6a98.tar.xz
Various C# continuations
Diffstat (limited to 'extra/admin-api/Spacebar.Offload/Program.cs')
-rw-r--r--extra/admin-api/Spacebar.Offload/Program.cs32
1 files changed, 28 insertions, 4 deletions
diff --git a/extra/admin-api/Spacebar.Offload/Program.cs b/extra/admin-api/Spacebar.Offload/Program.cs

index fd849954a..59cc3d0c2 100644 --- a/extra/admin-api/Spacebar.Offload/Program.cs +++ b/extra/admin-api/Spacebar.Offload/Program.cs
@@ -1,7 +1,10 @@ +using System.Diagnostics.Metrics; using System.Text.Json; using System.Text.Json.Serialization; using ArcaneLibs.Extensions; using Microsoft.EntityFrameworkCore; +using OpenTelemetry.Metrics; +using OpenTelemetry.Resources; using Spacebar.Interop.Authentication; using Spacebar.Interop.Authentication.AspNetCore; using Spacebar.Models.Db.Contexts; @@ -12,11 +15,28 @@ if (!string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("APPSETTINGS_P builder.Configuration.AddJsonFile(Environment.GetEnvironmentVariable("APPSETTINGS_PATH")!); // Add services to the container. +builder.Services.AddOpenTelemetry() + .ConfigureResource(resource=> { + resource.AddService(serviceName: builder.Environment.ApplicationName, serviceNamespace: builder.Environment.ApplicationName); + }) + .WithMetrics(builder => + { + builder.AddPrometheusExporter(); + + builder.AddMeter("Microsoft.AspNetCore.Hosting", "Microsoft.AspNetCore.Server.Kestrel", "System.Runtime", "Microsoft.Extensions.Diagnostics.ResourceMonitoring", "Microsoft.AspNetCore.Routing", "Microsoft.AspNetCore.Diagnostics", "Microsoft.AspNetCore.RateLimiting", "Microsoft.AspNetCore.HeaderParsing", "Microsoft.AspNetCore.Server.Kestrel"); + builder.AddView("http.server.request.duration", + new ExplicitBucketHistogramConfiguration + { + Boundaries = [0.0, 0.001, 0.005, 0.01, 0.025, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.75, 1.0, 1.25, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 10] + }); + }); -builder.Services.AddControllers(options => { +builder.Services.AddControllers(options => +{ options.MaxValidationDepth = null; // options.MaxIAsyncEnumerableBufferLimit = 1; -}).AddJsonOptions(options => { +}).AddJsonOptions(options => +{ options.JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.Never; options.JsonSerializerOptions.WriteIndented = true; options.JsonSerializerOptions.MaxDepth = 100; @@ -25,7 +45,8 @@ builder.Services.AddControllers(options => { // Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi builder.Services.AddOpenApi(); -builder.Services.AddDbContextPool<SpacebarDbContext>(options => { +builder.Services.AddDbContextPool<SpacebarDbContext>(options => +{ options .UseNpgsql(builder.Configuration.GetConnectionString("Spacebar")) .EnableDetailedErrors(); @@ -37,8 +58,11 @@ builder.Services.AddScoped<SpacebarAspNetAuthenticationService>(); var app = builder.Build(); +app.MapPrometheusScrapingEndpoint(); + // Configure the HTTP request pipeline. -if (app.Environment.IsDevelopment()) { +if (app.Environment.IsDevelopment()) +{ app.MapOpenApi(); }