@Override public TabularData endpointStatistics() { try { TabularData answer = new TabularDataSupport(CamelOpenMBeanTypes.listRuntimeEndpointsTabularType()); EndpointRegistry staticRegistry = getContext().getEndpointRegistry(); int index = 0; for (RuntimeEndpointRegistry.Statistic stat : registry.getEndpointStatistics()) { CompositeType ct = CamelOpenMBeanTypes.listRuntimeEndpointsCompositeType(); String url = stat.getUri(); Boolean isStatic = staticRegistry.isStatic(url); Boolean isDynamic = staticRegistry.isDynamic(url); if (sanitize) { url = URISupport.sanitizeUri(url); } String routeId = stat.getRouteId(); String direction = stat.getDirection(); long hits = stat.getHits(); CompositeData data = new CompositeDataSupport(ct, new String[]{"index", "url", "routeId", "direction", "static", "dynamic", "hits"}, new Object[]{index, url, routeId, direction, isStatic, isDynamic, hits}); answer.put(data); // use a counter as the single index in the TabularData as we do not want a multi-value index index++; } return answer; } catch (Exception e) { throw ObjectHelper.wrapRuntimeCamelException(e); } }
public List<Map<String, String>> getEndpointRuntimeStatistics(String camelContextName) throws Exception { List<Map<String, String>> answer = new ArrayList<Map<String, String>>(); if (camelContextName != null) { CamelContext context = this.getLocalCamelContext(camelContextName); if (context != null) { EndpointRegistry staticRegistry = context.getEndpointRegistry(); for (RuntimeEndpointRegistry.Statistic stat : context.getRuntimeEndpointRegistry().getEndpointStatistics()) { String url = stat.getUri(); String routeId = stat.getRouteId(); String direction = stat.getDirection(); Boolean isStatic = staticRegistry.isStatic(url); Boolean isDynamic = staticRegistry.isDynamic(url); long hits = stat.getHits(); Map<String, String> row = new LinkedHashMap<String, String>(); row.put("camelContextName", context.getName()); row.put("uri", url); row.put("routeId", routeId); row.put("direction", direction); row.put("static", isStatic.toString()); row.put("dynamic", isDynamic.toString()); row.put("hits", "" + hits); answer.add(row); } } // sort the list Collections.sort(answer, new Comparator<Map<String, String>>() { @Override public int compare(Map<String, String> endpoint1, Map<String, String> endpoint2) { // sort by route id String route1 = endpoint1.get("routeId"); String route2 = endpoint2.get("routeId"); int num = route1.compareTo(route2); if (num == 0) { // we want in before out String dir1 = endpoint1.get("direction"); String dir2 = endpoint2.get("direction"); num = dir1.compareTo(dir2); } return num; } }); } return answer; }
public ManagedEndpointRegistry(CamelContext context, EndpointRegistry endpointRegistry) { super(context, endpointRegistry); this.endpointRegistry = endpointRegistry; }
public EndpointRegistry getEndpointRegistry() { return endpointRegistry; }
public EndpointRegistry getEndpointRegistry() { return endpoints; }
@Override public EndpointRegistry<String> getEndpointRegistry() { return context.getEndpointRegistry(); }
/** * Gets the {@link org.apache.camel.spi.EndpointRegistry} */ EndpointRegistry<String> getEndpointRegistry();