use of org.opennms.newts.api.Results.Row in project newts by OpenNMS.
the class ResultProcessorTest method testCounterRate.
@Test
public void testCounterRate() {
Iterator<Row<Sample>> testData = new SampleRowsBuilder(new Resource("localhost"), MetricType.COUNTER).row(900000000).element("m0", // Thu Jul 9 11:00:00 CDT 1998
3000).row(900000300).element("m0", 6000).row(900000600).element("m0", 9000).row(900000900).element("m0", 12000).row(900001200).element("m0", 15000).row(900001500).element("m0", 18000).row(900001800).element("m0", 21000).row(900002100).element("m0", 24000).row(900002400).element("m0", 27000).row(900002700).element("m0", 30000).row(900003000).element("m0", 33000).row(900003300).element("m0", 36000).row(900003600).element("m0", 39000).row(900003900).element("m0", 42000).row(900004200).element("m0", 45000).row(900004500).element("m0", 48000).row(900004800).element("m0", 51000).row(900005100).element("m0", 54000).row(900005400).element("m0", 57000).row(900005700).element("m0", 60000).row(900006000).element("m0", 63000).row(900006300).element("m0", 66000).row(900006600).element("m0", 69000).row(900006900).element("m0", 72000).row(900007200).element("m0", // Thu Jul 9 13:00:00 CDT 1998
75000).build();
ResultDescriptor rDescriptor = new ResultDescriptor(Duration.seconds(300)).datasource("m0", AVERAGE).export("m0");
Iterator<Row<Measurement>> expected = new MeasurementRowsBuilder(new Resource("localhost")).row(900003600).element("m0", 10.0).row(900007200).element("m0", 10.0).build();
ResultProcessor processor = new ResultProcessor(new Resource("localhost"), Timestamp.fromEpochSeconds(900003600), Timestamp.fromEpochSeconds(900007200), rDescriptor, Duration.minutes(60));
assertRowsEqual(expected, processor.process(testData).iterator());
}
use of org.opennms.newts.api.Results.Row in project newts by OpenNMS.
the class Rate method next.
@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;
}
use of org.opennms.newts.api.Results.Row in project newts by OpenNMS.
the class AggregationAttributesTest method test.
@Test
public void test() {
Iterator<Row<Measurement>> testData = new MeasurementRowsBuilder(new Resource("localhost")).row(1).element("m0", 1, mapFor("a", "1")).row(300).element("m0", 1).row(600).element("m0", 1).row(900).element("m0", 1).row(1200).element("m0", 1).row(1500).element("m0", 1).row(1800).element("m0", 3, mapFor("b", "1")).row(2100).element("m0", 3).row(2400).element("m0", 3, mapFor("a", "2")).row(2700).element("m0", 3).row(3000).element("m0", 3).row(3300).element("m0", 3).build();
ResultDescriptor rDescriptor = new ResultDescriptor(Duration.seconds(300)).datasource("m0-avg", "m0", Duration.seconds(600), AVERAGE).datasource("m0-min", "m0", Duration.seconds(600), MIN).datasource("m0-max", "m0", Duration.seconds(600), MAX);
Aggregation aggregation = new Aggregation(new Resource("localhost"), Timestamp.fromEpochSeconds(1), Timestamp.fromEpochSeconds(3300), rDescriptor, Duration.minutes(60), testData);
Row<Measurement> row = aggregation.next();
assertThat(row.getTimestamp(), equalTo(fromEpochSeconds(0)));
assertThat(row.getElement("m0-avg").getAttributes(), nullValue());
row = aggregation.next();
assertThat(row.getTimestamp(), equalTo(fromEpochSeconds(3600)));
assertAttributes(row.getElement("m0-avg"), mapFor("a", "2", "b", "1"));
}
use of org.opennms.newts.api.Results.Row in project newts by OpenNMS.
the class AggregationTest method test.
@Test
public void test() {
Iterator<Row<Measurement>> testData = new MeasurementRowsBuilder(new Resource("localhost")).row(1).element("m0", 1).row(300).element("m0", 1).row(600).element("m0", 1).row(900).element("m0", 1).row(1200).element("m0", 1).row(1500).element("m0", 1).row(1800).element("m0", 3).row(2100).element("m0", 3).row(2400).element("m0", 3).row(2700).element("m0", 3).row(3000).element("m0", 3).row(3300).element("m0", 3).build();
ResultDescriptor rDescriptor = new ResultDescriptor(Duration.seconds(300)).datasource("m0-avg", "m0", Duration.seconds(600), AVERAGE).datasource("m0-min", "m0", Duration.seconds(600), MIN).datasource("m0-max", "m0", Duration.seconds(600), MAX);
Iterator<Row<Measurement>> expected = new MeasurementRowsBuilder(new Resource("localhost")).row(0).element("m0-avg", NaN).element("m0-min", NaN).element("m0-max", NaN).row(3600).element("m0-avg", 2).element("m0-min", 1).element("m0-max", 3).build();
Aggregation aggregation = new Aggregation(new Resource("localhost"), Timestamp.fromEpochSeconds(1), Timestamp.fromEpochSeconds(3300), rDescriptor, Duration.minutes(60), testData);
assertRowsEqual(expected, aggregation);
}
use of org.opennms.newts.api.Results.Row in project newts by OpenNMS.
the class ComputeTest method testCalcOfCalc.
@Test
public void testCalcOfCalc() {
Iterator<Row<Measurement>> testData = new MeasurementRowsBuilder(new Resource("localhost")).row(300).element("in", 20).element("out", 20).row(600).element("in", 60).element("out", 40).build();
ResultDescriptor rDescriptor = new ResultDescriptor().datasource("in", AVERAGE).datasource("out", AVERAGE).calculate("sum", PLUS, "in", "out").calculate("tens", DIVIDE, "sum", "10").export("tens");
Iterator<Row<Measurement>> expected = new MeasurementRowsBuilder(new Resource("localhost")).row(300).element("in", 20).element("out", 20).element("sum", 40).element("tens", 4).row(600).element("in", 60).element("out", 40).element("sum", 100).element("tens", 10).build();
Compute compute = new Compute(rDescriptor, testData);
assertRowsEqual(expected, compute);
}
Aggregations