public static Counter newCounter(String name, String id) { return Spectator.globalRegistry().counter(name, "id", id); }
public static Counter newCounter(String name, String id, String... tags) { String[] allTags = getTagsWithId(id, tags); return Spectator.globalRegistry().counter(name, allTags); }
public static Counter newCounter(String name, String id) { return Spectator.globalRegistry().counter(name, "id", id); }
public static Counter newCounter(String name, String id, String... tags) { String[] allTags = getTagsWithId(id, tags); return Spectator.globalRegistry().counter(name, allTags); }
public static Counter newCounter(String name, String id) { return Spectator.globalRegistry().counter(name, "id", id); }
public static Counter newCounter(String name, String id, String... tags) { String[] allTags = getTagsWithId(id, tags); return Spectator.globalRegistry().counter(name, allTags); }
@Override public Meter get(Id id) { rlock.lock(); try { for (Registry r : registries) { Meter m = r.get(id); if (m != null) { if (m instanceof Counter) { return counter(id); } else if (m instanceof Timer) { return timer(id); } else if (m instanceof DistributionSummary) { return distributionSummary(id); } else if (m instanceof Gauge) { return gauge(id); } else { return null; } } } return null; } finally { rlock.unlock(); } }
@Override public Meter get(Id id) { rlock.lock(); try { for (Registry r : registries) { Meter m = r.get(id); if (m != null) { if (m instanceof Counter) { return counter(id); } else if (m instanceof Timer) { return timer(id); } else if (m instanceof DistributionSummary) { return distributionSummary(id); } else if (m instanceof Gauge) { return gauge(id); } else { return null; } } } return null; } finally { rlock.unlock(); } }
@Test public void resurrectExpiredUsingComposite() { ManualClock clock = new ManualClock(); ExpiringRegistry registry = new ExpiringRegistry(clock); CompositeRegistry cr = Spectator.globalRegistry(); cr.removeAll(); cr.add(registry); cr.counter("test").increment(); clock.setWallTime(60000 * 30); registry.removeExpiredMeters(); Assertions.assertEquals(0, registry.counters().count()); cr.counter("test").increment(); Assertions.assertEquals(1, registry.counters().count()); }
@Test public void injectedRegistryAddedToGlobal() { final ManualClock clock = new ManualClock(); Injector injector = Guice.createInjector( new AbstractModule() { @Override protected void configure() { bind(Clock.class).toInstance(clock); } }, new SpectatorModule()); Registry registry = injector.getInstance(Registry.class); Spectator.globalRegistry().counter("test").increment(); clock.setWallTime(60000); Assertions.assertEquals(1, registry.counter("test").count()); }
@Test public void resurrectExpiredUsingCompositeCachedRef() { ManualClock clock = new ManualClock(); ExpiringRegistry registry = new ExpiringRegistry(clock); CompositeRegistry cr = Spectator.globalRegistry(); cr.removeAll(); cr.add(registry); Counter c = cr.counter("test"); c.increment(); clock.setWallTime(60000 * 30); registry.removeExpiredMeters(); Assertions.assertEquals(0, registry.counters().count()); c.increment(); Assertions.assertEquals(1, registry.counters().count()); }
@Test public void testHasExpired() { CompositeRegistry r = new CompositeRegistry(clock); Counter c1 = r.counter("id1"); Assertions.assertFalse(c1.hasExpired()); Registry r1 = new DefaultRegistry(clock); r.add(r1); // depends on registry type, some will be expired until first increment Assertions.assertFalse(c1.hasExpired()); c1.increment(); Assertions.assertFalse(c1.hasExpired()); }
@Test public void testAddAndRemove() { CompositeRegistry r = new CompositeRegistry(clock); Counter c1 = r.counter("id1"); c1.increment(); Assertions.assertEquals(0, c1.count()); Registry r1 = new DefaultRegistry(clock); r.add(r1); c1.increment(); Assertions.assertEquals(1, c1.count()); Registry r2 = new DefaultRegistry(clock); r.add(r2); c1.increment(); Assertions.assertEquals(2, r1.counter("id1").count()); Assertions.assertEquals(1, r2.counter("id1").count()); r.remove(r1); c1.increment(5); Assertions.assertEquals(2, r1.counter("id1").count()); Assertions.assertEquals(6, r2.counter("id1").count()); }