public void recordDownloadRate(long sizeInBytes) { downloadRate.record(sizeInBytes); }
@Override public long count() { return get().count(); }
@Override public long totalAmount() { return get().totalAmount(); } }
@Test public void summaryRecord() { DistributionSummary s = registry.distributionSummary("foo"); Assertions.assertEquals(0, s.count()); Assertions.assertEquals(0, s.totalAmount()); s.record(42); Assertions.assertEquals(1, s.count()); Assertions.assertEquals(42, s.totalAmount()); }
@Test public void testRecord() { String[] tagValue = new String[] { "default" }; DistributionSummary summary = factory.distributionSummary(factory.createId("testRecord", Collections.singleton(new TestTagFactory(tagValue)))); summary.record(42L); Assertions.assertEquals("testRecord:tag=default", summary.id().toString()); Assertions.assertEquals(summary.count(), 1L); Assertions.assertEquals(42L, summary.totalAmount()); tagValue[0] = "value2"; Assertions.assertEquals("testRecord:tag=value2", summary.id().toString()); Assertions.assertEquals(0L, summary.count()); Assertions.assertEquals(0L, summary.totalAmount()); }
@Test public void testMeasure() { DistributionSummary t = newDistributionSummary(); t.record(42); clock.setWallTime(3712345L); for (Measurement m : t.measure()) { Assertions.assertEquals(m.timestamp(), 3712345L); if (m.id().equals(t.id().withTag(Statistic.count))) { Assertions.assertEquals(m.value(), 1.0, 0.1e-12); } else if (m.id().equals(t.id().withTag(Statistic.totalAmount))) { Assertions.assertEquals(m.value(), 42, 0.1e-12); } else { Assertions.fail("unexpected id: " + m.id()); } } } }
@Test public void testInit() { DistributionSummary t = new DefaultDistributionSummary(clock, NoopId.INSTANCE); Assertions.assertEquals(t.count(), 0L); Assertions.assertEquals(t.totalAmount(), 0L); Assertions.assertFalse(t.hasExpired()); }
@Test public void testInit() { DistributionSummary summary = new DefaultPlaceholderDistributionSummary(new DefaultPlaceholderId("testInit", registry), registry); Assertions.assertEquals(0L, summary.count()); Assertions.assertEquals(0L, summary.totalAmount()); }
@Test public void summaryMeasure() { DistributionSummary s = registry.distributionSummary("foo"); s.record(42); int i = 0; for (Measurement m : s.measure()) { ++i; Assertions.assertEquals("foo", m.id().name()); switch (Utils.getTagValue(m.id(), "statistic")) { case "count": Assertions.assertEquals(1.0, m.value(), 1e-12); break; case "total": Assertions.assertEquals(42.0, m.value(), 1e-12); break; case "max": Assertions.assertEquals(42.0, m.value(), 1e-12); break; default: Assertions.fail("invalid statistic for measurment: " + m); } } Assertions.assertEquals(3, i); }
@Override public boolean hasExpired() { return get().hasExpired(); }
@Override public Iterable<Measurement> measure() { return get().measure(); }
@Override public Id id() { return get().id(); }
@Test public void testRecordNegative() { DistributionSummary t = new DefaultDistributionSummary(clock, NoopId.INSTANCE); t.record(-42); Assertions.assertEquals(t.count(), 0L); Assertions.assertEquals(t.totalAmount(), 0L); }
@Test public void testMeasure() { DistributionSummary t = new DefaultDistributionSummary(clock, new DefaultId("foo")); t.record(42); clock.setWallTime(3712345L); for (Measurement m : t.measure()) { Assertions.assertEquals(m.timestamp(), 3712345L); if (m.id().equals(t.id().withTag(Statistic.count))) { Assertions.assertEquals(m.value(), 1.0, 0.1e-12); } else if (m.id().equals(t.id().withTag(Statistic.totalAmount))) { Assertions.assertEquals(m.value(), 42.0, 0.1e-12); } else { Assertions.fail("unexpected id: " + m.id()); } } }
@Test public void inflightRequestsMany() { Registry registry = new DefaultRegistry(); DistributionSummary summary = registry.distributionSummary("ipc.client.inflight"); IpcLogger logger = new IpcLogger(registry, clock, LoggerFactory.getLogger(getClass())); for (int i = 0; i < 10; ++i) { logger.createClientEntry().markStart().markEnd(); } Assertions.assertEquals((10 * 11) / 2, summary.totalAmount()); Assertions.assertEquals(10L, summary.count()); }
@Override public boolean hasExpired() { return summary.hasExpired(); }
@Override public Iterable<Measurement> measure() { return get().measure(); }
@Override public String getName() { return distributionSummary.id().name(); }