@Override public void clear() { register.unregisterAll(); }
public void stop(BundleContext context) { doStop(); }
public void start(BundleContext context) { doStart(); }
@Override public void enableSerializing() throws IOException { serializer.resetOutput(); srzCB = new MetricSerializingCallback(serializer); SimonManager.callback().addCallback(srzCB); }
protected void doStart() { enabler.setSerializer(serializer); SimonManager.enable(); SimonManager.callback().addCallback(registeringCB); register.registerMXBean(enabler, "enabler", MetricEnablerMXBean.class, "Feature"); register.registerMXBean(serializer, "serializer", MetricSerializerMXBean.class, "Feature"); }
@Override public Mapper newMapper(PathResolver pathResolver, boolean useInvalidations) { return MetricInvocationHandler.newProxy(wrapped.newMapper(pathResolver, useInvalidations), Mapper.class); }
protected Stopwatch getStopwatch(Method m, Object[] parms) { String name = formatName(m, parms); Stopwatch stopwatch = SimonManager.getStopwatch(name); stopwatch.setNote(formatNote(m, parms)); return stopwatch; }
public void unregisterAll() { HashSet<String> names = new HashSet<String>(); names.addAll(cnames.keySet()); for (String name : names) { unregisterMXBean(name); } } }
@Override public void counterSet(Counter counter, long val) { toStream(counter.sample()); }
@Override public void resetOutput(String path) throws IOException { file = new File(path); resetOutput(); }
protected void toStream(Sample sample) { try { serializer.toStream(sample); } catch (IOException e) { log.info("not streamed " + sample, e); } }
@Override public void simonCreated(Simon simon) { if (simon.getName() == null) { return; } register(simon); }
@SuppressWarnings("unchecked") public static <T> T newProxy(T proxied, Class<?>... classes) { MetricInvocationHandler<T> handler = new MetricInvocationHandler<T>(proxied); return (T) Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), classes, handler); }
@Override public void disableSerializing() throws IOException { serializer.closeOutput(); SimonManager.callback().removeCallback(srzCB); srzCB = null; }
public void unregisterMXBean(Object mbean) { unregisterMXBean(mbean.getClass().getSimpleName()); }
protected void doStop() { SimonManager.disable(); if (SimonManager.callback() != null) { SimonManager.callback().removeCallback(registeringCB); } register.unregisterAll(); }
@Override public void deactivate(ComponentContext context) { doStop(); super.deactivate(context); }
@Override public void activate(ComponentContext context) { super.activate(context); doStart(); }
@Override public void stopwatchStop(Split split) { toStream(split.getStopwatch().sample()); }
@Override public void simonDestroyed(Simon simon) { register.unregisterMXBean(simon.getName()); }