@Override public Map<String, Object> getAttributes() { return timeSeries.getAttributesReference(); }
private MetricTimeSeries findWithHost(List<MetricTimeSeries> series, String host) { for (MetricTimeSeries serie : series) { if (serie.getAttributesReference().get("host").equals(host)) { return serie; } } throw new IllegalStateException("Series doesn't contain data for server " + host); } }
private MetricTimeSeries findWithCpu(Iterable<MetricTimeSeries> series, int num) { for (MetricTimeSeries s : series) { if (s.getAttributesReference().get("cpu").equals(Integer.toString(num))) { return s; } } throw new IllegalStateException("Series with cpu " + num + " not found"); } }
@Override public TimeSeries<Long, Double> from(BinaryTimeSeries binaryTimeSeries, long queryStart, long queryEnd) { //This is a hack MetricTimeSeries metricTimeSeries = new MetricTimeSeriesConverter().from(binaryTimeSeries, queryStart, queryEnd); TimeSeries<Long, Double> timeSeries = new TimeSeries<>(map(metricTimeSeries.points())); metricTimeSeries.getAttributesReference().forEach(timeSeries::addAttribute); return timeSeries; }
@Test public void testParse() throws Exception { try (InputStream stream = GraphiteFormatParserTest.class.getResourceAsStream("/prometheus-text.txt")) { assertNotNull(stream); List<MetricTimeSeries> series = Lists.newArrayList(sut.parse(stream)); assertThat(series.size(), is(3)); MetricTimeSeries metricWithoutTimestampAndLabel = series.stream().filter(s -> s.getName().equals("metric_without_timestamp_and_labels")).findFirst().get(); assertThat(metricWithoutTimestampAndLabel.getTime(0), is(NOW.toEpochMilli())); assertThat(metricWithoutTimestampAndLabel.getValue(0), is(12.47)); MetricTimeSeries httpRequestsTotal200 = series.stream().filter(s -> s.getName().equals("http_requests_total") && s.getAttributesReference().get("code").equals("200")).findFirst().get(); assertThat(httpRequestsTotal200.getTime(0), is(1395066363000L)); assertThat(httpRequestsTotal200.getValue(0), is(1027.0)); MetricTimeSeries httpRequestsTotal400 = series.stream().filter(s -> s.getName().equals("http_requests_total") && s.getAttributesReference().get("code").equals("400")).findFirst().get(); assertThat(httpRequestsTotal400.getTime(0), is(1395066363000L)); assertThat(httpRequestsTotal400.getValue(0), is(3.0)); } } }
@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")); } } }
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(server01.getValues().size(), is(1)); assertThat(server01.getValues().get(0), is(0.67)); assertThat(server01.getAttributesReference().get("host"), is("server01")); assertThat(server02.getValues().size(), is(1)); assertThat(server02.getValues().get(0), is(0.55)); assertThat(server02.getAttributesReference().get("host"), is("server02")); assertThat(server03.getValues().get(0), is(2.0)); assertThat(server03.getValues().get(1), is(3.0)); assertThat(server03.getAttributesReference().get("host"), is("server03")); assertThat(server03.getAttributesReference().get("direction"), is("in")); assertThat(server03.getAttributesReference().get("region"), is("us-west"));
merge(attributes, ts.getAttributesReference());