@Override public String toString() { return String.format( "%s[timestamp=%s, resource=%s, elements=%s", getClass().getSimpleName(), getTimestamp(), getResource(), getElements()); }
@Override public Row<Measurement> next() { if (!hasNext()) throw new NoSuchElementException(); Row<Measurement> result = new Row<>(m_current.getTimestamp(), m_current.getResource()); for (String export : m_exports) { result.addElement(getMeasurement(export)); } try { return result; } finally { m_current = m_input.hasNext() ? m_input.next() : null; } }
@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; }
output.getResource(), ds.getSource(), accumulation.getAverage(),
private Measurement getNan(String name) { return new Measurement(m_current.getTimestamp(), m_current.getResource(), name, Double.NaN); }
@Override public Row<Measurement> next() { if (!hasNext()) throw new NoSuchElementException(); Row<Measurement> row = m_input.next(); for (Calculation calc : m_resultDescriptor.getCalculations().values()) { double v = calc.getCalculationFunction().apply(getValues(row, calc.getArgs())); row.addElement(new Measurement(row.getTimestamp(), row.getResource(), calc.getLabel(), v)); } return row; }