use of org.apache.camel.component.metrics.routepolicy.MetricsRegistryService in project syncope by apache.
the class CamelRouteLogic method metrics.
@PreAuthorize("isAuthenticated()")
public CamelMetrics metrics() {
CamelMetrics metrics = new CamelMetrics();
MetricsRegistryService registryService = context.getCamelContext().hasService(MetricsRegistryService.class);
if (registryService == null) {
LOG.warn("Camel metrics not available");
} else {
MetricRegistry registry = registryService.getMetricsRegistry();
registry.getTimers().entrySet().stream().map(entry -> {
CamelMetrics.MeanRate meanRate = new CamelMetrics.MeanRate();
meanRate.setRouteId(StringUtils.substringBetween(entry.getKey(), ".", "."));
meanRate.setValue(entry.getValue().getMeanRate());
return meanRate;
}).forEachOrdered(meanRate -> {
metrics.getResponseMeanRates().add(meanRate);
});
Collections.sort(metrics.getResponseMeanRates(), (o1, o2) -> Collections.reverseOrder(Comparator.<Double>naturalOrder()).compare(o1.getValue(), o2.getValue()));
}
return metrics;
}
Aggregations