/** * Perform the aggregation operation. * * @param incoming Incoming metric * @param aggregate Base aggregation metric * @param state Operation state * @return Result metric for this aggregation operation */ public TimelineMetric aggregate(TimelineMetric incoming, TimelineMetric aggregate, Map<Object, Object> state) { return exec(incoming, aggregate, state); }
/** * Aggregate an incoming metric to the base aggregated metric with the given * operation state. The assumption here is baseAggregatedMetric and * latestMetric should be single value data if not null. * * @param incomingMetric Incoming timeline metric to aggregate * @param baseAggregatedMetric Base timeline metric * @param state Operation state * @return Result metric after aggregation */ public static TimelineMetric aggregateTo(TimelineMetric incomingMetric, TimelineMetric baseAggregatedMetric, Map<Object, Object> state) { TimelineMetricOperation operation = incomingMetric.getRealtimeAggregationOp(); return operation.aggregate(incomingMetric, baseAggregatedMetric, state); }