Compare commits
8 Commits
server-lig
...
metrics-li
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
707c565ea9 | ||
|
|
6beda853f7 | ||
|
|
23dc6d7ef4 | ||
|
|
f686f7a6da | ||
| 0fe1a43fb2 | |||
|
|
43b9c6f90e | ||
| aadfaca629 | |||
| 729d781fa3 |
1
.gitmodules
vendored
1
.gitmodules
vendored
@@ -1,3 +1,4 @@
|
|||||||
[submodule "LightlessAPI"]
|
[submodule "LightlessAPI"]
|
||||||
path = LightlessAPI
|
path = LightlessAPI
|
||||||
url = https://git.lightless-sync.org/Lightless-Sync/LightlessAPI
|
url = https://git.lightless-sync.org/Lightless-Sync/LightlessAPI
|
||||||
|
branch = main
|
||||||
|
|||||||
@@ -7,7 +7,9 @@ using LightlessSyncShared.Services;
|
|||||||
using LightlessSyncShared.Utils.Configuration;
|
using LightlessSyncShared.Utils.Configuration;
|
||||||
using Microsoft.AspNetCore.SignalR;
|
using Microsoft.AspNetCore.SignalR;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using StackExchange.Redis;
|
||||||
using StackExchange.Redis.Extensions.Core.Abstractions;
|
using StackExchange.Redis.Extensions.Core.Abstractions;
|
||||||
|
using static LightlessSyncServer.Hubs.LightlessHub;
|
||||||
|
|
||||||
namespace LightlessSyncServer.Services;
|
namespace LightlessSyncServer.Services;
|
||||||
|
|
||||||
@@ -52,6 +54,13 @@ public sealed class SystemInfoService : BackgroundService
|
|||||||
_lightlessMetrics.SetGaugeTo(MetricsAPI.GaugeAvailableIOWorkerThreads, ioThreads);
|
_lightlessMetrics.SetGaugeTo(MetricsAPI.GaugeAvailableIOWorkerThreads, ioThreads);
|
||||||
|
|
||||||
var onlineUsers = (_redis.SearchKeysAsync("UID:*").GetAwaiter().GetResult()).Count();
|
var onlineUsers = (_redis.SearchKeysAsync("UID:*").GetAwaiter().GetResult()).Count();
|
||||||
|
|
||||||
|
var allLightfinderKeys = _redis.SearchKeysAsync("broadcast:*").GetAwaiter().GetResult().Where(c => !c.Contains("owner", StringComparison.Ordinal)).ToHashSet(StringComparer.Ordinal);
|
||||||
|
var allLightfinderItems = _redis.GetAllAsync<BroadcastRedisEntry>(allLightfinderKeys).GetAwaiter().GetResult();
|
||||||
|
|
||||||
|
var countLightFinderUsers = allLightfinderItems.Count;
|
||||||
|
var countLightFinderSyncshells = allLightfinderItems.Count(static l => !string.IsNullOrEmpty(l.Value.GID));
|
||||||
|
|
||||||
SystemInfoDto = new SystemInfoDto()
|
SystemInfoDto = new SystemInfoDto()
|
||||||
{
|
{
|
||||||
OnlineUsers = onlineUsers,
|
OnlineUsers = onlineUsers,
|
||||||
@@ -66,10 +75,12 @@ public sealed class SystemInfoService : BackgroundService
|
|||||||
using var db = await _dbContextFactory.CreateDbContextAsync(ct).ConfigureAwait(false);
|
using var db = await _dbContextFactory.CreateDbContextAsync(ct).ConfigureAwait(false);
|
||||||
|
|
||||||
_lightlessMetrics.SetGaugeTo(MetricsAPI.GaugeAuthorizedConnections, onlineUsers);
|
_lightlessMetrics.SetGaugeTo(MetricsAPI.GaugeAuthorizedConnections, onlineUsers);
|
||||||
|
_lightlessMetrics.SetGaugeTo(MetricsAPI.GaugeLightFinderConnections, countLightFinderUsers);
|
||||||
_lightlessMetrics.SetGaugeTo(MetricsAPI.GaugePairs, db.ClientPairs.AsNoTracking().Count());
|
_lightlessMetrics.SetGaugeTo(MetricsAPI.GaugePairs, db.ClientPairs.AsNoTracking().Count());
|
||||||
_lightlessMetrics.SetGaugeTo(MetricsAPI.GaugePairsPaused, db.Permissions.AsNoTracking().Where(p => p.IsPaused).Count());
|
_lightlessMetrics.SetGaugeTo(MetricsAPI.GaugePairsPaused, db.Permissions.AsNoTracking().Count(p => p.IsPaused));
|
||||||
_lightlessMetrics.SetGaugeTo(MetricsAPI.GaugeGroups, db.Groups.AsNoTracking().Count());
|
_lightlessMetrics.SetGaugeTo(MetricsAPI.GaugeGroups, db.Groups.AsNoTracking().Count());
|
||||||
_lightlessMetrics.SetGaugeTo(MetricsAPI.GaugeGroupPairs, db.GroupPairs.AsNoTracking().Count());
|
_lightlessMetrics.SetGaugeTo(MetricsAPI.GaugeGroupPairs, db.GroupPairs.AsNoTracking().Count());
|
||||||
|
_lightlessMetrics.SetGaugeTo(MetricsAPI.GaugeLightFinderGroups, countLightFinderSyncshells);
|
||||||
_lightlessMetrics.SetGaugeTo(MetricsAPI.GaugeUsersRegistered, db.Users.AsNoTracking().Count());
|
_lightlessMetrics.SetGaugeTo(MetricsAPI.GaugeUsersRegistered, db.Users.AsNoTracking().Count());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -295,6 +295,8 @@ public class Startup
|
|||||||
}, new List<string>
|
}, new List<string>
|
||||||
{
|
{
|
||||||
MetricsAPI.GaugeAuthorizedConnections,
|
MetricsAPI.GaugeAuthorizedConnections,
|
||||||
|
MetricsAPI.GaugeLightFinderConnections,
|
||||||
|
MetricsAPI.GaugeLightFinderGroups,
|
||||||
MetricsAPI.GaugeConnections,
|
MetricsAPI.GaugeConnections,
|
||||||
MetricsAPI.GaugePairs,
|
MetricsAPI.GaugePairs,
|
||||||
MetricsAPI.GaugePairsPaused,
|
MetricsAPI.GaugePairsPaused,
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ public class MetricsAPI
|
|||||||
public const string GaugeAvailableIOWorkerThreads = "lightless_available_threadpool_io";
|
public const string GaugeAvailableIOWorkerThreads = "lightless_available_threadpool_io";
|
||||||
public const string GaugeUsersRegistered = "lightless_users_registered";
|
public const string GaugeUsersRegistered = "lightless_users_registered";
|
||||||
public const string CounterUsersRegisteredDeleted = "lightless_users_registered_deleted";
|
public const string CounterUsersRegisteredDeleted = "lightless_users_registered_deleted";
|
||||||
|
public const string GaugeLightFinderConnections = "lightless_lightfinder_connections";
|
||||||
|
public const string GaugeLightFinderGroups = "lightless_lightfinder_groups";
|
||||||
public const string GaugePairs = "lightless_pairs";
|
public const string GaugePairs = "lightless_pairs";
|
||||||
public const string GaugePairsPaused = "lightless_pairs_paused";
|
public const string GaugePairsPaused = "lightless_pairs_paused";
|
||||||
public const string GaugeFilesTotal = "lightless_files";
|
public const string GaugeFilesTotal = "lightless_files";
|
||||||
|
|||||||
Reference in New Issue
Block a user