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); await HandleApiError(response, ignoreNotFound);
if (OnResponseEvent != null) OnResponseEvent?.Invoke(null, (
OnResponseEvent.Invoke(null, ( GetEndpointMetricsName(response.RequestMessage!),
GetEndpointMetricsName(response.RequestMessage!), (int)response.StatusCode,
(int)response.StatusCode, stopwatch.ElapsedTicks
stopwatch.ElapsedTicks ));
));
return response; return response;
}, },

View File

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

View File

@ -52,10 +52,12 @@ namespace PluralKit.Bot
c.Resolve<BotConfig>().DiscordBaseUrl c.Resolve<BotConfig>().DiscordBaseUrl
); );
var metrics = c.Resolve<IMetrics>();
client.OnResponseEvent += ((_, ev) => client.OnResponseEvent += ((_, ev) =>
{ {
var (endpoint, statusCode, ticks) = 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", "status_code" },
new[] { endpoint, statusCode.ToString() } new[] { endpoint, statusCode.ToString() }
)); ));