private double[] getValues(Row<Measurement> row, String[] names) { double[] values = new double[names.length]; for (int i = 0; i < names.length; i++) { String name = names[i]; Optional<Double> d = parseDouble(name); values[i] = d.isPresent() ? d.get() : checkNotNull(row.getElement(name), "Missing measurement; Upstream iterator is bugged").getValue(); } return values; }
@Override public Row<Sample> next() { if (!hasNext()) throw new NoSuchElementException(); Row<Sample> working = m_input.next(); Row<Sample> result = new Row<>(working.getTimestamp(), working.getResource()); for (String metricName : m_metrics) { Sample sample = working.getElement(metricName); if (sample == null) { continue; } // Use rate as result if one of counter types, else pass through as-is. result.addElement(COUNTERS.contains(sample.getType()) ? getRate(sample) : sample); m_prevSamples.put(sample.getName(), sample); } return result; }
Measurement metric = m_working.getElement(ds.getSource()); values.put(ds.getLabel(), metric != null ? metric.getValue() : Double.NaN);
Sample current; current = row.getElement(ds.getSource());
private int go(String[] args) { m_parser.setUsageWidth(80); try { m_parser.parseArgument(args); } catch (CmdLineException e) { System.err.println(e.getMessage()); printUsage(System.err); return 1; } if (m_needsHelp) { printUsage(System.out); return 0; } if (m_resource == null || m_metric == null) { System.err.println("Missing required argument(s)"); printUsage(System.err); return 1; } System.out.printf("timestamp,%s%n", m_metric); for (Results.Row<Sample> row : m_repository.select(Context.DEFAULT_CONTEXT, m_resource, timestamp(m_start), timestamp(m_end))) { System.out.printf("%s,%.2f%n", row.getTimestamp().asDate(), row.getElement(m_metric).getValue().doubleValue()); } return 0; }
private Measurement getMeasurement(String name) { Measurement measurement = m_current.getElement(name); return (measurement != null) ? measurement : getNan(name); }