/** * Apply a message to a set of profiles. * @param message The message to apply. */ public void apply(JSONObject message) { // route the message to the correct profile builders List<MessageRoute> routes = router.route(message, config, context); for (MessageRoute route : routes) { distributor.distribute(route, context); } routeCount += routes.size(); messageCount += 1; }
routes = router.route(message.get(), profilerConfig, context); LOG.trace("Found {} route(s) for a message", routes.size());
/** * Route a message based on the Profiler configuration. * @param input The input tuple on which to anchor. * @param message The telemetry message. * @param config The Profiler configuration. */ private void routeMessage(Tuple input, JSONObject message, ProfilerConfig config) { // emit a tuple for each 'route' List<MessageRoute> routes = router.route(message, config, getStellarContext()); for (MessageRoute route : routes) { Values values = createValues(route); collector.emit(input, values); LOG.debug("Found route for message; profile={}, entity={}, timestamp={}", route.getProfileDefinition().getProfile(), route.getEntity(), route.getTimestamp()); } LOG.debug("Found {} route(s) for message", routes.size()); }