Search in sources :

Example 1 with BinaryFunction

use of org.opennms.newts.api.query.ResultDescriptor.BinaryFunction in project newts by OpenNMS.

the class ResultProcessorTest method testCalculated.

@Test
public void testCalculated() {
    Iterator<Row<Sample>> testData = new SampleRowsBuilder(new Resource("localhost"), MetricType.COUNTER).row(900000000).element("m0", 3000).element("m1", // Thu Jul  9 11:00:00 CDT 1998
    3000).row(900000300).element("m0", 6000).element("m1", 6000).row(900000600).element("m0", 9000).element("m1", 9000).row(900000900).element("m0", 12000).element("m1", 12000).row(900001200).element("m0", 15000).element("m1", 15000).row(900001500).element("m0", 18000).element("m1", 18000).row(900001800).element("m0", 21000).element("m1", 21000).row(900002100).element("m0", 24000).element("m1", 24000).row(900002400).element("m0", 27000).element("m1", 27000).row(900002700).element("m0", 30000).element("m1", 30000).row(900003000).element("m0", 33000).element("m1", 33000).row(900003300).element("m0", 36000).element("m1", 36000).row(900003600).element("m0", 39000).element("m1", 39000).row(900003900).element("m0", 42000).element("m1", 42000).row(900004200).element("m0", 45000).element("m1", 45000).row(900004500).element("m0", 48000).element("m1", 48000).row(900004800).element("m0", 51000).element("m1", 51000).row(900005100).element("m0", 54000).element("m1", 54000).row(900005400).element("m0", 57000).element("m1", 57000).row(900005700).element("m0", 60000).element("m1", 60000).row(900006000).element("m0", 63000).element("m1", 63000).row(900006300).element("m0", 66000).element("m1", 66000).row(900006600).element("m0", 69000).element("m1", 69000).row(900006900).element("m0", 72000).element("m1", 72000).row(900007200).element("m0", 75000).element("m1", // Thu Jul  9 13:00:00 CDT 1998
    75000).build();
    // Function to add two values
    BinaryFunction sum = new BinaryFunction() {

        private static final long serialVersionUID = 0L;

        @Override
        public double apply(double a, double b) {
            return a + b;
        }
    };
    ResultDescriptor rDescriptor = new ResultDescriptor(Duration.seconds(300)).datasource("m0", AVERAGE).datasource("m1", AVERAGE).calculate("total", sum, "m0", "m1").export("total");
    Iterator<Row<Measurement>> expected = new MeasurementRowsBuilder(new Resource("localhost")).row(900003600).element("total", 20).row(900007200).element("total", 20).build();
    ResultProcessor processor = new ResultProcessor(new Resource("localhost"), Timestamp.fromEpochSeconds(900003600), Timestamp.fromEpochSeconds(900007200), rDescriptor, Duration.minutes(60));
    assertRowsEqual(expected, processor.process(testData).iterator());
}
Also used : BinaryFunction(org.opennms.newts.api.query.ResultDescriptor.BinaryFunction) MeasurementRowsBuilder(org.opennms.newts.aggregate.Utils.MeasurementRowsBuilder) Resource(org.opennms.newts.api.Resource) ResultDescriptor(org.opennms.newts.api.query.ResultDescriptor) Row(org.opennms.newts.api.Results.Row) SampleRowsBuilder(org.opennms.newts.aggregate.Utils.SampleRowsBuilder) Test(org.junit.Test)

Example 2 with BinaryFunction

use of org.opennms.newts.api.query.ResultDescriptor.BinaryFunction in project newts by OpenNMS.

the class ResultDescriptorTest method testCalculations.

@Test
public void testCalculations() {
    BinaryFunction plus = new BinaryFunction() {

        @Override
        public double apply(double a, double b) {
            return a + b;
        }
    };
    BinaryFunction minus = new BinaryFunction() {

        @Override
        public double apply(double a, double b) {
            return a - b;
        }
    };
    ResultDescriptor results = new ResultDescriptor().datasource("in", "ifInOctets", seconds(600), AVERAGE).datasource("out", "ifOutOctets", seconds(600), AVERAGE).calculate("sum", plus, "in", "out").calculate("diff", minus, "in", "out").export("sum", "diff");
    assertEquals(Sets.newHashSet("in", "out"), results.getDatasources().keySet());
    assertEquals(Sets.newHashSet("sum", "diff"), results.getExports());
}
Also used : BinaryFunction(org.opennms.newts.api.query.ResultDescriptor.BinaryFunction) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)2 BinaryFunction (org.opennms.newts.api.query.ResultDescriptor.BinaryFunction)2 MeasurementRowsBuilder (org.opennms.newts.aggregate.Utils.MeasurementRowsBuilder)1 SampleRowsBuilder (org.opennms.newts.aggregate.Utils.SampleRowsBuilder)1 Resource (org.opennms.newts.api.Resource)1 Row (org.opennms.newts.api.Results.Row)1 ResultDescriptor (org.opennms.newts.api.query.ResultDescriptor)1