Started implementing metrics system

This commit is contained in:
2025-05-23 17:15:19 +02:00
parent 565d9a5a4d
commit f3a35bd62a
7 changed files with 203 additions and 8 deletions

View File

@@ -0,0 +1,27 @@
using System.Diagnostics.Metrics;
using Microsoft.EntityFrameworkCore;
using MoonCore.Extended.Abstractions;
using Moonlight.ApiServer.Database.Entities;
using Moonlight.ApiServer.Interfaces;
namespace Moonlight.ApiServer.Implementations.Metrics;
public class UsersMetric : IMetric
{
private Gauge<int> Users;
public Task Initialize(Meter meter)
{
Users = meter.CreateGauge<int>("moonlight_users");
return Task.CompletedTask;
}
public async Task Run(IServiceProvider provider, CancellationToken cancellationToken)
{
var usersRepo = provider.GetRequiredService<DatabaseRepository<User>>();
var count = await usersRepo.Get().CountAsync(cancellationToken: cancellationToken);
Users.Record(count);
}
}