public double getLastValue(final String resource, final String attribute, final String aggregation, boolean relaxed) throws MeasurementException { long end = System.currentTimeMillis(); long start = end - (15 * 60 * 1000); QueryResponse.WrappedPrimitive[] columns = queryInt(resource, attribute, start, end, 300000, aggregation, relaxed).getColumns(); if (columns.length > 0) { double[] values = columns[0].getList(); if (values.length > 0) { for(int i = values.length-1; i >= 0; i--) { if (!Double.isNaN(values[i])) { return values[i]; } } } } return Double.NaN; }
protected Object getFieldValue(final String name, final int rowIndex) { if (response == null) { return null; } LOG.debug("Getting field value for field {}:{}", rowIndex, name); if ("step".equals(name)) { return response.getStep(); } if ("start".equals(name)) { return response.getStart(); } if ("end".equals(name)) { return response.getEnd(); } if ("timestamp".equals(name) && response.getTimestamps() != null && response.getTimestamps().length > rowIndex) { return new Date(response.getTimestamps()[rowIndex]); } double[] values = response.columnsWithLabels().get(name); if (values != null && values.length > rowIndex) { return values[rowIndex]; } return null; }
/** * Returns the supported fields. * @return The supported fields. */ protected List<JRField> getFields() { List<JRField> fields = new ArrayList<>(); // constant fields fields.add(createField("step", Long.class)); fields.add(createField("end", Long.class)); fields.add(createField("start", Long.class)); // dynamic fields fields.add(createField("timestamp", Date.class)); if (response != null) { for (String eachLabel : response.getLabels()) { fields.add(createField(eachLabel, Double.class)); } } return fields; }
final QueryResponse response = new QueryResponse(); response.setStart(request.getStart()); response.setEnd(request.getEnd()); response.setStep(results.getStep()); response.setTimestamps(results.getTimestamps()); response.setColumns(results.getColumns()); response.setConstants(results.getConstants()); response.setMetadata(results.getMetadata()); return response;
public MeasurementDataSource(QueryResponse queryResponse) { this.response = queryResponse; this.numberRows = 0; if (queryResponse != null && queryResponse.getTimestamps() != null) { this.numberRows = queryResponse.getTimestamps().length; } LOG.debug("New {} created with {} rows: {}", getClass().getName(), numberRows, response); }
final QueryResponse response = new QueryResponse(); response.setStart(request.getStart()); response.setEnd(request.getEnd()); response.setStep(results.getStep()); response.setTimestamps(results.getTimestamps()); response.setColumns(results.getColumns()); response.setConstants(results.getConstants()); return response;
public double getLastValue(final String resource, final String attribute, final String aggregation, boolean relaxed) throws MeasurementException { long end = System.currentTimeMillis(); long start = end - (15 * 60 * 1000); QueryResponse.WrappedPrimitive[] columns = queryInt(resource, attribute, start, end, 300000, aggregation, relaxed).getColumns(); if (columns.length > 0) { double[] values = columns[0].getList(); if (values.length > 0) { for(int i = values.length-1; i >= 0; i--) { if (!Double.isNaN(values[i])) { return values[i]; } } } } return Double.NaN; }
/** * A method to query the Measurements Api for a given resource/attribute. * * @param resource the resource to be used * @param attribute the attribute to query for * @param start the start timestamp * @param end the end timestamp * @param step the step size * @param aggregation the aggregation method * @return the list of double values */ public List<Double> query(final String resource, final String attribute, final long start, final long end, final long step, final String aggregation, final boolean relaxed) throws MeasurementException { QueryResponse.WrappedPrimitive[] columns = queryInt(resource, attribute, start, end, step, aggregation, relaxed).getColumns(); if (columns.length > 0) { return Doubles.asList(columns[0].getList()); } return Collections.emptyList(); }
/** * A method to query the Measurements Api for a given resource/attribute. * * @param resource the resource to be used * @param attribute the attribute to query for * @param start the start timestamp * @param end the end timestamp * @param step the step size * @param aggregation the aggregation method * @return the list of double values */ public List<Double> query(final String resource, final String attribute, final long start, final long end, final long step, final String aggregation, final boolean relaxed) throws MeasurementException { QueryResponse.WrappedPrimitive[] columns = queryInt(resource, attribute, start, end, step, aggregation, relaxed).getColumns(); if (columns.length > 0) { return Doubles.asList(columns[0].getList()); } return Collections.emptyList(); }
if (response.getColumns().length == 0) { throw getException(Status.NO_CONTENT, "No content.");
QueryResponse.WrappedPrimitive[] columns = measurementsService.query(request).getColumns();
QueryResponse.WrappedPrimitive[] columns = measurementsService.query(request).getColumns();