public Result<TimeseriesResultValue> build() { return new Result<TimeseriesResultValue>( timestamp, new TimeseriesResultValue(metricValues) ); } }
public static List<Result<TimeseriesResultValue>> timeseriesResult(final Map<String, ?> map) { return ImmutableList.of(new Result<>(DateTimes.of("2000"), new TimeseriesResultValue((Map<String, Object>) map))); }
@Override public Result<TimeseriesResultValue> apply(Result<TimeseriesResultValue> arg1, Result<TimeseriesResultValue> arg2) { if (arg1 == null) { return arg2; } if (arg2 == null) { return arg1; } TimeseriesResultValue arg1Val = arg1.getValue(); TimeseriesResultValue arg2Val = arg2.getValue(); Map<String, Object> retVal = new LinkedHashMap<String, Object>(); for (AggregatorFactory factory : aggregations) { final String metricName = factory.getName(); retVal.put(metricName, factory.combine(arg1Val.getMetric(metricName), arg2Val.getMetric(metricName))); } return (gran instanceof AllGranularity) ? new Result<TimeseriesResultValue>( arg1.getTimestamp(), new TimeseriesResultValue(retVal) ) : new Result<TimeseriesResultValue>( gran.bucketStart(arg1.getTimestamp()), new TimeseriesResultValue(retVal) ); }
private Iterable<Result<TimeseriesResultValue>> makeRenamedTimeResults(Object... objects) { if (objects.length % 3 != 0) { throw new ISE("makeTimeResults must be passed arguments in groups of 3, got[%d]", objects.length); } List<Result<TimeseriesResultValue>> retVal = Lists.newArrayListWithCapacity(objects.length / 3); for (int i = 0; i < objects.length; i += 3) { retVal.add( new Result<>( (DateTime) objects[i], new TimeseriesResultValue( ImmutableMap.of( "rows", objects[i + 1], "imps", objects[i + 2], "impers2", objects[i + 2] ) ) ) ); } return retVal; }
private Iterable<Result<TimeseriesResultValue>> makeTimeResults(Object... objects) { if (objects.length % 3 != 0) { throw new ISE("makeTimeResults must be passed arguments in groups of 3, got[%d]", objects.length); } List<Result<TimeseriesResultValue>> retVal = Lists.newArrayListWithCapacity(objects.length / 3); for (int i = 0; i < objects.length; i += 3) { double avg_impr = ((Number) objects[i + 2]).doubleValue() / ((Number) objects[i + 1]).doubleValue(); retVal.add( new Result<>( (DateTime) objects[i], new TimeseriesResultValue( ImmutableMap.<String, Object>builder() .put("rows", objects[i + 1]) .put("imps", objects[i + 2]) .put("impers", objects[i + 2]) .put("avg_imps_per_row", avg_impr) .put("avg_imps_per_row_half", avg_impr / 2) .put("avg_imps_per_row_double", avg_impr * 2) .build() ) ) ); } return retVal; }
@Override public Sequence<Result<TimeseriesResultValue>> run( QueryPlus<Result<TimeseriesResultValue>> queryPlus, Map<String, Object> responseContext ) { return Sequences.simple( ImmutableList.of( new Result<>( DateTimes.of("2014-01-09T-08"), new TimeseriesResultValue(ImmutableMap.of("metric", 2)) ), new Result<>( DateTimes.of("2014-01-11T-08"), new TimeseriesResultValue(ImmutableMap.of("metric", 3)) ), new Result<>( queryPlus.getQuery().getIntervals().get(0).getEnd(), new TimeseriesResultValue(ImmutableMap.of("metric", 5)) ) ) ); } },
@Override public Sequence<Result<TimeseriesResultValue>> run( QueryPlus<Result<TimeseriesResultValue>> queryPlus, Map<String, Object> responseContext ) { return Sequences.simple( ImmutableList.of( new Result<>( DateTimes.of("2014-01-09"), new TimeseriesResultValue(ImmutableMap.of("metric", 2)) ), new Result<>( DateTimes.of("2014-01-11"), new TimeseriesResultValue(ImmutableMap.of("metric", 3)) ), new Result<>( queryPlus.getQuery().getIntervals().get(0).getEnd(), new TimeseriesResultValue(ImmutableMap.of("metric", 5)) ) ) ); } },
@Override public Sequence<Result<TimeseriesResultValue>> run( QueryPlus<Result<TimeseriesResultValue>> queryPlus, Map<String, Object> responseContext ) { return Sequences.simple( ImmutableList.of( new Result<>( DateTimes.of("2014-01-09T-07"), new TimeseriesResultValue(ImmutableMap.of("metric", 2)) ), new Result<>( DateTimes.of("2014-01-11T-07"), new TimeseriesResultValue(ImmutableMap.of("metric", 3)) ), new Result<>( queryPlus.getQuery().getIntervals().get(0).getEnd(), new TimeseriesResultValue(ImmutableMap.of("metric", 5)) ) ) ); } },
@Override public Sequence<Result<TimeseriesResultValue>> run( QueryPlus<Result<TimeseriesResultValue>> queryPlus, Map<String, Object> responseContext ) { final Query<Result<TimeseriesResultValue>> query = queryPlus.getQuery(); return Sequences.simple( ImmutableList.of( new Result<>( query.getIntervals().get(0).getStart(), new TimeseriesResultValue(ImmutableMap.of("metric", 2)) ), new Result<>( query.getIntervals().get(0).getEnd(), new TimeseriesResultValue(ImmutableMap.of("metric", 3)) ) ) ); } },
@Test public void testFilteredTimeSeries2() { List<Result<TimeseriesResultValue>> expectedResults = Collections.singletonList( new Result<TimeseriesResultValue>( DateTimes.of("2011-01-12T00:00:00.000Z"), new TimeseriesResultValue( ImmutableMap.<String, Object>builder() .put("rows", 4L) .put("index", 400.0D) .put("addRowsIndexConstant", 405.0D) .put("uniques", 0.0D) .put("maxIndex", 100.0D) .put("minIndex", 100.0D) .build() ) ) ); TimeseriesQuery query = makeFilteredTimeseriesQuery(); QueryRunner runner = TestQueryRunners.makeTimeSeriesQueryRunner(segment2); HashMap<String, Object> context = new HashMap<String, Object>(); TestHelper.assertExpectedResults(expectedResults, runner.run(QueryPlus.wrap(query), context)); }
@Test public void testTimeSeries() { List<Result<TimeseriesResultValue>> expectedResults = Collections.singletonList( new Result<TimeseriesResultValue>( DateTimes.of("2011-01-12T00:00:00.000Z"), new TimeseriesResultValue( ImmutableMap.<String, Object>builder() .put("rows", 8L) .put("index", 700.0D) .put("addRowsIndexConstant", 709.0D) .put("uniques", 1.0002442201269182D) .put("maxIndex", 100.0D) .put("minIndex", 0.0D) .build() ) ) ); TimeseriesQuery query = makeTimeseriesQuery(); QueryRunner runner = TestQueryRunners.makeTimeSeriesQueryRunner(segment); HashMap<String, Object> context = new HashMap<String, Object>(); TestHelper.assertExpectedResults(expectedResults, runner.run(QueryPlus.wrap(query), context)); }
@Test public void testFilteredTimeSeries() { List<Result<TimeseriesResultValue>> expectedResults = Collections.singletonList( new Result<TimeseriesResultValue>( DateTimes.of("2011-01-12T00:00:00.000Z"), new TimeseriesResultValue( ImmutableMap.<String, Object>builder() .put("rows", 5L) .put("index", 500.0D) .put("addRowsIndexConstant", 506.0D) .put("uniques", 1.0002442201269182D) .put("maxIndex", 100.0D) .put("minIndex", 100.0D) .build() ) ) ); TimeseriesQuery query = makeFilteredTimeseriesQuery(); QueryRunner runner = TestQueryRunners.makeTimeSeriesQueryRunner(segment); HashMap<String, Object> context = new HashMap<String, Object>(); TestHelper.assertExpectedResults(expectedResults, runner.run(QueryPlus.wrap(query), context)); }
@Override public Sequence<Result<TimeseriesResultValue>> run( QueryPlus<Result<TimeseriesResultValue>> queryPlus, Map<String, Object> context ) { if ((int) context.get("count") < 3) { ((List) context.get(Result.MISSING_SEGMENTS_KEY)).add( new SegmentDescriptor(Intervals.utc(178888, 1999999), "test", 1) ); context.put("count", (int) context.get("count") + 1); return Sequences.empty(); } else { return Sequences.simple( Collections.singletonList( new Result<>( DateTimes.nowUtc(), new TimeseriesResultValue( new HashMap<>() ) ) ) ); } } },
@Test public void testTimeSeries2() { List<Result<TimeseriesResultValue>> expectedResults = Collections.singletonList( new Result<TimeseriesResultValue>( DateTimes.of("2011-01-12T00:00:00.000Z"), new TimeseriesResultValue( ImmutableMap.<String, Object>builder() .put("rows", 7L) .put("index", 500.0D) .put("addRowsIndexConstant", 508.0D) .put("uniques", 0.0D) .put("maxIndex", 100.0D) .put("minIndex", 0.0D) .build() ) ) ); TimeseriesQuery query = makeTimeseriesQuery(); QueryRunner runner = TestQueryRunners.makeTimeSeriesQueryRunner(segment2); HashMap<String, Object> context = new HashMap<String, Object>(); TestHelper.assertExpectedResults(expectedResults, runner.run(QueryPlus.wrap(query), context)); }
private Function<Result<TimeseriesResultValue>, Result<TimeseriesResultValue>> makeComputeManipulatorFn( final TimeseriesQuery query, final MetricManipulationFn fn, final boolean calculatePostAggs ) { return result -> { final TimeseriesResultValue holder = result.getValue(); final Map<String, Object> values = new HashMap<>(holder.getBaseObject()); if (calculatePostAggs && !query.getPostAggregatorSpecs().isEmpty()) { // put non finalized aggregators for calculating dependent post Aggregators for (AggregatorFactory agg : query.getAggregatorSpecs()) { values.put(agg.getName(), holder.getMetric(agg.getName())); } for (PostAggregator postAgg : query.getPostAggregatorSpecs()) { values.put(postAgg.getName(), postAgg.compute(values)); } } for (AggregatorFactory agg : query.getAggregatorSpecs()) { values.put(agg.getName(), fn.manipulate(agg, holder.getMetric(agg.getName()))); } return new Result<>( result.getTimestamp(), new TimeseriesResultValue(values) ); }; } }
@Override public Sequence<Result<TimeseriesResultValue>> run( QueryPlus<Result<TimeseriesResultValue>> queryPlus, Map<String, Object> context ) { if ((int) context.get("count") == 0) { ((List) context.get(Result.MISSING_SEGMENTS_KEY)).add( new SegmentDescriptor(Intervals.utc(178888, 1999999), "test", 1) ); context.put("count", 1); return Sequences.empty(); } else { return Sequences.simple( Collections.singletonList( new Result<>( DateTimes.nowUtc(), new TimeseriesResultValue( new HashMap<>() ) ) ) ); } } },
@Test public void testMergeOneNullResult() { Result<TimeseriesResultValue> result1 = new Result<TimeseriesResultValue>( currTime, new TimeseriesResultValue( ImmutableMap.of( "rows", 1L, "index", 2L ) ) ); Result<TimeseriesResultValue> result2 = null; Result<TimeseriesResultValue> expected = result1; Result<TimeseriesResultValue> actual = new TimeseriesBinaryFn( Granularities.ALL, aggregatorFactories ).apply( result1, result2 ); Assert.assertEquals(expected, actual); }
new Result<>( DateTimes.of("2011-04-01"), new TimeseriesResultValue( resultMap new Result<>( DateTimes.of("2011-04-02"), new TimeseriesResultValue( resultMap
new Result<>( DateTimes.of("2020-04-02"), new TimeseriesResultValue( resultMap
new Result<>( DateTimes.of("2011-04-01"), new TimeseriesResultValue( ImmutableMap.of( "rows",