Collect metrics about webhook rate limit cache size
This commit is contained in:
parent
93bf7c6543
commit
05595329b5
@ -16,6 +16,7 @@ namespace PluralKit.Bot
|
||||
public static GaugeOptions Channels => new GaugeOptions {Name = "Channels", MeasurementUnit = Unit.None, Context = "Bot"};
|
||||
public static GaugeOptions ShardsConnected => new GaugeOptions { Name = "Shards Connected", Context = "Bot" };
|
||||
public static GaugeOptions WebhookCacheSize => new GaugeOptions { Name = "Webhook Cache Size", Context = "Bot" };
|
||||
public static GaugeOptions WebhookRateLimitCacheSize => new GaugeOptions {Name = "Webhook Rate Limit Cache Size", Context = "Bot"};
|
||||
public static TimerOptions WebhookResponseTime => new TimerOptions { Name = "Webhook Response Time", Context = "Bot", RateUnit = TimeUnit.Seconds, MeasurementUnit = Unit.Requests, DurationUnit = TimeUnit.Seconds };
|
||||
}
|
||||
}
|
@ -21,12 +21,13 @@ namespace PluralKit.Bot
|
||||
private IDataStore _data;
|
||||
|
||||
private WebhookCacheService _webhookCache;
|
||||
private WebhookRateLimitService _webhookRateLimitCache;
|
||||
|
||||
private DbConnectionCountHolder _countHolder;
|
||||
|
||||
private ILogger _logger;
|
||||
|
||||
public PeriodicStatCollector(IDiscordClient client, IMetrics metrics, ILogger logger, WebhookCacheService webhookCache, DbConnectionCountHolder countHolder, IDataStore data, CpuStatService cpu)
|
||||
public PeriodicStatCollector(IDiscordClient client, IMetrics metrics, ILogger logger, WebhookCacheService webhookCache, DbConnectionCountHolder countHolder, IDataStore data, CpuStatService cpu, WebhookRateLimitService webhookRateLimitCache)
|
||||
{
|
||||
_client = (DiscordShardedClient) client;
|
||||
_metrics = metrics;
|
||||
@ -34,6 +35,7 @@ namespace PluralKit.Bot
|
||||
_countHolder = countHolder;
|
||||
_data = data;
|
||||
_cpu = cpu;
|
||||
_webhookRateLimitCache = webhookRateLimitCache;
|
||||
_logger = logger.ForContext<PeriodicStatCollector>();
|
||||
}
|
||||
|
||||
@ -80,6 +82,7 @@ namespace PluralKit.Bot
|
||||
|
||||
// Other shiz
|
||||
_metrics.Measure.Gauge.SetValue(BotMetrics.WebhookCacheSize, _webhookCache.CacheSize);
|
||||
_metrics.Measure.Gauge.SetValue(BotMetrics.WebhookRateLimitCacheSize, _webhookRateLimitCache.CacheSize);
|
||||
|
||||
stopwatch.Stop();
|
||||
_logger.Information("Updated metrics in {Time}", stopwatch.ElapsedDuration());
|
||||
|
@ -24,6 +24,8 @@ namespace PluralKit.Bot
|
||||
_logger = logger.ForContext<WebhookRateLimitService>();
|
||||
}
|
||||
|
||||
public int CacheSize => _info.Count;
|
||||
|
||||
public bool TryExecuteWebhook(IWebhook webhook)
|
||||
{
|
||||
// If we have nothing saved, just allow it (we'll save something once the response returns)
|
||||
|
Loading…
Reference in New Issue
Block a user