Search in sources :

Example 1 with SampleRowsBuilder

use of org.opennms.newts.aggregate.Utils.SampleRowsBuilder 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 SampleRowsBuilder

use of org.opennms.newts.aggregate.Utils.SampleRowsBuilder in project newts by OpenNMS.

the class PrimaryDataTest method testManyToOneSamples.

@Test
public void testManyToOneSamples() {
    // Element interval is less than step size.
    Iterator<Row<Sample>> testData = new SampleRowsBuilder(new Resource("localhost"), MetricType.GAUGE).row(0).element("m0", 0).element("m1", 1).row(300).element("m0", 1).element("m1", 2).row(600).element("m0", 2).element("m1", 3).row(900).element("m0", 3).element("m1", 4).row(1200).element("m0", 4).element("m1", 5).row(1500).element("m0", 5).element("m1", 6).row(1800).element("m0", 6).element("m1", 7).row(2100).element("m0", 7).element("m1", 8).build();
    // Minimal result descriptor
    ResultDescriptor rDescriptor = new ResultDescriptor().step(Duration.seconds(900)).datasource("m0", "m0", Duration.seconds(1800), null).datasource("m1", "m1", Duration.seconds(1800), null);
    // Expected results
    Iterator<Row<Measurement>> expected = new MeasurementRowsBuilder(new Resource("localhost")).row(900).element("m0", 2).element("m1", 3).row(1800).element("m0", 5).element("m1", 6).build();
    PrimaryData primaryData = new PrimaryData(new Resource("localhost"), Timestamp.fromEpochSeconds(900), Timestamp.fromEpochSeconds(1800), rDescriptor, testData);
    assertRowsEqual(expected, primaryData);
}
Also used : 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 3 with SampleRowsBuilder

use of org.opennms.newts.aggregate.Utils.SampleRowsBuilder in project newts by OpenNMS.

the class PrimaryDataTest method testHeartbeatNaNs.

@Test
public void testHeartbeatNaNs() {
    // Test for NEWTS-70
    Iterator<Row<Sample>> testData = new SampleRowsBuilder(new Resource("localhost"), MetricType.GAUGE).row(0).element("m1", 1).row(300).element("m1", 2).row(1800).element("m1", 8).build();
    ResultDescriptor rDescriptor = new ResultDescriptor().step(Duration.seconds(300)).datasource("m1", "m1", Duration.seconds(600), null);
    // Expected results
    Iterator<Row<Measurement>> expected = new MeasurementRowsBuilder(new Resource("localhost")).row(300).element("m1", 2).row(600).element("m1", Double.NaN).row(900).element("m1", Double.NaN).row(1200).element("m1", Double.NaN).row(1500).element("m1", Double.NaN).row(1800).element("m1", Double.NaN).build();
    PrimaryData primaryData = new PrimaryData(new Resource("localhost"), Timestamp.fromEpochSeconds(300), Timestamp.fromEpochSeconds(1800), rDescriptor, testData);
    assertRowsEqual(expected, primaryData);
}
Also used : 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 4 with SampleRowsBuilder

use of org.opennms.newts.aggregate.Utils.SampleRowsBuilder in project newts by OpenNMS.

the class RateTest method ratesWithDecimals.

/**
     * Verifies that counters (unsigned long) values return doubles with proper decimals
     * when converted to rates.
     */
@Test
public void ratesWithDecimals() {
    Iterator<Row<Sample>> samples = new SampleRowsBuilder(new Resource("localhost"), MetricType.COUNTER).row(1414598400).element("m1", 9223372034564703200.00).row(1414602000).element("m1", 9223372034601613300.00).row(1414605600).element("m1", 9223372034604530700.00).row(1414609200).element("m1", 9223372034608910300.00).row(1414612800).element("m1", 9223372034636612600.00).row(1414616400).element("m1", 9223372034639099900.00).row(1414620000).element("m1", 9223372034641185800.00).row(1414623600).element("m1", 9223372034642181100.00).build();
    Iterator<Results.Row<Sample>> output = new Rate(samples, Sets.newHashSet("m1")).iterator();
    double[] expectedRates = new double[] { Double.NaN, 10252.800000, 810.382222, 1216.568889, 7695.075556, 690.915556, 579.413333, 276.480000 };
    for (int i = 0; i < expectedRates.length; i++) {
        double actualRate = output.next().getElement("m1").getValue().doubleValue();
        assertEquals(expectedRates[i], actualRate, 0.0001);
    }
}
Also used : Rate(org.opennms.newts.aggregate.Rate) Resource(org.opennms.newts.api.Resource) Row(org.opennms.newts.api.Results.Row) SampleRowsBuilder(org.opennms.newts.aggregate.Utils.SampleRowsBuilder) Test(org.junit.Test)

Example 5 with SampleRowsBuilder

use of org.opennms.newts.aggregate.Utils.SampleRowsBuilder in project newts by OpenNMS.

the class ResultProcessorTest method test.

@Test
public void test() {
    Iterator<Row<Sample>> testData = new SampleRowsBuilder(new Resource("localhost"), MetricType.GAUGE).row(900000000).element("m0", // Thu Jul  9 11:00:00 CDT 1998
    1).row(900000300).element("m0", 1).row(900000600).element("m0", 1).row(900000900).element("m0", 1).row(900001200).element("m0", 1).row(900001500).element("m0", 1).row(900001800).element("m0", 1).row(900002100).element("m0", 3).row(900002400).element("m0", 3).row(900002700).element("m0", 3).row(900003000).element("m0", 3).row(900003300).element("m0", 3).row(900003600).element("m0", 3).row(900003900).element("m0", 1).row(900004200).element("m0", 1).row(900004500).element("m0", 1).row(900004800).element("m0", 1).row(900005100).element("m0", 1).row(900005400).element("m0", 1).row(900005700).element("m0", 3).row(900006000).element("m0", 3).row(900006300).element("m0", 3).row(900006600).element("m0", 3).row(900006900).element("m0", 3).row(900007200).element("m0", // Thu Jul  9 13:00:00 CDT 1998
    3).build();
    ResultDescriptor rDescriptor = new ResultDescriptor(Duration.seconds(300)).datasource("m0-avg", "m0", Duration.seconds(600), AVERAGE).export("m0-avg");
    Iterator<Row<Measurement>> expected = new MeasurementRowsBuilder(new Resource("localhost")).row(900003600).element("m0-avg", 2.0).row(900007200).element("m0-avg", 2.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());
}
Also used : 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)

Aggregations

Test (org.junit.Test)18 SampleRowsBuilder (org.opennms.newts.aggregate.Utils.SampleRowsBuilder)18 Resource (org.opennms.newts.api.Resource)18 Row (org.opennms.newts.api.Results.Row)18 ResultDescriptor (org.opennms.newts.api.query.ResultDescriptor)17 MeasurementRowsBuilder (org.opennms.newts.aggregate.Utils.MeasurementRowsBuilder)14 Measurement (org.opennms.newts.api.Measurement)3 Rate (org.opennms.newts.aggregate.Rate)1 BinaryFunction (org.opennms.newts.api.query.ResultDescriptor.BinaryFunction)1