/** * Subtracts the value from each time series value * * @param timeSeriesList the list with time series * @return the transformed time series */ @Override public void execute(List<ChronixTimeSeries<MetricTimeSeries>> timeSeriesList, FunctionCtx functionCtx) { for (ChronixTimeSeries<MetricTimeSeries> chronixTimeSeries : timeSeriesList) { MetricTimeSeries timeSeries = chronixTimeSeries.getRawTimeSeries(); long[] timestamps = timeSeries.getTimestampsAsArray(); double[] values = timeSeries.getValuesAsArray(); timeSeries.clear(); for (int i = 0; i < values.length; i++) { values[i] -= value; } timeSeries.addAll(timestamps, values); functionCtx.add(this, chronixTimeSeries.getJoinKey()); } }
@Override public void execute(List<ChronixTimeSeries<MetricTimeSeries>> timeSeriesList, FunctionCtx functionCtx) { for (ChronixTimeSeries<MetricTimeSeries> chronixTimeSeries : timeSeriesList) { MetricTimeSeries timeSeries = chronixTimeSeries.getRawTimeSeries(); //Get a copy of the values double[] values = timeSeries.getValuesAsArray(); //Get a copy of the timestamps long[] times = timeSeries.getTimestampsAsArray(); for (int i = 0; i < timeSeries.size(); i++) { //simply divide the original value values[i] = values[i] / value; } //Clear the original time series and add the values timeSeries.clear(); timeSeries.addAll(times, values); functionCtx.add(this, chronixTimeSeries.getJoinKey()); } }
@Override public void execute(List<ChronixTimeSeries<MetricTimeSeries>> timeSeriesList, FunctionCtx functionCtx) { for (ChronixTimeSeries<MetricTimeSeries> chronixTimeSeries : timeSeriesList) { MetricTimeSeries timeSeries = chronixTimeSeries.getRawTimeSeries(); if (timeSeries.isEmpty()) { continue; } long[] times = timeSeries.getTimestampsAsArray(); double[] values = timeSeries.getValuesAsArray(); timeSeries.clear(); for (int i = 0; i < times.length; i++) { times[i] += shift; } timeSeries.addAll(times, values); functionCtx.add(this, chronixTimeSeries.getJoinKey()); } }
@Override public void execute(List<ChronixTimeSeries<MetricTimeSeries>> timeSeriesList, FunctionCtx functionCtx) { for (ChronixTimeSeries<MetricTimeSeries> chronixTimeSeries : timeSeriesList) { MetricTimeSeries timeSeries = chronixTimeSeries.getRawTimeSeries(); //get a copy of the values double[] values = timeSeries.getValuesAsArray(); //get a copy of timestamps long[] times = timeSeries.getTimestampsAsArray(); for (int i = 0; i < timeSeries.size(); i++) { //scale the original value values[i] = values[i] * value; } //clear and delete the time series timeSeries.clear(); timeSeries.addAll(times, values); functionCtx.add(this, chronixTimeSeries.getJoinKey()); } }
@Override public void execute(List<ChronixTimeSeries<MetricTimeSeries>> timeSeriesList, FunctionCtx functionCtx) { for (ChronixTimeSeries<MetricTimeSeries> chronixTimeSeries : timeSeriesList) { MetricTimeSeries timeSeries = chronixTimeSeries.getRawTimeSeries(); NElements.NElementsResult result = NElements.calc(NElements.NElementsCalculation.BOTTOM, value, timeSeries.getTimestampsAsArray(), timeSeries.getValuesAsArray()); //remove old time series timeSeries.clear(); timeSeries.addAll(result.getNTimes(), result.getNValues()); functionCtx.add(this, chronixTimeSeries.getJoinKey()); } }
timeSeries.clear();
/** * Adds the increment to each value of the time series. * <pre> * foreach(value){ * value += increment; * } * </pre> * * @param functionCtx to add the this transformation to. */ @Override public void execute(List<ChronixTimeSeries<MetricTimeSeries>> timeSeriesList, FunctionCtx functionCtx) { for (ChronixTimeSeries<MetricTimeSeries> chronixTimeSeries : timeSeriesList) { MetricTimeSeries timeSeries = chronixTimeSeries.getRawTimeSeries(); if (timeSeries.isEmpty()) { continue; } long[] timestamps = timeSeries.getTimestampsAsArray(); double[] values = timeSeries.getValuesAsArray(); timeSeries.clear(); for (int i = 0; i < values.length; i++) { values[i] += value; } timeSeries.addAll(timestamps, values); functionCtx.add(this, chronixTimeSeries.getJoinKey()); } }
timeSeries.clear(); timeSeries.addAll(timeList, valueList);
@Override public void execute(List<ChronixTimeSeries<MetricTimeSeries>> timeSeriesList, FunctionCtx functionCtx) { for (ChronixTimeSeries<MetricTimeSeries> chronixTimeSeries : timeSeriesList) { MetricTimeSeries timeSeries = chronixTimeSeries.getRawTimeSeries(); //Calculate the largest values NElements.NElementsResult result = NElements.calc( NElements.NElementsCalculation.TOP, value, timeSeries.getTimestampsAsArray(), timeSeries.getValuesAsArray()); //remove the old time series values timeSeries.clear(); //set the new top largest values timeSeries.addAll(result.getNTimes(), result.getNValues()); functionCtx.add(this, chronixTimeSeries.getJoinKey()); } }
/** * Calculates the derivative of the values per second. * Returns a time series holding that values. * * @param timeSeries the time series that is transformed */ @Override public void execute(List<ChronixTimeSeries<MetricTimeSeries>> timeSeriesList, FunctionCtx functionCtx) { for (ChronixTimeSeries<MetricTimeSeries> chronixTimeSeries : timeSeriesList) { MetricTimeSeries timeSeries = chronixTimeSeries.getRawTimeSeries(); //we need a sorted time series timeSeries.sort(); long[] times = timeSeries.getTimestampsAsArray(); double[] values = timeSeries.getValuesAsArray(); //Clear the time series timeSeries.clear(); for (int i = 1; i < values.length - 1; i++) { long yT1 = times[i + 1]; long yT0 = times[i - 1]; double xT1 = values[i + 1]; double xT0 = values[i - 1]; double derivativeValue = DerivativeUtil.derivative(xT1, xT0, yT1, yT0); //We use the average time of long derivativeTime = yT1 + (yT1 - yT0) / 2; timeSeries.add(derivativeTime, derivativeValue); } functionCtx.add(this, chronixTimeSeries.getJoinKey()); } }
/** * Calculates the derivative of the time series * * @param timeSeries the time series that is transformed */ @Override public void execute(List<ChronixTimeSeries<MetricTimeSeries>> timeSeriesList, FunctionCtx functionCtx) { for (ChronixTimeSeries<MetricTimeSeries> chronixTimeSeries : timeSeriesList) { MetricTimeSeries timeSeries = chronixTimeSeries.getRawTimeSeries(); //we need a sorted time series timeSeries.sort(); long[] times = timeSeries.getTimestampsAsArray(); double[] values = timeSeries.getValuesAsArray(); //Clear the time series timeSeries.clear(); for (int i = 1; i < values.length - 1; i++) { long yT1 = times[i + 1]; long yT0 = times[i - 1]; double xT1 = values[i + 1]; double xT0 = values[i - 1]; double derivativeValue = DerivativeUtil.derivative(xT1, xT0, yT1, yT0); if (derivativeValue >= 0) { //We use the average time of long derivativeTime = yT1 + (yT1 - yT0) / 2; timeSeries.add(derivativeTime, derivativeValue); } } functionCtx.add(this, chronixTimeSeries.getJoinKey()); } }
timeSeries.clear();
timeSeries.clear();