use of wavefront.report.Histogram in project java by wavefrontHQ.
the class HistogramDecoderTest method testNegativeMean.
@Test
public void testNegativeMean() {
HistogramDecoder decoder = new HistogramDecoder();
List<ReportPoint> out = new ArrayList<>();
decoder.decodeReportPoints("!M 1471988653 #1 -3.1416 TestMetric", out, "customer");
assertThat(out).isNotEmpty();
ReportPoint p = out.get(0);
assertThat(p.getValue()).isNotNull();
assertThat(p.getValue().getClass()).isEqualTo(Histogram.class);
Histogram h = (Histogram) p.getValue();
assertThat(h.getDuration()).isEqualTo(DateUtils.MILLIS_PER_MINUTE);
assertThat(h.getBins()).isNotNull();
assertThat(h.getBins()).isNotEmpty();
assertThat(h.getBins()).containsExactly(-3.1416D);
assertThat(h.getCounts()).isNotNull();
assertThat(h.getCounts()).isNotEmpty();
assertThat(h.getCounts()).containsExactly(1);
}
use of wavefront.report.Histogram in project java by wavefrontHQ.
the class HistogramDecoderTest method testMissingMean.
@Test
public void testMissingMean() {
// Note - missingTimestamp to port 40,000 is no longer invalid - see MONIT-6430 for more details
// as a side-effect of that, this test no longer fails!!!
HistogramDecoder decoder = new HistogramDecoder();
List<ReportPoint> out = new ArrayList<>();
decoder.decodeReportPoints("!M #3 1471988653 TestMetric source=Test tag=value", out, "customer");
assertThat(out).isNotEmpty();
long expectedTimestamp = Clock.now();
ReportPoint p = out.get(0);
assertThat(p.getMetric()).isEqualTo("TestMetric");
assertThat(p.getValue()).isNotNull();
assertThat(p.getValue().getClass()).isEqualTo(Histogram.class);
// Should be converted to Millis and pinned to the beginning of the corresponding minute
long duration = ((Histogram) p.getValue()).getDuration();
expectedTimestamp = (expectedTimestamp / duration) * duration;
assertThat(p.getTimestamp()).isEqualTo(expectedTimestamp);
assertThat(p.getHost()).isEqualTo("Test");
assertThat(p.getTable()).isEqualTo("customer");
assertThat(p.getAnnotations()).isNotNull();
assertThat(p.getAnnotations()).containsEntry("_tag", "value");
Histogram h = (Histogram) p.getValue();
assertThat(h.getDuration()).isEqualTo(DateUtils.MILLIS_PER_MINUTE);
assertThat(h.getBins()).isNotNull();
assertThat(h.getBins()).isNotEmpty();
assertThat(h.getBins()).containsExactly(1471988653.0);
assertThat(h.getCounts()).isNotNull();
assertThat(h.getCounts()).isNotEmpty();
assertThat(h.getCounts()).containsExactly(3);
}
use of wavefront.report.Histogram in project java by wavefrontHQ.
the class HistogramDecoderTest method testDayBin.
@Test
public void testDayBin() {
HistogramDecoder decoder = new HistogramDecoder();
List<ReportPoint> out = new ArrayList<>();
decoder.decodeReportPoints("!D 1471988653 #3 123.237 TestMetric source=Test key=value", out, "customer");
assertThat(out).isNotEmpty();
ReportPoint p = out.get(0);
// Should be converted to Millis and pinned to the beginning of the corresponding day
assertThat(p.getTimestamp()).isEqualTo(1471910400000L);
assertThat(p.getValue()).isNotNull();
assertThat(p.getValue().getClass()).isEqualTo(Histogram.class);
Histogram h = (Histogram) p.getValue();
assertThat(h.getDuration()).isEqualTo(DateUtils.MILLIS_PER_DAY);
}
use of wavefront.report.Histogram in project java by wavefrontHQ.
the class HistogramDecoderTest method testHourBin.
@Test
public void testHourBin() {
HistogramDecoder decoder = new HistogramDecoder();
List<ReportPoint> out = new ArrayList<>();
decoder.decodeReportPoints("!H 1471988653 #3 123.237 TestMetric source=Test key=value", out, "customer");
assertThat(out).isNotEmpty();
ReportPoint p = out.get(0);
// Should be converted to Millis and pinned to the beginning of the corresponding hour
assertThat(p.getTimestamp()).isEqualTo(1471986000000L);
assertThat(p.getValue()).isNotNull();
assertThat(p.getValue().getClass()).isEqualTo(Histogram.class);
Histogram h = (Histogram) p.getValue();
assertThat(h.getDuration()).isEqualTo(DateUtils.MILLIS_PER_HOUR);
}
use of wavefront.report.Histogram in project java by wavefrontHQ.
the class HistogramDecoderTest method testMultipleBuckets.
@Test
public void testMultipleBuckets() {
HistogramDecoder decoder = new HistogramDecoder();
List<ReportPoint> out = new ArrayList<>();
decoder.decodeReportPoints("!M 1471988653 #1 3.1416 #1 2.7183 TestMetric", out, "customer");
assertThat(out).isNotEmpty();
ReportPoint p = out.get(0);
assertThat(p.getValue()).isNotNull();
assertThat(p.getValue().getClass()).isEqualTo(Histogram.class);
Histogram h = (Histogram) p.getValue();
assertThat(h.getDuration()).isEqualTo(DateUtils.MILLIS_PER_MINUTE);
assertThat(h.getBins()).isNotNull();
assertThat(h.getBins()).isNotEmpty();
assertThat(h.getBins()).containsExactly(3.1416D, 2.7183D);
assertThat(h.getCounts()).isNotNull();
assertThat(h.getCounts()).isNotEmpty();
assertThat(h.getCounts()).containsExactly(1, 1);
}
Aggregations