/** * Register a metrics source (deriving name and description from the object) * @param <T> the actual type of the source object * @param source object to register * @return the source object * @exception MetricsException */ public <T> T register(T source) { return register(null, null, source); }
DefaultMetricsSystem.instance().register(info.getMetricsJmxContext(), info.getMetricsDescription(), adapter); registeredSources.put(info, adapter); DefaultMetricsSystem.instance().unregisterSource(info.getMetricsJmxContext()); helper.removeSourceName(info.getMetricsJmxContext()); helper.removeObjectName(info.getMetricsJmxContext());
@Test public void testRegisterSourceJmxCacheTTL() { MetricsSystem ms = new MetricsSystemImpl(); ms.init("TestMetricsSystem"); TestSource ts = new TestSource("ts"); ms.register(ts); MetricsSourceAdapter sa = ((MetricsSystemImpl) ms) .getSourceAdapter("TestSource"); assertEquals(MetricsConfig.PERIOD_DEFAULT * 1000 + 1, sa.getJmxCacheTTL()); ms.shutdown(); }
@Test public void testUnregisterSource() { MetricsSystem ms = new MetricsSystemImpl(); TestSource ts1 = new TestSource("ts1"); TestSource ts2 = new TestSource("ts2"); ms.register("ts1", "", ts1); ms.register("ts2", "", ts2); MetricsSource s1 = ms.getSource("ts1"); assertNotNull(s1); // should work when metrics system is not started ms.unregisterSource("ts1"); s1 = ms.getSource("ts1"); assertNull(s1); MetricsSource s2 = ms.getSource("ts2"); assertNotNull(s2); ms.shutdown(); }
@Test public void testRegisterDups() { MetricsSystem ms = new MetricsSystemImpl(); TestSource ts1 = new TestSource("ts1"); TestSource ts2 = new TestSource("ts2"); ms.register("ts1", "", ts1); MetricsSource s1 = ms.getSource("ts1"); assertNotNull(s1); // should work when metrics system is not started ms.register("ts1", "", ts2); MetricsSource s2 = ms.getSource("ts1"); assertNotNull(s2); assertNotSame(s1, s2); ms.shutdown(); }
public void destroy() { ms.unregisterSource(sourceName); ms = null; if (codahaleGaugeNames != null) { Metrics metrics = MetricsFactory.getInstance(); for (String chgName : codahaleGaugeNames) { metrics.removeGauge(chgName); } codahaleGaugeNames = null; } }
/** * Gets the balancer status tag from the Metrics registry */ public String getStatus() throws Exception { MetricsSource source = DefaultMetricsSystem.instance().getSource(MetricsBalancerSource.METRICS_JMX_CONTEXT); if (source instanceof MetricsBalancerSourceImpl) { MetricsTag status = ((MetricsBalancerSourceImpl) source).getMetricsRegistry() .getTag(MetricsBalancerSource.BALANCER_STATUS); return status.value(); } else { LOG.warn("Balancer JMX Metrics not registered"); throw new Exception("MetricsBalancer JMX Context not found"); } }
/** * Convenience method to initialize the metrics system * @param prefix for the metrics system configuration * @return the metrics system instance */ public static MetricsSystem initialize(String prefix) { return INSTANCE.impl.get().init(prefix); }
public void close() { synchronized (metricsSystemLock) { metricsSystem.unregisterSource(metricsSourceName); int activeSources = --metricsSourceActiveCounter; if (activeSources == 0) { metricsSystem.publishMetricsNow(); metricsSystem.shutdown(); metricsSystem = null; } } }
/** * Shutdown the metrics system */ public static void shutdown() { INSTANCE.impl.get().shutdown(); } }
@Test public void testMetricsCache() { MetricsSystem ms = new MetricsSystemImpl("cache"); ms.start(); try { String p1 = "root1"; String leafQueueName = "root1.leaf"; QueueMetrics p1Metrics = QueueMetrics.forQueue(ms, p1, null, true, conf); Queue parentQueue1 = mock(Queue.class); when(parentQueue1.getMetrics()).thenReturn(p1Metrics); QueueMetrics metrics = QueueMetrics.forQueue(ms, leafQueueName, parentQueue1, true, conf); Assert.assertNotNull("QueueMetrics for A shoudn't be null", metrics); // Re-register to check for cache hit, shouldn't blow up metrics-system... // also, verify parent-metrics QueueMetrics alterMetrics = QueueMetrics.forQueue(ms, leafQueueName, parentQueue1, true, conf); Assert.assertNotNull("QueueMetrics for alterMetrics shoudn't be null", alterMetrics); } finally { ms.shutdown(); } }
@Test public void testRegisterSourceJmxCacheTTL() { MetricsSystem ms = new MetricsSystemImpl(); ms.init("TestMetricsSystem"); TestSource ts = new TestSource("ts"); ms.register(ts); MetricsSourceAdapter sa = ((MetricsSystemImpl) ms) .getSourceAdapter("TestSource"); assertEquals(MetricsConfig.PERIOD_DEFAULT * 1000 + 1, sa.getJmxCacheTTL()); ms.shutdown(); }
@Test public void testUnregisterSource() { MetricsSystem ms = new MetricsSystemImpl(); TestSource ts1 = new TestSource("ts1"); TestSource ts2 = new TestSource("ts2"); ms.register("ts1", "", ts1); ms.register("ts2", "", ts2); MetricsSource s1 = ms.getSource("ts1"); assertNotNull(s1); // should work when metrics system is not started ms.unregisterSource("ts1"); s1 = ms.getSource("ts1"); assertNull(s1); MetricsSource s2 = ms.getSource("ts2"); assertNotNull(s2); ms.shutdown(); }
@Test public void testRegisterDups() { MetricsSystem ms = new MetricsSystemImpl(); TestSource ts1 = new TestSource("ts1"); TestSource ts2 = new TestSource("ts2"); ms.register("ts1", "", ts1); MetricsSource s1 = ms.getSource("ts1"); assertNotNull(s1); // should work when metrics system is not started ms.register("ts1", "", ts2); MetricsSource s2 = ms.getSource("ts1"); assertNotNull(s2); assertNotSame(s1, s2); ms.shutdown(); }
void unregisterSource(String namespace) { final String name = "DecayRpcSchedulerMetrics2." + namespace; DefaultMetricsSystem.instance().unregisterSource(name); if (decayRpcSchedulerInfoBeanName != null) { MBeans.unregister(decayRpcSchedulerInfoBeanName); } }
public static MetricsSystem getInstance() { if (MetricsSystemHolder.metricsSystem.getSource(JvmMetricsInfo.JvmMetrics.name()) == null) { JvmMetrics.create(getProcessName(), "", MetricsSystemHolder.metricsSystem); } return MetricsSystemHolder.metricsSystem; }
MetricsSystem init(String prefix) { return impl.get().init(prefix); }
void shutdownInstance() { boolean last = impl.get().shutdown(); if (last) synchronized(this) { mBeanNames.map.clear(); sourceNames.map.clear(); } }
@Test public void testMetricsCache() { MetricsSystem ms = new MetricsSystemImpl("cache"); ms.start(); try { String p1 = "root1"; String leafQueueName = "root1.leaf"; QueueMetrics p1Metrics = QueueMetrics.forQueue(ms, p1, null, true, conf); Queue parentQueue1 = make(stub(Queue.class).returning(p1Metrics). from.getMetrics()); QueueMetrics metrics = QueueMetrics.forQueue(ms, leafQueueName, parentQueue1, true, conf); Assert.assertNotNull("QueueMetrics for A shoudn't be null", metrics); // Re-register to check for cache hit, shouldn't blow up metrics-system... // also, verify parent-metrics QueueMetrics alterMetrics = QueueMetrics.forQueue(ms, leafQueueName, parentQueue1, true, conf); Assert.assertNotNull("QueueMetrics for alterMetrics shoudn't be null", alterMetrics); } finally { ms.shutdown(); } }