public JsonElement executeQuery(MetricDataQuery query) throws Exception { if (query.getResolution() != Integer.MAX_VALUE) { TimeSeriesResponse.Builder builder = TimeSeriesResponse.builder(query.getStartTs(), query.getEndTs()); PeekingIterator<TimeValue> timeValueItor = Iterators.peekingIterator(queryTimeSeries(query)); long resultTimeStamp = (query.getStartTs() / query.getResolution()) * query.getResolution(); resultTimeStamp += query.getResolution();
private CubeQuery buildCubeQuery(MetricDataQuery query) { return new CubeQuery(null, query.getStartTs(), query.getEndTs(), query.getResolution(), query.getLimit(), query.getMetrics(), query.getSliceByTags(), query.getGroupByTags(), query.getInterpolator()); }
private CubeQuery buildCubeQuery(MetricDataQuery query) { String aggregation = getAggregation(query); return new CubeQuery(aggregation, query.getStartTs(), query.getEndTs(), query.getResolution(), query.getLimit(), query.getMetrics(), query.getSliceByTags(), query.getGroupByTags(), query.getInterpolator()); }
private void computeProcessBusyness(MetricDataQuery query, TimeSeriesResponse.Builder builder) throws Exception { PeekingIterator<TimeValue> tuplesReadItor = Iterators.peekingIterator(queryTimeSeries(new MetricDataQuery(query, "system.process.tuples.read", AggregationFunction.SUM))); PeekingIterator<TimeValue> eventsProcessedItor = Iterators.peekingIterator(queryTimeSeries(new MetricDataQuery(query, "system.process.events.processed", AggregationFunction.SUM))); long resultTimeStamp = query.getStartTs(); for (int i = 0; i < query.getLimit(); i++) { long tupleRead = 0; long eventProcessed = 0; if (tuplesReadItor.hasNext() && tuplesReadItor.peek().getTimestamp() == resultTimeStamp) { tupleRead = tuplesReadItor.next().getValue(); } if (eventsProcessedItor.hasNext() && eventsProcessedItor.peek().getTimestamp() == resultTimeStamp) { eventProcessed = eventsProcessedItor.next().getValue(); } if (eventProcessed != 0) { int busyness = (int) ((float) tupleRead / eventProcessed * 100); builder.addData(resultTimeStamp, busyness > 100 ? 100 : busyness); } else { // If the scan result doesn't have value for a timestamp, we add 0 to the returned result for that timestamp. builder.addData(resultTimeStamp, 0); } resultTimeStamp += query.getResolution(); } }