org.apache.flink.runtime.metrics.groups.FrontMetricGroup Java Examples
The following examples show how to use
org.apache.flink.runtime.metrics.groups.FrontMetricGroup.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: MeasurementInfoProviderTest.java From flink with Apache License 2.0 | 6 votes |
@Test public void simpleTestGetMetricInfo() { String logicalScope = "myService.Status.JVM.ClassLoader"; Map<String, String> variables = new HashMap<>(); variables.put("<A>", "a"); variables.put("<B>", "b"); variables.put("<C>", "c"); String metricName = "ClassesLoaded"; FrontMetricGroup metricGroup = mock( FrontMetricGroup.class, (invocation) -> { throw new UnsupportedOperationException("unexpected method call"); }); doReturn(variables).when(metricGroup).getAllVariables(); doReturn(logicalScope).when(metricGroup).getLogicalScope(any(), anyChar()); MeasurementInfo info = provider.getMetricInfo(metricName, metricGroup); assertNotNull(info); assertEquals( String.join("" + MeasurementInfoProvider.SCOPE_SEPARATOR, logicalScope, metricName), info.getName()); assertThat(info.getTags(), hasEntry("A", "a")); assertThat(info.getTags(), hasEntry("B", "b")); assertThat(info.getTags(), hasEntry("C", "c")); assertEquals(3, info.getTags().size()); }
Example #2
Source File: PrometheusReporterTest.java From flink with Apache License 2.0 | 6 votes |
@Test public void metricIsRemovedWhenCollectorIsNotUnregisteredYet() throws UnirestException { TaskManagerMetricGroup tmMetricGroup = new TaskManagerMetricGroup(registry, HOST_NAME, TASK_MANAGER); String metricName = "metric"; Counter metric1 = new SimpleCounter(); FrontMetricGroup<TaskManagerJobMetricGroup> metricGroup1 = new FrontMetricGroup<>( createReporterScopedSettings(), new TaskManagerJobMetricGroup(registry, tmMetricGroup, JobID.generate(), "job_1")); reporter.notifyOfAddedMetric(metric1, metricName, metricGroup1); Counter metric2 = new SimpleCounter(); FrontMetricGroup<TaskManagerJobMetricGroup> metricGroup2 = new FrontMetricGroup<>( createReporterScopedSettings(), new TaskManagerJobMetricGroup(registry, tmMetricGroup, JobID.generate(), "job_2")); reporter.notifyOfAddedMetric(metric2, metricName, metricGroup2); reporter.notifyOfRemovedMetric(metric1, metricName, metricGroup1); String response = pollMetrics(reporter.getPort()).getBody(); assertThat(response, not(containsString("job_1"))); }
Example #3
Source File: MeasurementInfoProviderTest.java From flink with Apache License 2.0 | 6 votes |
@Test public void simpleTestGetMetricInfo() { String logicalScope = "myService.Status.JVM.ClassLoader"; Map<String, String> variables = new HashMap<>(); variables.put("<A>", "a"); variables.put("<B>", "b"); variables.put("<C>", "c"); String metricName = "ClassesLoaded"; FrontMetricGroup metricGroup = mock( FrontMetricGroup.class, (invocation) -> { throw new UnsupportedOperationException("unexpected method call"); }); doReturn(variables).when(metricGroup).getAllVariables(); doReturn(logicalScope).when(metricGroup).getLogicalScope(any(), anyChar()); MeasurementInfo info = provider.getMetricInfo(metricName, metricGroup); assertNotNull(info); assertEquals( String.join("" + MeasurementInfoProvider.SCOPE_SEPARATOR, logicalScope, metricName), info.getName()); assertThat(info.getTags(), hasEntry("A", "a")); assertThat(info.getTags(), hasEntry("B", "b")); assertThat(info.getTags(), hasEntry("C", "c")); assertEquals(3, info.getTags().size()); }
Example #4
Source File: PrometheusReporterTest.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
@Test public void metricIsRemovedWhenCollectorIsNotUnregisteredYet() throws UnirestException { TaskManagerMetricGroup tmMetricGroup = new TaskManagerMetricGroup(registry, HOST_NAME, TASK_MANAGER); String metricName = "metric"; Counter metric1 = new SimpleCounter(); FrontMetricGroup<TaskManagerJobMetricGroup> metricGroup1 = new FrontMetricGroup<>(0, new TaskManagerJobMetricGroup(registry, tmMetricGroup, JobID.generate(), "job_1")); reporter.notifyOfAddedMetric(metric1, metricName, metricGroup1); Counter metric2 = new SimpleCounter(); FrontMetricGroup<TaskManagerJobMetricGroup> metricGroup2 = new FrontMetricGroup<>(0, new TaskManagerJobMetricGroup(registry, tmMetricGroup, JobID.generate(), "job_2")); reporter.notifyOfAddedMetric(metric2, metricName, metricGroup2); reporter.notifyOfRemovedMetric(metric1, metricName, metricGroup1); String response = pollMetrics(reporter.getPort()).getBody(); assertThat(response, not(containsString("job_1"))); }
Example #5
Source File: PrometheusReporterTest.java From flink with Apache License 2.0 | 6 votes |
@Test public void metricIsRemovedWhenCollectorIsNotUnregisteredYet() throws UnirestException { TaskManagerMetricGroup tmMetricGroup = new TaskManagerMetricGroup(registry, HOST_NAME, TASK_MANAGER); String metricName = "metric"; Counter metric1 = new SimpleCounter(); FrontMetricGroup<TaskManagerJobMetricGroup> metricGroup1 = new FrontMetricGroup<>(0, new TaskManagerJobMetricGroup(registry, tmMetricGroup, JobID.generate(), "job_1")); reporter.notifyOfAddedMetric(metric1, metricName, metricGroup1); Counter metric2 = new SimpleCounter(); FrontMetricGroup<TaskManagerJobMetricGroup> metricGroup2 = new FrontMetricGroup<>(0, new TaskManagerJobMetricGroup(registry, tmMetricGroup, JobID.generate(), "job_2")); reporter.notifyOfAddedMetric(metric2, metricName, metricGroup2); reporter.notifyOfRemovedMetric(metric1, metricName, metricGroup1); String response = pollMetrics(reporter.getPort()).getBody(); assertThat(response, not(containsString("job_1"))); }
Example #6
Source File: MeasurementInfoProviderTest.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
@Test public void simpleTestGetMetricInfo() { String logicalScope = "myService.Status.JVM.ClassLoader"; Map<String, String> variables = new HashMap<>(); variables.put("<A>", "a"); variables.put("<B>", "b"); variables.put("<C>", "c"); String metricName = "ClassesLoaded"; FrontMetricGroup metricGroup = mock( FrontMetricGroup.class, (invocation) -> { throw new UnsupportedOperationException("unexpected method call"); }); doReturn(variables).when(metricGroup).getAllVariables(); doReturn(logicalScope).when(metricGroup).getLogicalScope(any(), anyChar()); MeasurementInfo info = provider.getMetricInfo(metricName, metricGroup); assertNotNull(info); assertEquals( String.join("" + MeasurementInfoProvider.SCOPE_SEPARATOR, logicalScope, metricName), info.getName()); assertThat(info.getTags(), hasEntry("A", "a")); assertThat(info.getTags(), hasEntry("B", "b")); assertThat(info.getTags(), hasEntry("C", "c")); assertEquals(3, info.getTags().size()); }
Example #7
Source File: PrometheusReporterTest.java From flink with Apache License 2.0 | 5 votes |
@Before public void setupReporter() { registry = new MetricRegistryImpl( MetricRegistryConfiguration.defaultMetricRegistryConfiguration(), Collections.singletonList(createReporterSetup("test1", portRangeProvider.next()))); metricGroup = new FrontMetricGroup<>(0, new TaskManagerMetricGroup(registry, HOST_NAME, TASK_MANAGER)); reporter = (PrometheusReporter) registry.getReporters().get(0); }
Example #8
Source File: PrometheusReporterTest.java From flink with Apache License 2.0 | 5 votes |
@Before public void setupReporter() { registry = new MetricRegistryImpl( MetricRegistryConfiguration.defaultMetricRegistryConfiguration(), Collections.singletonList(createReporterSetup("test1", portRangeProvider.next()))); metricGroup = new FrontMetricGroup<>( createReporterScopedSettings(), new TaskManagerMetricGroup(registry, HOST_NAME, TASK_MANAGER)); reporter = (PrometheusReporter) registry.getReporters().get(0); }
Example #9
Source File: JMXReporter.java From flink with Apache License 2.0 | 4 votes |
static String generateJmxDomain(String metricName, MetricGroup group) { return JMX_DOMAIN_PREFIX + ((FrontMetricGroup<AbstractMetricGroup<?>>) group).getLogicalScope(CHARACTER_FILTER, '.') + '.' + metricName; }
Example #10
Source File: JMXReporterTest.java From flink with Apache License 2.0 | 4 votes |
/** * Verifies that multiple JMXReporters can be started on the same machine and register metrics at the MBeanServer. * * @throws Exception if the attribute/mbean could not be found or the test is broken */ @Test public void testPortConflictHandling() throws Exception { ReporterSetup reporterSetup1 = ReporterSetup.forReporter("test1", new JMXReporter("9020-9035")); ReporterSetup reporterSetup2 = ReporterSetup.forReporter("test2", new JMXReporter("9020-9035")); MetricRegistryImpl reg = new MetricRegistryImpl( MetricRegistryConfiguration.defaultMetricRegistryConfiguration(), Arrays.asList(reporterSetup1, reporterSetup2)); TaskManagerMetricGroup mg = new TaskManagerMetricGroup(reg, "host", "tm"); List<MetricReporter> reporters = reg.getReporters(); assertTrue(reporters.size() == 2); MetricReporter rep1 = reporters.get(0); MetricReporter rep2 = reporters.get(1); Gauge<Integer> g1 = new Gauge<Integer>() { @Override public Integer getValue() { return 1; } }; Gauge<Integer> g2 = new Gauge<Integer>() { @Override public Integer getValue() { return 2; } }; rep1.notifyOfAddedMetric(g1, "rep1", new FrontMetricGroup<>(0, new TaskManagerMetricGroup(reg, "host", "tm"))); rep2.notifyOfAddedMetric(g2, "rep2", new FrontMetricGroup<>(0, new TaskManagerMetricGroup(reg, "host", "tm"))); MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer(); ObjectName objectName1 = new ObjectName(JMX_DOMAIN_PREFIX + "taskmanager.rep1", JMXReporter.generateJmxTable(mg.getAllVariables())); ObjectName objectName2 = new ObjectName(JMX_DOMAIN_PREFIX + "taskmanager.rep2", JMXReporter.generateJmxTable(mg.getAllVariables())); assertEquals(1, mBeanServer.getAttribute(objectName1, "Value")); assertEquals(2, mBeanServer.getAttribute(objectName2, "Value")); rep1.notifyOfRemovedMetric(g1, "rep1", null); rep1.notifyOfRemovedMetric(g2, "rep2", null); mg.close(); reg.shutdown().get(); }
Example #11
Source File: JMXReporterTest.java From flink with Apache License 2.0 | 4 votes |
/** * Verifies that we can connect to multiple JMXReporters running on the same machine. * * @throws Exception */ @Test public void testJMXAvailability() throws Exception { ReporterSetup reporterSetup1 = ReporterSetup.forReporter("test1", new JMXReporter("9040-9055")); ReporterSetup reporterSetup2 = ReporterSetup.forReporter("test2", new JMXReporter("9040-9055")); MetricRegistryImpl reg = new MetricRegistryImpl( MetricRegistryConfiguration.defaultMetricRegistryConfiguration(), Arrays.asList(reporterSetup1, reporterSetup2)); TaskManagerMetricGroup mg = new TaskManagerMetricGroup(reg, "host", "tm"); List<MetricReporter> reporters = reg.getReporters(); assertTrue(reporters.size() == 2); MetricReporter rep1 = reporters.get(0); MetricReporter rep2 = reporters.get(1); Gauge<Integer> g1 = new Gauge<Integer>() { @Override public Integer getValue() { return 1; } }; Gauge<Integer> g2 = new Gauge<Integer>() { @Override public Integer getValue() { return 2; } }; rep1.notifyOfAddedMetric(g1, "rep1", new FrontMetricGroup<>(0, new TaskManagerMetricGroup(reg, "host", "tm"))); rep2.notifyOfAddedMetric(g2, "rep2", new FrontMetricGroup<>(1, new TaskManagerMetricGroup(reg, "host", "tm"))); ObjectName objectName1 = new ObjectName(JMX_DOMAIN_PREFIX + "taskmanager.rep1", JMXReporter.generateJmxTable(mg.getAllVariables())); ObjectName objectName2 = new ObjectName(JMX_DOMAIN_PREFIX + "taskmanager.rep2", JMXReporter.generateJmxTable(mg.getAllVariables())); JMXServiceURL url1 = new JMXServiceURL("service:jmx:rmi://localhost:" + ((JMXReporter) rep1).getPort().get() + "/jndi/rmi://localhost:" + ((JMXReporter) rep1).getPort().get() + "/jmxrmi"); JMXConnector jmxCon1 = JMXConnectorFactory.connect(url1); MBeanServerConnection mCon1 = jmxCon1.getMBeanServerConnection(); assertEquals(1, mCon1.getAttribute(objectName1, "Value")); assertEquals(2, mCon1.getAttribute(objectName2, "Value")); jmxCon1.close(); JMXServiceURL url2 = new JMXServiceURL("service:jmx:rmi://localhost:" + ((JMXReporter) rep2).getPort().get() + "/jndi/rmi://localhost:" + ((JMXReporter) rep2).getPort().get() + "/jmxrmi"); JMXConnector jmxCon2 = JMXConnectorFactory.connect(url2); MBeanServerConnection mCon2 = jmxCon2.getMBeanServerConnection(); assertEquals(1, mCon2.getAttribute(objectName1, "Value")); assertEquals(2, mCon2.getAttribute(objectName2, "Value")); rep1.notifyOfRemovedMetric(g1, "rep1", null); rep1.notifyOfRemovedMetric(g2, "rep2", null); jmxCon2.close(); rep1.close(); rep2.close(); mg.close(); reg.shutdown().get(); }
Example #12
Source File: AbstractPrometheusReporter.java From flink with Apache License 2.0 | 4 votes |
@SuppressWarnings("unchecked") private static String getLogicalScope(MetricGroup group) { return ((FrontMetricGroup<AbstractMetricGroup<?>>) group).getLogicalScope(CHARACTER_FILTER, SCOPE_SEPARATOR); }
Example #13
Source File: JMXReporter.java From Flink-CEPplus with Apache License 2.0 | 4 votes |
static String generateJmxDomain(String metricName, MetricGroup group) { return JMX_DOMAIN_PREFIX + ((FrontMetricGroup<AbstractMetricGroup<?>>) group).getLogicalScope(CHARACTER_FILTER, '.') + '.' + metricName; }
Example #14
Source File: MeasurementInfoProvider.java From Flink-CEPplus with Apache License 2.0 | 4 votes |
private static String getLogicalScope(MetricGroup group) { return ((FrontMetricGroup<AbstractMetricGroup<?>>) group).getLogicalScope(CHARACTER_FILTER, SCOPE_SEPARATOR); }
Example #15
Source File: MeasurementInfoProvider.java From flink with Apache License 2.0 | 4 votes |
private static String getLogicalScope(MetricGroup group) { return ((FrontMetricGroup<AbstractMetricGroup<?>>) group).getLogicalScope(CHARACTER_FILTER, SCOPE_SEPARATOR); }
Example #16
Source File: PrometheusReporterTest.java From Flink-CEPplus with Apache License 2.0 | 4 votes |
@Before public void setupReporter() { registry = new MetricRegistryImpl(MetricRegistryConfiguration.fromConfiguration(createConfigWithOneReporter("test1", portRangeProvider.next()))); metricGroup = new FrontMetricGroup<>(0, new TaskManagerMetricGroup(registry, HOST_NAME, TASK_MANAGER)); reporter = (PrometheusReporter) registry.getReporters().get(0); }
Example #17
Source File: JMXReporter.java From flink with Apache License 2.0 | 4 votes |
static String generateJmxDomain(String metricName, MetricGroup group) { return JMX_DOMAIN_PREFIX + ((FrontMetricGroup<AbstractMetricGroup<?>>) group).getLogicalScope(CHARACTER_FILTER, '.') + '.' + metricName; }
Example #18
Source File: JMXReporterTest.java From flink with Apache License 2.0 | 4 votes |
/** * Verifies that multiple JMXReporters can be started on the same machine and register metrics at the MBeanServer. * * @throws Exception if the attribute/mbean could not be found or the test is broken */ @Test public void testPortConflictHandling() throws Exception { ReporterSetup reporterSetup1 = ReporterSetup.forReporter("test1", new JMXReporter("9020-9035")); ReporterSetup reporterSetup2 = ReporterSetup.forReporter("test2", new JMXReporter("9020-9035")); MetricRegistryImpl reg = new MetricRegistryImpl( MetricRegistryConfiguration.defaultMetricRegistryConfiguration(), Arrays.asList(reporterSetup1, reporterSetup2)); TaskManagerMetricGroup mg = new TaskManagerMetricGroup(reg, "host", "tm"); List<MetricReporter> reporters = reg.getReporters(); assertTrue(reporters.size() == 2); MetricReporter rep1 = reporters.get(0); MetricReporter rep2 = reporters.get(1); Gauge<Integer> g1 = new Gauge<Integer>() { @Override public Integer getValue() { return 1; } }; Gauge<Integer> g2 = new Gauge<Integer>() { @Override public Integer getValue() { return 2; } }; rep1.notifyOfAddedMetric(g1, "rep1", new FrontMetricGroup<>(createReporterScopedSettings(0), mg)); rep2.notifyOfAddedMetric(g2, "rep2", new FrontMetricGroup<>(createReporterScopedSettings(0), mg)); MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer(); ObjectName objectName1 = new ObjectName(JMX_DOMAIN_PREFIX + "taskmanager.rep1", JMXReporter.generateJmxTable(mg.getAllVariables())); ObjectName objectName2 = new ObjectName(JMX_DOMAIN_PREFIX + "taskmanager.rep2", JMXReporter.generateJmxTable(mg.getAllVariables())); assertEquals(1, mBeanServer.getAttribute(objectName1, "Value")); assertEquals(2, mBeanServer.getAttribute(objectName2, "Value")); rep1.notifyOfRemovedMetric(g1, "rep1", null); rep1.notifyOfRemovedMetric(g2, "rep2", null); mg.close(); reg.shutdown().get(); }
Example #19
Source File: JMXReporterTest.java From flink with Apache License 2.0 | 4 votes |
/** * Verifies that we can connect to multiple JMXReporters running on the same machine. * * @throws Exception */ @Test public void testJMXAvailability() throws Exception { ReporterSetup reporterSetup1 = ReporterSetup.forReporter("test1", new JMXReporter("9040-9055")); ReporterSetup reporterSetup2 = ReporterSetup.forReporter("test2", new JMXReporter("9040-9055")); MetricRegistryImpl reg = new MetricRegistryImpl( MetricRegistryConfiguration.defaultMetricRegistryConfiguration(), Arrays.asList(reporterSetup1, reporterSetup2)); TaskManagerMetricGroup mg = new TaskManagerMetricGroup(reg, "host", "tm"); List<MetricReporter> reporters = reg.getReporters(); assertTrue(reporters.size() == 2); MetricReporter rep1 = reporters.get(0); MetricReporter rep2 = reporters.get(1); Gauge<Integer> g1 = new Gauge<Integer>() { @Override public Integer getValue() { return 1; } }; Gauge<Integer> g2 = new Gauge<Integer>() { @Override public Integer getValue() { return 2; } }; rep1.notifyOfAddedMetric(g1, "rep1", new FrontMetricGroup<>(createReporterScopedSettings(0), mg)); rep2.notifyOfAddedMetric(g2, "rep2", new FrontMetricGroup<>(createReporterScopedSettings(1), mg)); ObjectName objectName1 = new ObjectName(JMX_DOMAIN_PREFIX + "taskmanager.rep1", JMXReporter.generateJmxTable(mg.getAllVariables())); ObjectName objectName2 = new ObjectName(JMX_DOMAIN_PREFIX + "taskmanager.rep2", JMXReporter.generateJmxTable(mg.getAllVariables())); JMXServiceURL url1 = new JMXServiceURL("service:jmx:rmi://localhost:" + ((JMXReporter) rep1).getPort().get() + "/jndi/rmi://localhost:" + ((JMXReporter) rep1).getPort().get() + "/jmxrmi"); JMXConnector jmxCon1 = JMXConnectorFactory.connect(url1); MBeanServerConnection mCon1 = jmxCon1.getMBeanServerConnection(); assertEquals(1, mCon1.getAttribute(objectName1, "Value")); assertEquals(2, mCon1.getAttribute(objectName2, "Value")); jmxCon1.close(); JMXServiceURL url2 = new JMXServiceURL("service:jmx:rmi://localhost:" + ((JMXReporter) rep2).getPort().get() + "/jndi/rmi://localhost:" + ((JMXReporter) rep2).getPort().get() + "/jmxrmi"); JMXConnector jmxCon2 = JMXConnectorFactory.connect(url2); MBeanServerConnection mCon2 = jmxCon2.getMBeanServerConnection(); assertEquals(1, mCon2.getAttribute(objectName1, "Value")); assertEquals(2, mCon2.getAttribute(objectName2, "Value")); rep1.notifyOfRemovedMetric(g1, "rep1", null); rep1.notifyOfRemovedMetric(g2, "rep2", null); jmxCon2.close(); rep1.close(); rep2.close(); mg.close(); reg.shutdown().get(); }
Example #20
Source File: AbstractPrometheusReporter.java From flink with Apache License 2.0 | 4 votes |
@SuppressWarnings("unchecked") private static String getLogicalScope(MetricGroup group) { return ((FrontMetricGroup<AbstractMetricGroup<?>>) group).getLogicalScope(CHARACTER_FILTER, SCOPE_SEPARATOR); }
Example #21
Source File: AbstractPrometheusReporter.java From Flink-CEPplus with Apache License 2.0 | 4 votes |
@SuppressWarnings("unchecked") private static String getLogicalScope(MetricGroup group) { return ((FrontMetricGroup<AbstractMetricGroup<?>>) group).getLogicalScope(CHARACTER_FILTER, SCOPE_SEPARATOR); }
Example #22
Source File: JMXReporterTest.java From Flink-CEPplus with Apache License 2.0 | 4 votes |
/** * Verifies that we can connect to multiple JMXReporters running on the same machine. * * @throws Exception */ @Test public void testJMXAvailability() throws Exception { Configuration cfg = new Configuration(); cfg.setString(ConfigConstants.METRICS_REPORTER_CLASS_SUFFIX, TestReporter.class.getName()); cfg.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test1." + ConfigConstants.METRICS_REPORTER_CLASS_SUFFIX, JMXReporter.class.getName()); cfg.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test1.port", "9040-9055"); cfg.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test2." + ConfigConstants.METRICS_REPORTER_CLASS_SUFFIX, JMXReporter.class.getName()); cfg.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test2.port", "9040-9055"); MetricRegistryImpl reg = new MetricRegistryImpl(MetricRegistryConfiguration.fromConfiguration(cfg)); TaskManagerMetricGroup mg = new TaskManagerMetricGroup(reg, "host", "tm"); List<MetricReporter> reporters = reg.getReporters(); assertTrue(reporters.size() == 2); MetricReporter rep1 = reporters.get(0); MetricReporter rep2 = reporters.get(1); Gauge<Integer> g1 = new Gauge<Integer>() { @Override public Integer getValue() { return 1; } }; Gauge<Integer> g2 = new Gauge<Integer>() { @Override public Integer getValue() { return 2; } }; rep1.notifyOfAddedMetric(g1, "rep1", new FrontMetricGroup<>(0, new TaskManagerMetricGroup(reg, "host", "tm"))); rep2.notifyOfAddedMetric(g2, "rep2", new FrontMetricGroup<>(1, new TaskManagerMetricGroup(reg, "host", "tm"))); ObjectName objectName1 = new ObjectName(JMX_DOMAIN_PREFIX + "taskmanager.rep1", JMXReporter.generateJmxTable(mg.getAllVariables())); ObjectName objectName2 = new ObjectName(JMX_DOMAIN_PREFIX + "taskmanager.rep2", JMXReporter.generateJmxTable(mg.getAllVariables())); JMXServiceURL url1 = new JMXServiceURL("service:jmx:rmi://localhost:" + ((JMXReporter) rep1).getPort() + "/jndi/rmi://localhost:" + ((JMXReporter) rep1).getPort() + "/jmxrmi"); JMXConnector jmxCon1 = JMXConnectorFactory.connect(url1); MBeanServerConnection mCon1 = jmxCon1.getMBeanServerConnection(); assertEquals(1, mCon1.getAttribute(objectName1, "Value")); assertEquals(2, mCon1.getAttribute(objectName2, "Value")); jmxCon1.close(); JMXServiceURL url2 = new JMXServiceURL("service:jmx:rmi://localhost:" + ((JMXReporter) rep2).getPort() + "/jndi/rmi://localhost:" + ((JMXReporter) rep2).getPort() + "/jmxrmi"); JMXConnector jmxCon2 = JMXConnectorFactory.connect(url2); MBeanServerConnection mCon2 = jmxCon2.getMBeanServerConnection(); assertEquals(1, mCon2.getAttribute(objectName1, "Value")); assertEquals(2, mCon2.getAttribute(objectName2, "Value")); rep1.notifyOfRemovedMetric(g1, "rep1", null); rep1.notifyOfRemovedMetric(g2, "rep2", null); jmxCon2.close(); rep1.close(); rep2.close(); mg.close(); reg.shutdown().get(); }
Example #23
Source File: MeasurementInfoProvider.java From flink with Apache License 2.0 | 4 votes |
private static String getLogicalScope(MetricGroup group) { return ((FrontMetricGroup<AbstractMetricGroup<?>>) group).getLogicalScope(CHARACTER_FILTER, SCOPE_SEPARATOR); }
Example #24
Source File: JMXReporterTest.java From Flink-CEPplus with Apache License 2.0 | 4 votes |
/** * Verifies that multiple JMXReporters can be started on the same machine and register metrics at the MBeanServer. * * @throws Exception if the attribute/mbean could not be found or the test is broken */ @Test public void testPortConflictHandling() throws Exception { Configuration cfg = new Configuration(); cfg.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test1." + ConfigConstants.METRICS_REPORTER_CLASS_SUFFIX, JMXReporter.class.getName()); cfg.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test1.port", "9020-9035"); cfg.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test2." + ConfigConstants.METRICS_REPORTER_CLASS_SUFFIX, JMXReporter.class.getName()); cfg.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test2.port", "9020-9035"); MetricRegistryImpl reg = new MetricRegistryImpl(MetricRegistryConfiguration.fromConfiguration(cfg)); TaskManagerMetricGroup mg = new TaskManagerMetricGroup(reg, "host", "tm"); List<MetricReporter> reporters = reg.getReporters(); assertTrue(reporters.size() == 2); MetricReporter rep1 = reporters.get(0); MetricReporter rep2 = reporters.get(1); Gauge<Integer> g1 = new Gauge<Integer>() { @Override public Integer getValue() { return 1; } }; Gauge<Integer> g2 = new Gauge<Integer>() { @Override public Integer getValue() { return 2; } }; rep1.notifyOfAddedMetric(g1, "rep1", new FrontMetricGroup<>(0, new TaskManagerMetricGroup(reg, "host", "tm"))); rep2.notifyOfAddedMetric(g2, "rep2", new FrontMetricGroup<>(0, new TaskManagerMetricGroup(reg, "host", "tm"))); MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer(); ObjectName objectName1 = new ObjectName(JMX_DOMAIN_PREFIX + "taskmanager.rep1", JMXReporter.generateJmxTable(mg.getAllVariables())); ObjectName objectName2 = new ObjectName(JMX_DOMAIN_PREFIX + "taskmanager.rep2", JMXReporter.generateJmxTable(mg.getAllVariables())); assertEquals(1, mBeanServer.getAttribute(objectName1, "Value")); assertEquals(2, mBeanServer.getAttribute(objectName2, "Value")); rep1.notifyOfRemovedMetric(g1, "rep1", null); rep1.notifyOfRemovedMetric(g2, "rep2", null); mg.close(); reg.shutdown().get(); }