private Map<String, Object> buildStreamEvent(GenericMetricEntity entity) { Map<String, Object> map = new HashMap<>(); map.put("site", entity.getTags().get("site")); map.put("user", entity.getTags().get("user")); map.put("timestamp", entity.getTimestamp()); map.put("metric", entity.getPrefix()); map.put("value", entity.getValue()[0]); return map; }
@Override public void execute(Tuple input) { GenericMetricEntity metricEntity = null; Map event = null; try { event = StreamConvertHelper.tupleToEvent(input).f1(); metricEntity = this.mapper.map(event); if (batchSize <= 1) { GenericServiceAPIResponseEntity<String> response = this.client.create(Collections.singletonList(metricEntity)); if (!response.isSuccess()) { LOG.error("Service side error: {}", response.getException()); collector.reportError(new IllegalStateException(response.getException())); } } else { this.batchSender.send(metricEntity); } } catch (Exception ex) { LOG.error(ex.getMessage(), ex); collector.reportError(ex); } finally { if (metricEntity != null && event != null) { collector.emit(Arrays.asList(metricEntity.getPrefix(), event)); } collector.ack(input); } }