@Override public Collection<TimeSeries> call() { return delegate.query(query); } });
@Override public Collection<MetricTimeSeries> query(MetricDataQuery query) { Collection<TimeSeries> cubeResult = cube.get().query(buildCubeQuery(query)); List<MetricTimeSeries> result = Lists.newArrayList(); for (TimeSeries timeSeries : cubeResult) { result.add(new MetricTimeSeries(timeSeries.getMeasureName(), timeSeries.getDimensionValues(), timeSeries.getTimeValues())); } return result; }
@Override public Collection<MetricTimeSeries> query(MetricDataQuery query) { Collection<TimeSeries> cubeResult = cube.get().query(buildCubeQuery(query)); List<MetricTimeSeries> result = Lists.newArrayList(); for (TimeSeries timeSeries : cubeResult) { result.add(new MetricTimeSeries(timeSeries.getMeasureName(), timeSeries.getDimensionValues(), timeSeries.getTimeValues())); } return result; }
/** * Queries data in a {@link Cube} as defined by {@link Cube#query(CubeQuery)}. */ @Path("query") @POST public void query(HttpServiceRequest request, HttpServiceResponder responder) { try { String body = Bytes.toString(request.getContent()); CubeQuery query = GSON.fromJson(body, CubeQuery.class); Collection<TimeSeries> result = getCube().query(query); responder.sendJson(result); } catch (Throwable th) { LOG.error("Error while executing request", th); responder.sendError(500, th.getMessage()); } } }
private void verifyCountQuery(Cube cube, String aggregation, long startTs, long endTs, int resolution, String measureName, AggregationFunction aggFunction, Map<String, String> dimValues, List<String> groupByDims, Collection<TimeSeries> expected, Interpolator interpolator) throws Exception { CubeQuery query = CubeQuery.builder() .select() .measurement(measureName, aggFunction) .from(aggregation).resolution(resolution, TimeUnit.SECONDS) .where() .dimensions(dimValues) .timeRange(startTs, endTs) .groupBy() .dimensions(groupByDims) .limit(Integer.MAX_VALUE) .interpolator(interpolator) .build(); Collection<TimeSeries> result = cube.query(query); Assert.assertEquals(String.format("expected: %s, found: %s", expected, result), expected.size(), result.size()); Assert.assertTrue(String.format("expected: %s, found: %s", expected, result), expected.containsAll(result)); }