private void writeStats(long evtCount, long oldestArrivalTime, long oldestOccurrenceTime, String source, Stat runtime) { /* * Add some stats about this invocation */ Stat eventCount = new Stat("event.count", evtCount, Stat.MetricType.count); Stat spoutLag = new Stat("spout.lag.ms", (System.currentTimeMillis() - oldestArrivalTime), Stat.MetricType.gauge); Stat sourceLag = new Stat("source.lag.ms", (System.currentTimeMillis() - oldestOccurrenceTime), Stat.MetricType.gauge); eventCount.addTag("source", source); spoutLag.addTag("source", source); sourceLag.addTag("source", source); runtime.addTag("source", source); this.monitor.addInvocationStat(eventCount); this.monitor.addInvocationStat(spoutLag); this.monitor.addInvocationStat(sourceLag); this.monitor.addInvocationStat(runtime); /* * Report stats */ this.monitor.writeStats(); }
public MonitoredProcess(Class clazz) { String child = clazz.getCanonicalName(); runtimeStat = new Stat("timing.ns", Stat.MetricType.gauge); runtimeStat.addTag("class", child); errorCountStat = new Stat("error.count", Stat.MetricType.count); errorCountStat.addTag("class", child); successCountStat = new Stat("success.count", Stat.MetricType.count); successCountStat.addTag("class", child); Monitor monitor = Monitor.getInstance(); monitor.addProcess(this); monitor.addInstanceStat(runtimeStat); monitor.addInstanceStat(errorCountStat); monitor.addInstanceStat(successCountStat); }
public MonitoredProcess(Class clazz) { String child = clazz.getCanonicalName(); runtimeStat = new Stat("timing.ns", Stat.MetricType.gauge); runtimeStat.addTag("class", child); errorCountStat = new Stat("error.count", Stat.MetricType.count); errorCountStat.addTag("class", child); successCountStat = new Stat("success.count", Stat.MetricType.count); successCountStat.addTag("class", child); Monitor monitor = Monitor.getInstance(); monitor.addProcess(this); monitor.addInstanceStat(runtimeStat); monitor.addInstanceStat(errorCountStat); monitor.addInstanceStat(successCountStat); }
private void writeStats(long evtCount, long oldestArrivalTime, long oldestOccurrenceTime, String source, Stat runtime) { /* * Add some stats about this invocation */ Stat eventCount = new Stat("event.count", evtCount, Stat.MetricType.count); Stat spoutLag = new Stat("spout.lag.ms", (System.currentTimeMillis() - oldestArrivalTime), Stat.MetricType.gauge); Stat sourceLag = new Stat("source.lag.ms", (System.currentTimeMillis() - oldestOccurrenceTime), Stat.MetricType.gauge); eventCount.addTag("source", source); spoutLag.addTag("source", source); sourceLag.addTag("source", source); runtime.addTag("source", source); this.monitor.addInvocationStat(eventCount); this.monitor.addInvocationStat(spoutLag); this.monitor.addInvocationStat(sourceLag); this.monitor.addInvocationStat(runtime); /* * Report stats */ this.monitor.writeStats(); }
@Test public void testMultipleTags() { MonitorFactory mf = new MonitorFactory(); Monitor monitor = mf.getInstance(); List<StatFilter> filters = new ArrayList<StatFilter>(1); DummyReporter reporter = new DummyReporter(filters); monitor.addReporters(Arrays.asList(reporter)); Stat stat = new Stat("bender.test.tags"); stat.addTag("foo", "3"); stat.addTag("foo", "3"); stat.addTag("foo", "4"); monitor.addInvocationStat(stat); monitor.writeStats(); assertEquals(1, reporter.buffer.size()); assertEquals(true, reporter.buffer.contains("bender.test.tags foo:3 0")); }
@Test public void testEmptyFilter() { MonitorFactory mf = new MonitorFactory(); Monitor monitor = mf.getInstance(); List<StatFilter> filters = new ArrayList<StatFilter>(1); DummyReporter reporter = new DummyReporter(filters); monitor.addReporters(Arrays.asList(reporter)); Stat statPass1 = new Stat("bender.test.pass1"); statPass1.addTag("foo", "3"); Stat statPass2 = new Stat("bender.test.pass2"); statPass2.addTag("foo", "4"); monitor.addInvocationStat(statPass1); monitor.addInvocationStat(statPass2); monitor.writeStats(); assertEquals(2, reporter.buffer.size()); assertEquals(true, reporter.buffer.contains("bender.test.pass1 foo:3 0")); assertEquals(true, reporter.buffer.contains("bender.test.pass2 foo:4 0")); }
@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")); }