fix: fix reporting Discord response metrics to influxdb

This commit is contained in:
spiral 2021-11-09 02:19:31 -05:00
parent 24a549341e
commit 48d4009c69
No known key found for this signature in database
GPG Key ID: A6059F0CA0E1BD31
3 changed files with 9 additions and 8 deletions

View File

@ -209,12 +209,11 @@ namespace Myriad.Rest
await HandleApiError(response, ignoreNotFound);
if (OnResponseEvent != null)
OnResponseEvent.Invoke(null, (
GetEndpointMetricsName(response.RequestMessage!),
(int)response.StatusCode,
stopwatch.ElapsedTicks
));
OnResponseEvent?.Invoke(null, (
GetEndpointMetricsName(response.RequestMessage!),
(int)response.StatusCode,
stopwatch.ElapsedTicks
));
return response;
},

View File

@ -19,7 +19,7 @@ namespace Myriad.Rest
public DiscordApiClient(string token, ILogger logger, string? baseUrl = null)
{
_client = new BaseRestClient(UserAgent, token, logger, baseUrl ?? DefaultApiBaseUrl);
_client.OnResponseEvent += OnResponseEvent;
_client.OnResponseEvent += (_, ev) => OnResponseEvent?.Invoke(null, ev);
}
public EventHandler<(string, int, long)> OnResponseEvent;

View File

@ -52,10 +52,12 @@ namespace PluralKit.Bot
c.Resolve<BotConfig>().DiscordBaseUrl
);
var metrics = c.Resolve<IMetrics>();
client.OnResponseEvent += ((_, ev) =>
{
var (endpoint, statusCode, ticks) = ev;
var timer = c.Resolve<IMetrics>().Provider.Timer.Instance(BotMetrics.DiscordApiRequests, new MetricTags(
var timer = metrics.Provider.Timer.Instance(BotMetrics.DiscordApiRequests, new MetricTags(
new[] { "endpoint", "status_code" },
new[] { endpoint, statusCode.ToString() }
));