[ 
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)

Reply via email to