Github user zentol commented on a diff in the pull request: https://github.com/apache/flink/pull/2517#discussion_r80475991 --- Diff: flink-runtime/src/test/java/org/apache/flink/runtime/metrics/MetricRegistryTest.java --- @@ -280,4 +282,65 @@ public void testConfigurableDelimiter() { registry.shutdown(); } + + @Test + public void testConfigurableDelimiterForReporters() { + Configuration config = new Configuration(); + config.setString(ConfigConstants.METRICS_REPORTERS_LIST, "test1,test2,test3"); + config.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test1." + ConfigConstants.METRICS_REPORTER_SCOPE_DELIMITER, "_"); + config.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test1." + ConfigConstants.METRICS_REPORTER_CLASS_SUFFIX, TestReporter.class.getName()); + config.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test2." + ConfigConstants.METRICS_REPORTER_SCOPE_DELIMITER, "-"); + config.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test2." + ConfigConstants.METRICS_REPORTER_CLASS_SUFFIX, TestReporter.class.getName()); + config.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test3." + ConfigConstants.METRICS_REPORTER_SCOPE_DELIMITER, "AA"); + config.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test3." + ConfigConstants.METRICS_REPORTER_CLASS_SUFFIX, TestReporter.class.getName()); + + MetricRegistry registry = new MetricRegistry(config); + + assertEquals('.', registry.getDelimiter()); + assertEquals('_', registry.getDelimiter(0)); + assertEquals('-', registry.getDelimiter(1)); + assertEquals('.', registry.getDelimiter(2)); + assertEquals('.', registry.getDelimiter(3)); + assertEquals('.', registry.getDelimiter(-1)); + + registry.shutdown(); + } + + @Test + public void testConfigurableDelimiterForReportersInGroup() { + Configuration config = new Configuration(); + config.setString(ConfigConstants.METRICS_REPORTERS_LIST, "test1,test2,test3,test4"); + config.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test1." + ConfigConstants.METRICS_REPORTER_SCOPE_DELIMITER, "_"); + config.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test1." + ConfigConstants.METRICS_REPORTER_CLASS_SUFFIX, TestReporter8.class.getName()); + config.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test2." + ConfigConstants.METRICS_REPORTER_SCOPE_DELIMITER, "-"); + config.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test2." + ConfigConstants.METRICS_REPORTER_CLASS_SUFFIX, TestReporter8.class.getName()); + config.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test3." + ConfigConstants.METRICS_REPORTER_SCOPE_DELIMITER, "AA"); + config.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test3." + ConfigConstants.METRICS_REPORTER_CLASS_SUFFIX, TestReporter8.class.getName()); + config.setString(ConfigConstants.METRICS_REPORTER_PREFIX + "test4." + ConfigConstants.METRICS_REPORTER_CLASS_SUFFIX, TestReporter8.class.getName()); + config.setString(ConfigConstants.METRICS_SCOPE_NAMING_TM, "A.B"); + + MetricRegistry registry = new MetricRegistry(config); + List<MetricReporter> reporters = registry.getReporters(); + ((TestReporter8)reporters.get(0)).expectedDelimiter = '_'; //test1 reporter + ((TestReporter8)reporters.get(1)).expectedDelimiter = '-'; //test2 reporter + ((TestReporter8)reporters.get(2)).expectedDelimiter = '.'; //test3 reporter, because 'AA' - not correct delimiter + //for test4 reporter use global delimiter + --- End diff -- are you sure that this test accurately detects errors? if the assert within notify() fails an exception is thrown, which however is never propagated but only logged. It would however be correct if you execute countCall++ after assertEquals(), as you only reach it for a correct delimiter. Then of course it should be renamed to something like "numCorrectDelimiters" or something.
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---