public void writeStats() { for (Reporter reporter : statsReporters) { List<StatFilter> filters = reporter.getStatFilters(); ArrayList<Stat> stats = getStats(); for (StatFilter filter : filters) { Predicate<Stat> statPredicate = StatFilter.isMatch(filter); stats.removeIf(statPredicate); } /* * Catch anything a reporter may throw to prevent function failures. */ try { reporter.write(stats, invokeTime, tags); } catch (Exception e) { logger.warn("reporter threw an error while writing stats", e); } } clearStats(); }
Monitor monitor = mf.getInstance(); StatFilter filterFooZero = new StatFilter(); filterFooZero.setName("bender.test.foo"); filterFooZero.setReportZeros(false); StatFilter filterBarTags = new StatFilter(); filterBarTags.setName("bender.test.bar"); filterBarTags.setReportZeros(true); filterBarTags.setTags(Sets.newSet(new Tag("t0", "7")));
@Test public void testStatFilterTags() { MonitorFactory mf = new MonitorFactory(); Monitor monitor = mf.getInstance(); StatFilter filter = new StatFilter(); filter.setName("bender.test.tags"); filter.setTags(Sets.newSet(new Tag("foo", "3"))); List<StatFilter> filters = new ArrayList<StatFilter>(1); filters.add(filter); DummyReporter reporter = new DummyReporter(filters); monitor.addReporters(Arrays.asList(reporter)); Stat statFail = new Stat("bender.test.tags"); statFail.addTag("foo", "3"); Stat statPass = new Stat("bender.test.tags"); statPass.addTag("bar", "4"); monitor.addInvocationStat(statFail); monitor.addInvocationStat(statPass); monitor.writeStats(); assertEquals(1, reporter.buffer.size()); assertEquals(true, reporter.buffer.contains("bender.test.tags bar:4 0")); assertEquals(false, reporter.buffer.contains("bender.test.tags foo:3 0")); }
@Test public void testStatFilterName() { MonitorFactory mf = new MonitorFactory(); Monitor monitor = mf.getInstance(); StatFilter filter = new StatFilter(); filter.setName("bender.test.fail"); List<StatFilter> filters = new ArrayList<StatFilter>(1); filters.add(filter); DummyReporter reporter = new DummyReporter(filters); monitor.addReporters(Arrays.asList(reporter)); Stat statFail = new Stat("bender.test.fail"); Stat statPass = new Stat("bender.test.pass"); monitor.addInvocationStat(statFail); monitor.addInvocationStat(statPass); monitor.writeStats(); assertEquals(1, reporter.buffer.size()); assertEquals(true, reporter.buffer.contains("bender.test.pass 0")); assertEquals(false, reporter.buffer.contains("bender.test.fail 0")); }
@Test public void testFilterZeros() { MonitorFactory mf = new MonitorFactory(); Monitor monitor = mf.getInstance(); StatFilter filter = new StatFilter(); filter.setReportZeros(false); List<StatFilter> filters = new ArrayList<StatFilter>(1); filters.add(filter); DummyReporter reporter = new DummyReporter(filters); monitor.addReporters(Arrays.asList(reporter)); Stat statFail = new Stat("bender.test.fail"); statFail.setValue(0); Stat statPass = new Stat("bender.test.pass"); statPass.setValue(1); monitor.addInvocationStat(statFail); monitor.addInvocationStat(statPass); monitor.writeStats(); assertEquals(1, reporter.buffer.size()); assertEquals(true, reporter.buffer.contains("bender.test.pass 1")); assertEquals(false, reporter.buffer.contains("bender.test.fail 0")); }
public void writeStats() { for (Reporter reporter : statsReporters) { List<StatFilter> filters = reporter.getStatFilters(); ArrayList<Stat> stats = getStats(); for (StatFilter filter : filters) { Predicate<Stat> statPredicate = StatFilter.isMatch(filter); stats.removeIf(statPredicate); } /* * Catch anything a reporter may throw to prevent function failures. */ try { reporter.write(stats, invokeTime, tags); } catch (Exception e) { logger.warn("reporter threw an error while writing stats", e); } } clearStats(); }