mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-03-03 15:27:07 +00:00
[AB-xxx] adding metrics for http requests
This commit is contained in:
@@ -5,7 +5,9 @@ import dev.sheldan.abstracto.core.metric.service.MetricService;
|
|||||||
import dev.sheldan.abstracto.core.metric.service.MetricTag;
|
import dev.sheldan.abstracto.core.metric.service.MetricTag;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.dv8tion.jda.api.events.GenericEvent;
|
import net.dv8tion.jda.api.events.GenericEvent;
|
||||||
|
import net.dv8tion.jda.api.events.http.HttpRequestEvent;
|
||||||
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
||||||
|
import net.dv8tion.jda.api.requests.Route;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@@ -19,8 +21,13 @@ public class JDAMetrics extends ListenerAdapter {
|
|||||||
private MetricService metricService;
|
private MetricService metricService;
|
||||||
|
|
||||||
public static final String JDA_EVENT_METRIC = "jda.event";
|
public static final String JDA_EVENT_METRIC = "jda.event";
|
||||||
|
public static final String JDA_REQUEST_METRIC = "jda.request";
|
||||||
public static final String EVENT_CLASS = "event.class";
|
public static final String EVENT_CLASS = "event.class";
|
||||||
private final HashMap<Class, CounterMetric> coveredEvents = new HashMap<>();
|
public static final String HTTP_METHOD = "http.method";
|
||||||
|
public static final String HTTP_URL = "http.url";
|
||||||
|
public static final String HTTP_KEY = "http.key";
|
||||||
|
private final HashMap<Class<?>, CounterMetric> coveredEvents = new HashMap<>();
|
||||||
|
private final HashMap<String, CounterMetric> coveredRoutes = new HashMap<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onGenericEvent(GenericEvent event) {
|
public void onGenericEvent(GenericEvent event) {
|
||||||
@@ -39,4 +46,25 @@ public class JDAMetrics extends ListenerAdapter {
|
|||||||
metricService.incrementCounter(coveredEvents.get(event.getClass()));
|
metricService.incrementCounter(coveredEvents.get(event.getClass()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onHttpRequest(HttpRequestEvent event) {
|
||||||
|
Route baseRoute = event.getRequest().getRoute().getBaseRoute();
|
||||||
|
String urlKey = baseRoute.toString();
|
||||||
|
if(!coveredRoutes.containsKey(urlKey)) {
|
||||||
|
CounterMetric metric =
|
||||||
|
CounterMetric
|
||||||
|
.builder()
|
||||||
|
.tagList(Arrays.asList(
|
||||||
|
MetricTag.getTag(HTTP_METHOD, baseRoute.getMethod().name()),
|
||||||
|
MetricTag.getTag(HTTP_URL, baseRoute.getRoute()),
|
||||||
|
MetricTag.getTag(HTTP_KEY, baseRoute.toString())))
|
||||||
|
.name(JDA_REQUEST_METRIC)
|
||||||
|
.build();
|
||||||
|
metricService.registerCounter(metric, "Requests towards URL " + urlKey);
|
||||||
|
coveredRoutes.put(urlKey, metric);
|
||||||
|
log.info("Registering new metric for URL {}. There are now {} metrics.", urlKey, coveredRoutes.size());
|
||||||
|
}
|
||||||
|
metricService.incrementCounter(coveredRoutes.get(urlKey));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user