Github user zentol commented on a diff in the pull request:

    https://github.com/apache/flink/pull/2285#discussion_r71879710
  
    --- Diff: 
flink-core/src/main/java/org/apache/flink/metrics/MetricRegistry.java ---
    @@ -75,77 +78,92 @@ public MetricRegistry(Configuration config) {
                this.delimiter = delim;
     
                // second, instantiate any custom configured reporters
    -           
    -           final String className = 
config.getString(ConfigConstants.METRICS_REPORTER_CLASS, null);
    -           if (className == null) {
    +           this.reporters = new ArrayList<>();
    +
    +           final String definedReporters = 
config.getString(ConfigConstants.METRICS_REPORTERS_LIST, null);
    +
    +           if (definedReporters == null) {
    +                   // no reporters defined
                        // by default, don't report anything
                        LOG.info("No metrics reporter configured, no metrics 
will be exposed/reported.");
    -                   this.reporter = null;
                        this.executor = null;
    -           }
    -           else {
    -                   MetricReporter reporter;
    -                   ScheduledExecutorService executor = null;
    -                   try {
    -                           String configuredPeriod = 
config.getString(ConfigConstants.METRICS_REPORTER_INTERVAL, null);
    -                           TimeUnit timeunit = TimeUnit.SECONDS;
    -                           long period = 10;
    -                           
    -                           if (configuredPeriod != null) {
    -                                   try {
    -                                           String[] interval = 
configuredPeriod.split(" ");
    -                                           period = 
Long.parseLong(interval[0]);
    -                                           timeunit = 
TimeUnit.valueOf(interval[1]);
    +           } else {
    +                   // we have some reporters so
    +                   String[] namedReporters = definedReporters.split(",");
    +                   for (String namedReporter : namedReporters) {
    +                           DelegatingConfiguration reporterConfig =
    +                                           new 
DelegatingConfiguration(config, ConfigConstants.METRICS_REPORTER_PREFIX + 
namedReporter + ".");
    +
    +                           final String className = 
reporterConfig.getString(ConfigConstants.METRICS_REPORTER_CLASS, null);
    +                           if (className == null) {
    +                                   throw new IllegalStateException("No 
reporter class set for reporter " + namedReporter);
    --- End diff --
    
    The MetricRegistry constructor should not throw any exceptions.


---
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 [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to