private QueryResponse queryInt(final String resource, final String attribute, final long start, final long end, final long step, final String aggregation, final boolean relaxed) throws MeasurementException { QueryRequest request = new QueryRequest(); request.setRelaxed(relaxed); request.setStart(start); request.setEnd(end); request.setStep(step); Source source = new Source(); source.setAggregation(aggregation); source.setTransient(false); source.setAttribute(attribute); source.setResourceId(resource); source.setLabel(attribute); request.setSources(Collections.singletonList(source)); return measurementsService.query(request); } }
@DefaultValue("false") @QueryParam("relaxed") final boolean relaxed) { QueryRequest request = new QueryRequest(); request.setEnd(end > 0 ? end : new Date().getTime()); request.setStart(start >= 0 ? start : request.getEnd() + start); if (request.getStart() < 0) { request.setStart(0); request.setStep(step); request.setMaxRows(maxrows); request.setRelaxed(relaxed); source.setFallbackAttribute(fallbackAttribute); source.setAggregation(aggregation); request.setSources(Lists.newArrayList(source));
public void validate(QueryRequest request) throws ValidationException { if (request.getEnd() < 0) { throw new ValidationException("Query end must be >= 0: {}", request.getEnd()); if (request.getStep() <= 0) { throw new ValidationException("Query step must be > 0: {}", request.getStep()); if ((request.getHeartbeat() == null && request.getInterval() != null) || (request.getHeartbeat() != null && request.getInterval() == null)) { throw new ValidationException("If either the heartbeat or the interval are set, then both must be set."); if (request.getHeartbeat() != null && request.getInterval() != null) { if (request.getHeartbeat() <= 0) { throw new ValidationException("Heartbeat must be positive: {}", request.getHeartbeat()); if (request.getInterval() <= 0) { throw new ValidationException("Interval must be positive: {}", request.getInterval()); if (request.getStep() % request.getInterval() != 0) { throw new ValidationException("Step must be a multiple of the interval. Step: {}, Interval: {}", request.getStep(), request.getInterval()); if (request.getHeartbeat() % request.getInterval() != 0) { throw new ValidationException("Heartbeat must be a multiple of the interval. Interval: {} Heartbeat: {}", request.getInterval(), request.getHeartbeat()); for (final Source source : request.getSources()) { if (source.getResourceId() == null || source.getAttribute() == null
try { results = fetchStrategy.fetch( request.getStart(), request.getEnd(), request.getStep(), request.getMaxRows(), request.getHeartbeat(), request.getInterval(), request.getSources(), request.isRelaxed()); } catch (Exception e) { throw new FetchException(e, "Fetch failed: {}", e.getMessage()); if (!request.getFilters().isEmpty()) { RowSortedTable<Long, String, Double> table = results.asRowSortedTable(); filterEngine.filter(request.getFilters(), table); results = new FetchResults(table, results.getStep(), results.getConstants()); for (final Source source : request.getSources()) { if (source.getTransient()) { columns.remove(source.getLabel()); response.setStart(request.getStart()); response.setEnd(request.getEnd()); response.setStep(results.getStep()); response.setTimestamps(results.getTimestamps());
@Override public JRRewindableDataSource createDataSource(String query) throws JRException { Objects.requireNonNull(query); QueryRequest queryRequest = unmarshal(query); Objects.requireNonNull(queryRequest); queryRequest.setRelaxed(true); // Enforce relaxed mode try { QueryResponse response = fetchService.query(queryRequest); return new MeasurementDataSource(response); } catch (ResourceNotFoundException rnfe) { LOG.warn("A attribute or resource was not found", rnfe); return new EmptyJRDataSource(); } catch (Exception e) { LOG.error("An error occurred while fetching the measurement results", e); throw new JRException(e); } }
Preconditions.checkNotNull(results, "results argument"); final int numExpressions = request.getExpressions().size(); for (final Expression e : request.getExpressions()) {
try { results = fetchStrategy.fetch( request.getStart(), request.getEnd(), request.getStep(), request.getMaxRows(), request.getHeartbeat(), request.getInterval(), request.getSources(), request.isRelaxed()); } catch (Exception e) { throw new FetchException(e, "Fetch failed: {}", e.getMessage()); if (!request.getFilters().isEmpty()) { RowSortedTable<Long, String, Double> table = results.asRowSortedTable(); filterEngine.filter(request.getFilters(), table); results = new FetchResults(table, results.getStep(), results.getConstants(), results.getMetadata()); for (final Source source : request.getSources()) { if (source.getTransient()) { columns.remove(source.getLabel()); response.setStart(request.getStart()); response.setEnd(request.getEnd()); response.setStep(results.getStep()); response.setTimestamps(results.getTimestamps());
try { QueryRequest queryRequest = unmarshal(query); queryRequest.setRelaxed(true); // enforce relaxed mode query = marshal(queryRequest); Result result = connector.execute(useSsl, url, username, password, query);
Preconditions.checkNotNull(results, "results argument"); final int numExpressions = request.getExpressions().size(); for (final Expression e : request.getExpressions()) {
private QueryResponse queryInt(final String resource, final String attribute, final long start, final long end, final long step, final String aggregation, final boolean relaxed) throws MeasurementException { QueryRequest request = new QueryRequest(); request.setRelaxed(relaxed); request.setStart(start); request.setEnd(end); request.setStep(step); Source source = new Source(); source.setAggregation(aggregation); source.setTransient(false); source.setAttribute(attribute); source.setResourceId(resource); source.setLabel(attribute); request.setSources(Collections.singletonList(source)); return measurementsService.query(request); } }
public void validate(QueryRequest request) throws ValidationException { if (request.getEnd() < 0) { throw new ValidationException("Query end must be >= 0: {}", request.getEnd()); if (request.getStep() <= 0) { throw new ValidationException("Query step must be > 0: {}", request.getStep()); if ((request.getHeartbeat() == null && request.getInterval() != null) || (request.getHeartbeat() != null && request.getInterval() == null)) { throw new ValidationException("If either the heartbeat or the interval are set, then both must be set."); if (request.getHeartbeat() != null && request.getInterval() != null) { if (request.getHeartbeat() <= 0) { throw new ValidationException("Heartbeat must be positive: {}", request.getHeartbeat()); if (request.getInterval() <= 0) { throw new ValidationException("Interval must be positive: {}", request.getInterval()); if (request.getStep() % request.getInterval() != 0) { throw new ValidationException("Step must be a multiple of the interval. Step: {}, Interval: {}", request.getStep(), request.getInterval()); if (request.getHeartbeat() % request.getInterval() != 0) { throw new ValidationException("Heartbeat must be a multiple of the interval. Interval: {} Heartbeat: {}", request.getInterval(), request.getHeartbeat()); for (final Source source : request.getSources()) { if (source.getResourceId() == null || source.getAttribute() == null
QueryRequest request = new QueryRequest(); request.setRelaxed(true); request.setStart(start); request.setEnd(end); request.setStep(step); sourceOut.setLabel("ifOutOctets"); request.setExpressions(Arrays.asList(new Expression("ifInPercent", "(8 * ifInOctects / 1000000) / ifInOctets.ifHighSpeed * 100", false), new Expression("ifOutPercent", "(8 * ifOutOctects / 1000000) / ifOutOctets.ifHighSpeed * 100", false))); request.setSources(Arrays.asList(sourceIn, sourceOut));
QueryRequest request = new QueryRequest(); request.setRelaxed(true); request.setStart(start); request.setEnd(end); request.setStep(step); sourceOut.setLabel("ifOutOctets"); request.setExpressions(Arrays.asList(new Expression("ifInPercent", "(8 * ifInOctects / 1000000) / ifInOctets.ifHighSpeed * 100", false), new Expression("ifOutPercent", "(8 * ifOutOctects / 1000000) / ifOutOctets.ifHighSpeed * 100", false))); request.setSources(Arrays.asList(sourceIn, sourceOut));