@Before public void setup() { this.metrics = new Metrics(config, Arrays.asList((MetricsReporter) new JmxReporter()), time, true); }
@Override public void metricRemoval(KafkaMetric metric) { synchronized (LOCK) { MetricName metricName = metric.metricName(); String mBeanName = getMBeanName(prefix, metricName); KafkaMbean mbean = removeAttribute(metric, mBeanName); if (mbean != null) { if (mbean.metrics.isEmpty()) { unregister(mbean); mbeans.remove(mBeanName); } else reregister(mbean); } } }
@Override public void metricChange(KafkaMetric metric) { synchronized (LOCK) { KafkaMbean mbean = addAttribute(metric); reregister(mbean); } }
MBeanServer server = ManagementFactory.getPlatformMBeanServer(); try { JmxReporter reporter = new JmxReporter(); metrics.addReporter(reporter); String mBeanName = JmxReporter.getMBeanName("", metricName); assertTrue(reporter.containsMbean(mBeanName)); metrics.removeMetric(metricName); assertFalse(reporter.containsMbean(mBeanName)); assertFalse(reporter.containsMbean(mBeanName));
private ObjectName objectName(MetricName metricName) throws Exception { return new ObjectName(JmxReporter.getMBeanName("", metricName)); }
public void close() { synchronized (LOCK) { for (KafkaMbean mbean : this.mbeans.values()) unregister(mbean); } }
String mBeanName = JmxReporter.getMBeanName(domain, metricName); if (!beansAndAttributes.containsKey(mBeanName)) { beansAndAttributes.put(mBeanName, new TreeMap<String, String>());
private void reregister(KafkaMbean mbean) { unregister(mbean); try { ManagementFactory.getPlatformMBeanServer().registerMBean(mbean, mbean.name()); } catch (JMException e) { throw new KafkaException("Error registering mbean " + mbean.name(), e); } }
_offlineRunnables = new ConcurrentHashMap<>(); List<MetricsReporter> reporters = new ArrayList<>(); reporters.add(new JmxReporter(JMX_PREFIX)); Metrics metrics = new Metrics(new MetricConfig(), reporters, new SystemTime()); metrics.addMetric(metrics.metricName("offline-runnable-count", METRIC_GROUP_NAME, "The number of Service/App that are not fully running"),
@Override public void init(List<KafkaMetric> metrics) { synchronized (LOCK) { for (KafkaMetric metric : metrics) addAttribute(metric); for (KafkaMbean mbean : mbeans.values()) reregister(mbean); } }
private KafkaMbean addAttribute(KafkaMetric metric) { try { MetricName metricName = metric.metricName(); String mBeanName = getMBeanName(prefix, metricName); if (!this.mbeans.containsKey(mBeanName)) mbeans.put(mBeanName, new KafkaMbean(mBeanName)); KafkaMbean mbean = this.mbeans.get(mBeanName); mbean.setAttribute(metricName.name(), metric); return mbean; } catch (JMException e) { throw new KafkaException("Error creating mbean attribute for metricName :" + metric.metricName(), e); } }
public void close() { synchronized (lock) { for (KafkaMbean mbean : this.mbeans.values()) unregister(mbean); } }
public static void initialize() { final MetricConfig metricConfig = new MetricConfig() .samples(100) .timeWindow( 1000, TimeUnit.MILLISECONDS ); final List<MetricsReporter> reporters = new ArrayList<>(); reporters.add(new JmxReporter("io.confluent.ksql.metrics")); // Replace all static contents other than Time to ensure they are cleaned for tests that are // not aware of the need to initialize/cleanup this test, in case test processes are reused. // Tests aware of the class clean everything up properly to get the state into a clean state, // a full, fresh instantiation here ensures something like KsqlEngineMetricsTest running after // another test that used MetricsCollector without running cleanUp will behave correctly. metrics = new Metrics(metricConfig, reporters, new SystemTime()); collectorMap = new ConcurrentHashMap<>(); }
@Override public void metricChange(KafkaMetric metric) { synchronized (lock) { KafkaMbean mbean = addAttribute(metric); reregister(mbean); } }
private KafkaMbean addAttribute(KafkaMetric metric) { try { MetricName metricName = metric.metricName(); String mBeanName = getMBeanName(metricName); if (!this.mbeans.containsKey(mBeanName)) mbeans.put(mBeanName, new KafkaMbean(mBeanName)); KafkaMbean mbean = this.mbeans.get(mBeanName); mbean.setAttribute(metricName.name() , metric); return mbean; } catch (JMException e) { throw new KafkaException("Error creating mbean attribute for metricName :" + metric.metricName(), e); } }
private void reregister(KafkaMbean mbean) { unregister(mbean); try { ManagementFactory.getPlatformMBeanServer().registerMBean(mbean, mbean.name()); } catch (JMException e) { throw new KafkaException("Error registering mbean " + mbean.name(), e); } }
reporters.add(new JmxReporter(JMX_PREFIX)); Metrics metrics = new Metrics(metricConfig, reporters, new SystemTime()); Map<String, String> tags = new HashMap<>();
@Override public void init(List<KafkaMetric> metrics) { synchronized (lock) { for (KafkaMetric metric : metrics) addAttribute(metric); for (KafkaMbean mbean : mbeans.values()) reregister(mbean); } }
@Before public void setup() { config = new MetricConfig().eventWindow(50).samples(2); time = new MockTime(); metrics = new Metrics(config, Arrays.asList((MetricsReporter) new JmxReporter()), time, true); }
reporters.add(new JmxReporter(JMX_PREFIX)); Metrics metrics = new Metrics(metricConfig, reporters, new SystemTime()); Map<String, String> tags = new HashMap<>();