/** * New instance with default naming for metrics entries. * * @param logger * @param clazz */ public AbstractApiServlet(Logger logger, Class<?> clazz) { this(logger, MetricsFactory.getMetrics("web", clazz)); }
/** Start timing the processing of a document */ public void startDocumentProcess() { finishDocumentProcess(); // Check we've finished the timing of the previous document documentTimerContext = MetricsFactory.getInstance().getTimer(pipelineName, DOCUMENT_TIMER).time(); }
/** * Get or create a new counter. * * @param name * @return */ public Counter getCounter(String name) { return factory.getCounter(base, name); }
@Test public void testRemove() { metrics.getCounter(MetricsFactoryTest.class, "removeC"); metrics.getTimer(MetricsFactoryTest.class, "removeT"); metrics.getHistogram(MetricsFactoryTest.class, "removeH"); metrics.getMeter(MetricsFactoryTest.class, "removeM"); assertFalse(metrics.getRegistry().getMetrics().isEmpty()); metrics.removeAll(); assertTrue(metrics.getRegistry().getMetrics().isEmpty()); }
@Test public void testConfiguration() throws Exception { YamlConfiguration configuration = new YamlConfiguration(MetricsFactoryTest.class, "reporters.yaml"); metrics.configure(configuration); metrics.start(); try { metrics.getCounter(MetricsFactoryTest.class, "testConfiguration").inc(); metrics.getCounter(MetricsFactoryTest.class, "testConfiguration").inc(); MetricsFactory.getMetrics("test", MetricsFactoryTest.class) .getCounter("testConfigurationMetric") .inc(); metrics.report(); Thread.sleep(1000); } finally { metrics.stop(); } // Delete the directory of CSV tests TestingUtils.deleteDirectory("test_csvmetrics"); } }
@Test public void testComponents() throws BaleenException, IOException { metrics.configure(new YamlConfiguration()); metrics.start(); metrics.getCounter(MetricsFactoryTest.class, "removeC"); metrics.stop(); assertTrue(metrics.getRegistry().getMetrics().isEmpty()); }
@Override public final void getNext(JCas jCas) throws IOException, CollectionException { monitor.startFunction("getNext"); MetricsFactory.getInstance() .getPipelineMetrics(monitor.getPipelineName()) .startDocumentProcess(); doGetNext(jCas); monitor.finishFunction("getNext"); monitor.persistCounts(); }
new InstrumentedAppender(MetricsFactory.getInstance().getRegistry()); instrumentedAppender.setContext(context); instrumentedAppender.start();
MetricsFactory metrics = MetricsFactory.getInstance(); metrics.configure(configuration); metrics.start();
/** * Get or create a metric counter, with default naming. * * @param clazz * @param name * @return */ public Counter getCounter(Class<?> clazz, String name) { return metricRegistry.counter(makeName(clazz, name)); }
@Test public void test() throws Exception { PipelineMetrics pm = MetricsFactory.getInstance().getPipelineMetrics(PIPELINE_NAME); assertEquals(PIPELINE_NAME, pm.getPipelineName()); pm.startDocumentProcess(); Thread.sleep(10); pm.finishDocumentProcess(); Timer t = MetricsFactory.getInstance().getTimer(PIPELINE_NAME, "documentProcessingTime"); assertEquals(1, t.getCount()); assertTrue(t.getMeanRate() > 0); assertEquals(pm, MetricsFactory.getInstance().getPipelineMetrics(PIPELINE_NAME)); } }
@Test public void testInstance() { assertNotNull(MetricsFactory.getInstance()); Metrics m1 = MetricsFactory.getMetrics(MetricsFactoryTest.class); Metrics m2 = MetricsFactory.getMetrics("Testing", MetricsFactoryTest.class); assertTrue(m1.getBase().contains(MetricsFactoryTest.class.getCanonicalName())); assertTrue(m2.getBase().contains(MetricsFactoryTest.class.getCanonicalName())); assertTrue(m2.getBase().startsWith("Testing")); }
/** Shutdown the sub components. */ public synchronized void shutdown() { if (started) { LOGGER.info("Shutting down"); started = false; List<AbstractBaleenComponent> components = Arrays.asList(pipelineManager, jobManager, webApi, logging); for (AbstractBaleenComponent component : components) { if (component != null) { try { component.stop(); } catch (BaleenException e) { LOGGER.error("Failed to stop " + component.getClass().getSimpleName(), e); } } } MetricsFactory metrics = MetricsFactory.getInstance(); if (metrics != null) { metrics.stop(); } LOGGER.info("Shutdown complete"); } }
@Before public void before() { // We need to clear the registry MetricsFactory.getInstance().removeAll(); }
/** * Get a new metrics provider for a specific class. * * @param prefix * @param clazz * @return */ public static Metrics getMetrics(String prefix, Class<?> clazz) { return new Metrics(getInstance(), prefix, clazz); }
/** * Get or create a new meter. * * @param name * @return */ public Meter getMeter(String name) { return factory.getMeter(base, name); }
/** * Get or create a new timer. * * @param name * @return */ public Timer getTimer(String name) { return factory.getTimer(base, name); }
/** * Get or create a new histogram. * * @param name * @return */ public Histogram getHistogram(String name) { return factory.getHistogram(base, name); }
/** Remove all metrics from the registry */ public void removeAll() { getRegistry().removeMatching((a, b) -> true); }
@Test public void testDoesntCrash() { MetricsFactory factory = MetricsFactory.getInstance(); factory.getRegistry().addListener(new LoggingMetricListener()); assertNotNull(factory.getCounter(LoggingMetricListenerTest.class, "a")); assertNotNull(factory.getHistogram(LoggingMetricListenerTest.class, "b")); assertNotNull(factory.getMeter(LoggingMetricListenerTest.class, "c")); assertNotNull(factory.getTimer(LoggingMetricListenerTest.class, "d")); factory.removeAll(); }