@Override public void apply() { delegate.add(fact); } });
@Override public Collection<DimensionValue> call() { return delegate.findDimensionValues(query); } });
@Override public Collection<String> call() { return delegate.findMeasureNames(query); } });
@Override public Collection<TimeSeries> call() { return delegate.query(query); } });
writeIncViaBatchWritable(cube, "metric1", 9, 1, null, null, null); cube.add(ImmutableList.of( getFact("metric1", 10, 2, MeasureType.COUNTER, "1", "1", "1", "1"), getFact("metric1", 11, 3, MeasureType.COUNTER, "1", "1", "1", null), CubeDeleteQuery query = new CubeDeleteQuery(0, 8, resolution, deleteTags, Collections.singletonList("metric1"), predicate); cube.delete(query); query = new CubeDeleteQuery(0, 15, resolution, deleteTags, Collections.singletonList("metric1"), predicate); cube.delete(query);
private void deleteMetricsBeforeTimestamp(long timestamp, int resolution) { CubeDeleteQuery query = new CubeDeleteQuery(0, timestamp, resolution, Collections.emptyMap(), Collections.emptySet(), strings -> true); cube.get().delete(query); }
@Override public void close() throws IOException { delegate.close(); } }
private void writeIncViaBatchWritable(Cube cube, String measureName, long ts, long value, String... dims) throws Exception { // null for key: it is ignored cube.write(null, getFact(measureName, ts, value, MeasureType.COUNTER, dims)); }
@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 void apply() { delegate.delete(query); } });
@Override public void apply() { delegate.add(facts); } });
@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<String> findMetricNames(MetricSearchQuery query) { return cube.get().findMeasureNames(buildCubeSearchQuery(query)); }
@Override public Collection<TagValue> findNextAvailableTags(MetricSearchQuery query) { Collection<DimensionValue> tags = cube.get().findDimensionValues(buildCubeSearchQuery(query)); Collection<TagValue> result = Lists.newArrayList(); for (DimensionValue dimensionValue : tags) { result.add(new TagValue(dimensionValue.getName(), dimensionValue.getValue())); } return result; }
private void deleteMetricsBeforeTimestamp(long timestamp, int resolution) { CubeDeleteQuery query = new CubeDeleteQuery(0, timestamp, resolution, Collections.emptyMap(), Collections.emptySet(), strings -> true); cube.get().delete(query); }
/** * Adds facts to a {@link Cube} as defined by {@link Cube#add(java.util.Collection)}. */ @Path("add") @POST public void addFact(HttpServiceRequest request, HttpServiceResponder responder) { try { String body = Bytes.toString(request.getContent()); Collection<CubeFact> facts = GSON.fromJson(body, CUBE_FACT_COLLECTION); getCube().add(facts); responder.sendStatus(200); } catch (Throwable th) { LOG.error("Error while executing request", th); responder.sendError(500, th.getMessage()); } }
/** * 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()); } } }
@Override public Collection<String> findMetricNames(MetricSearchQuery query) { return cube.get().findMeasureNames(buildCubeSearchQuery(query)); }
@Override public Collection<TagValue> findNextAvailableTags(MetricSearchQuery query) { Collection<DimensionValue> tags = cube.get().findDimensionValues(buildCubeSearchQuery(query)); Collection<TagValue> result = Lists.newArrayList(); for (DimensionValue dimensionValue : tags) { result.add(new TagValue(dimensionValue.getName(), dimensionValue.getValue())); } return result; }
@Override public void delete(MetricDeleteQuery query) { cube.get().delete(buildCubeDeleteQuery(query)); }