set user agent correctly

add statistics

fix bug
This commit is contained in:
rootdarkarchon
2024-01-15 12:51:16 +01:00
committed by Loporrit
parent d54d793575
commit 7c6dbafce9
6 changed files with 27 additions and 6 deletions

View File

@@ -16,6 +16,8 @@ public partial class MareHub
public string UserUID => Context.User?.Claims?.SingleOrDefault(c => string.Equals(c.Type, MareClaimTypes.Uid, StringComparison.Ordinal))?.Value ?? throw new Exception("No UID in Claims"); public string UserUID => Context.User?.Claims?.SingleOrDefault(c => string.Equals(c.Type, MareClaimTypes.Uid, StringComparison.Ordinal))?.Value ?? throw new Exception("No UID in Claims");
public string Continent => Context.User?.Claims?.SingleOrDefault(c => string.Equals(c.Type, MareClaimTypes.Continent, StringComparison.Ordinal))?.Value ?? "UNK";
private async Task DeleteUser(User user) private async Task DeleteUser(User user)
{ {
var ownPairData = await _dbContext.ClientPairs.Where(u => u.User.UID == user.UID).ToListAsync().ConfigureAwait(false); var ownPairData = await _dbContext.ClientPairs.Where(u => u.User.UID == user.UID).ToListAsync().ConfigureAwait(false);

View File

@@ -93,7 +93,7 @@ public partial class MareHub : Hub<IMareHub>, IMareHub
[Authorize(Policy = "Authenticated")] [Authorize(Policy = "Authenticated")]
public override async Task OnConnectedAsync() public override async Task OnConnectedAsync()
{ {
_mareMetrics.IncGauge(MetricsAPI.GaugeConnections); _mareMetrics.IncGaugeWithLabels(MetricsAPI.GaugeConnections, labels: Continent);
try try
{ {
@@ -109,7 +109,7 @@ public partial class MareHub : Hub<IMareHub>, IMareHub
[Authorize(Policy = "Authenticated")] [Authorize(Policy = "Authenticated")]
public override async Task OnDisconnectedAsync(Exception exception) public override async Task OnDisconnectedAsync(Exception exception)
{ {
_mareMetrics.DecGauge(MetricsAPI.GaugeConnections); _mareMetrics.DecGaugeWithLabels(MetricsAPI.GaugeConnections, labels: Continent);
try try
{ {

View File

@@ -17,7 +17,10 @@ public class MareMetrics
foreach (var gauge in gaugesToServe) foreach (var gauge in gaugesToServe)
{ {
logger.LogInformation($"Creating Metric for Counter {gauge}"); logger.LogInformation($"Creating Metric for Counter {gauge}");
gauges.Add(gauge, Prometheus.Metrics.CreateGauge(gauge, gauge)); if (!string.Equals(gauge, MetricsAPI.GaugeConnections, StringComparison.OrdinalIgnoreCase))
gauges.Add(gauge, Prometheus.Metrics.CreateGauge(gauge, gauge));
else
gauges.Add(gauge, Prometheus.Metrics.CreateGauge(gauge, gauge, new[] { "continent" }));
} }
} }
@@ -25,6 +28,22 @@ public class MareMetrics
private readonly Dictionary<string, Gauge> gauges = new(StringComparer.Ordinal); private readonly Dictionary<string, Gauge> gauges = new(StringComparer.Ordinal);
public void IncGaugeWithLabels(string gaugeName, double value = 1.0, params string[] labels)
{
if (_gauges.TryGetValue(gaugeName, out Gauge gauge))
{
gauge.WithLabels(labels).Inc(value);
}
}
public void DecGaugeWithLabels(string gaugeName, double value = 1.0, params string[] labels)
{
if (_gauges.TryGetValue(gaugeName, out Gauge gauge))
{
gauge.WithLabels(labels).Dec(value);
}
}
public void SetGaugeTo(string gaugeName, double value) public void SetGaugeTo(string gaugeName, double value)
{ {
if (gauges.ContainsKey(gaugeName)) if (gauges.ContainsKey(gaugeName))

View File

@@ -3,7 +3,7 @@
public class MetricsAPI public class MetricsAPI
{ {
public const string CounterInitializedConnections = "mare_initialized_connections"; public const string CounterInitializedConnections = "mare_initialized_connections";
public const string GaugeConnections = "mare_unauthorized_connections"; public const string GaugeConnections = "mare_connections";
public const string GaugeAuthorizedConnections = "mare_authorized_connections"; public const string GaugeAuthorizedConnections = "mare_authorized_connections";
public const string GaugeAvailableWorkerThreads = "mare_available_threadpool"; public const string GaugeAvailableWorkerThreads = "mare_available_threadpool";
public const string GaugeAvailableIOWorkerThreads = "mare_available_threadpool_io"; public const string GaugeAvailableIOWorkerThreads = "mare_available_threadpool_io";

View File

@@ -34,7 +34,7 @@ public sealed class CachedFileProvider : IDisposable
_isDistributionServer = configuration.GetValueOrDefault(nameof(StaticFilesServerConfiguration.IsDistributionNode), false); _isDistributionServer = configuration.GetValueOrDefault(nameof(StaticFilesServerConfiguration.IsDistributionNode), false);
_basePath = configuration.GetValue<string>(nameof(StaticFilesServerConfiguration.CacheDirectory)); _basePath = configuration.GetValue<string>(nameof(StaticFilesServerConfiguration.CacheDirectory));
_httpClient = new(); _httpClient = new();
_httpClient.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue("MareSynchronosServer")); _httpClient.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue("MareSynchronosServer", "1.0.0.0"));
} }
public void Dispose() public void Dispose()

View File

@@ -18,7 +18,7 @@ public class ShardClientReadyMessageService : IClientReadyMessageService
_tokenGenerator = tokenGenerator; _tokenGenerator = tokenGenerator;
_configurationService = configurationService; _configurationService = configurationService;
_httpClient = new(); _httpClient = new();
_httpClient.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue("MareSynchronosServer")); _httpClient.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue("MareSynchronosServer", "1.0.0.0"));
} }
public void SendDownloadReady(string uid, Guid requestId) public void SendDownloadReady(string uid, Guid requestId)