[ https://issues.apache.org/jira/browse/FLINK-11413?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chesnay Schepler updated FLINK-11413: ------------------------------------- Component/s: Metrics > MetricReporter: "metrics.reporters" configuration has to be provided for > reporters to be taken into account > ----------------------------------------------------------------------------------------------------------- > > Key: FLINK-11413 > URL: https://issues.apache.org/jira/browse/FLINK-11413 > Project: Flink > Issue Type: Bug > Components: Configuration, Metrics > Affects Versions: 1.7.1 > Reporter: Matthieu Bonneviot > Priority: Minor > > When using java 11, "metrics.reporters" configuration has to be provided for > reporters to be taken into account. > > The desired behavior: > The MetricRegistryConfiguration looks for a conf like "metrics.reporters = > foo,bar", if not found: all reporters that could be found in the > configuration will be started. > > In the code is it done bySet<String> includedReporters = > reporterListPattern.splitAsStream(includedReportersString).collect(Collectors.toSet()); > [https://github.com/apache/flink/blob/master/flink-runtime/src/main/java/org/apache/flink/runtime/metrics/MetricRegistryConfiguration.java#L134] > Definition of splitAsStream: If this pattern does not match any subsequence > of the input then the resulting stream has just one element, namely the input > sequence in string form. > It means reporterListPattern.splitAsStream("") should return "" and so > includedReporters should have size 1 with "" as unique element > However there is a misbehavior in some version of java 8, it does return > empty stream. > But working with java 11, the further code does not work: if > (includedReporters.isEmpty() || includedReporters.contains(reporterName)) > [https://github.com/apache/flink/blob/master/flink-runtime/src/main/java/org/apache/flink/runtime/metrics/MetricRegistryConfiguration.java#L145] > I would suggest to filter empty string: > Set<String> includedReporters = > reporterListPattern.splitAsStream(includedReportersString).*filter(s -> > !s.isEmpty())*.collect(Collectors.toSet()); -- This message was sent by Atlassian JIRA (v7.6.3#76005)