LongList timestamps = timeSeries.getTimestamps();
@Test public void testSingle() throws Exception { try (InputStream stream = GraphiteFormatParserTest.class.getResourceAsStream("/opentsdb-http-api-single.json")) { assertNotNull(stream); List<MetricTimeSeries> series = Lists.newArrayList(sut.parse(stream)); // We should have one metric assertThat(series.size(), is(1)); MetricTimeSeries metric = series.get(0); assertThat(metric.getName(), is("sys.cpu.nice")); assertThat(metric.getTimestamps().size(), is(1)); assertThat(metric.getValues().get(0), is(18.0)); assertThat(metric.getTimestamps().get(0), is(1346846400000L)); } }
timestamps.addAll(currTs.getTimestamps()); values.addAll(currTs.getValues());
@Test public void test() throws Exception { try (InputStream stream = KairosDbFormatParserTest.class.getResourceAsStream("/kairosdb.json")) { assertNotNull(stream); List<MetricTimeSeries> series = Lists.newArrayList(sut.parse(stream)); // We should have two metrics assertThat(series.size(), is(2)); MetricTimeSeries first = series.get(0); assertThat(first.getName(), is("archive.file.tracked")); assertThat(first.getTimestamps().size(), is(1)); assertThat(first.getValues().get(0), is(123.0)); assertThat(first.getTimestamps().get(0), is(1349109376L)); assertThat(first.getAttributesReference().get("host"), is("test")); MetricTimeSeries second = series.get(1); assertThat(second.getName(), is("archive.file.search")); assertThat(second.getTimestamps().size(), is(1)); assertThat(second.getValues().get(0), is(32.1)); assertThat(second.getTimestamps().get(0), is(1349109665L)); assertThat(second.getAttributesReference().get("host"), is("test")); } } }
@Test public void testMultiple() throws Exception { try (InputStream stream = GraphiteFormatParserTest.class.getResourceAsStream("/opentsdb-http-api-multiple.json")) { assertNotNull(stream); List<MetricTimeSeries> series = Lists.newArrayList(sut.parse(stream)); // We should have two metrics assertThat(series.size(), is(2)); MetricTimeSeries first = series.get(0); assertThat(first.getName(), is("sys.cpu.nice")); assertThat(first.getTimestamps().size(), is(2)); assertThat(first.getValues().get(0), is(1.0)); assertThat(first.getTimestamps().get(0), is(1346846400000L)); assertThat(first.getValues().get(1), is(2.0)); assertThat(first.getTimestamps().get(1), is(1346846400100L)); MetricTimeSeries second = series.get(1); assertThat(second.getName(), is("sys.cpu.load")); assertThat(second.getTimestamps().size(), is(1)); assertThat(second.getValues().get(0), is(2.0)); assertThat(second.getTimestamps().get(0), is(1346846400000L)); } } }
/** * Detects trends in time series using a linear regression. * * @param functionCtx * @return 1 if there is a positive trend, otherwise -1 */ @Override public void execute(List<ChronixTimeSeries<MetricTimeSeries>> timeSeriesList, FunctionCtx functionCtx) { for (ChronixTimeSeries<MetricTimeSeries> chronixTimeSeries : timeSeriesList) { MetricTimeSeries timeSeries = chronixTimeSeries.getRawTimeSeries(); //We need to sort the time series for this analysis timeSeries.sort(); //Calculate the linear regression LinearRegression linearRegression = new LinearRegression(timeSeries.getTimestamps(), timeSeries.getValues()); double slope = linearRegression.slope(); //If we have a positive slope, we return 1 otherwise -1 functionCtx.add(this, slope > 0, chronixTimeSeries.getJoinKey()); } }
assertThat(cpu0series.getTimestamps().size(), is(2)); assertThat(cpu0series.getTimestamps().get(0), is(1356998400000L)); assertThat(cpu0series.getTimestamps().get(1), is(1356998401000L)); assertThat(cpu0series.getAttributesReference().get("cpu"), is("0")); assertThat(cpu0series.getAttributesReference().get("host"), is("webserver01")); assertThat(cpu1series.getTimestamps().size(), is(1)); assertThat(cpu1series.getTimestamps().get(0), is(1356998400000L)); assertThat(cpu1series.getAttributesReference().get("cpu"), is("1")); assertThat(cpu1series.getAttributesReference().get("host"), is("webserver01")); assertThat(cpu2series.getTimestamps().size(), is(1)); assertThat(cpu2series.getTimestamps().get(0), is(1356998400000L)); assertThat(cpu2series.getAttributesReference().get("cpu"), is("2")); assertThat(cpu2series.getAttributesReference().get("host"), is("webserver01"));
assertThat(bashSeries.getTimestamps().size(), is(5)); assertThat(bashSeries.getTimestamps().get(0), is(1475754111000L)); assertThat(bashSeries.getTimestamps().get(1), is(1475754112000L)); assertThat(bashSeries.getTimestamps().get(2), is(1475754113000L)); assertThat(bashSeries.getTimestamps().get(3), is(1475754114000L)); assertThat(bashSeries.getTimestamps().get(4), is(1475754115000L)); assertThat(psSeries.getTimestamps().size(), is(4)); assertThat(psSeries.getTimestamps().get(0), is(1475754116000L)); assertThat(psSeries.getTimestamps().get(1), is(1475754117000L)); assertThat(psSeries.getTimestamps().get(2), is(1475754118000L)); assertThat(psSeries.getTimestamps().get(3), is(1475754119000L));
/** * Copies a given metric time series. * * @param ts the time series * @return builder preconfigured with values from the given time series */ public MetricTimeSeries.Builder copy(MetricTimeSeries ts) { MetricTimeSeries.Builder result = new MetricTimeSeries.Builder(ts.getName(), ts.getType()); result.start(ts.getStart()); result.end(ts.getEnd()); result.points(ts.getTimestamps(), ts.getValues()); result.attributes(ts.attributes()); return result; } }
assertThat(server01.getTimestamps().size(), is(1)); assertThat(server01.getTimestamps().get(0), is(NOW.toEpochMilli())); assertThat(server01.getValues().size(), is(1)); assertThat(server01.getValues().get(0), is(0.67)); assertThat(server02.getTimestamps().size(), is(1)); assertThat(server02.getTimestamps().get(0), is(1422568543702900L)); assertThat(server02.getValues().size(), is(1)); assertThat(server02.getValues().get(0), is(0.55)); assertThat(server03.getTimestamps().size(), is(2)); assertThat(server03.getTimestamps().get(0), is(1422568543702900L)); assertThat(server03.getTimestamps().get(1), is(1422568544702900L)); assertThat(server03.getValues().size(), is(2)); assertThat(server03.getValues().get(0), is(2.0));