Skip to content

Commit

Permalink
[FLINK-12981][metrics] ignore NaNs in percentile implementation
Browse files Browse the repository at this point in the history
Histrogram metrics use "long" values anyway and therefore, there is no NaN
in the DescriptiveStatistics' data.
  • Loading branch information
NicoK committed Aug 21, 2019
1 parent 76460d9 commit e59b9d2
Showing 1 changed file with 5 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
import org.apache.flink.metrics.HistogramStatistics;

import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics;
import org.apache.commons.math3.stat.descriptive.rank.Percentile;
import org.apache.commons.math3.stat.ranking.NaNStrategy;

/**
* The {@link DescriptiveStatisticsHistogram} use a DescriptiveStatistics {@link DescriptiveStatistics} as a Flink {@link Histogram}.
Expand All @@ -33,6 +35,9 @@ public class DescriptiveStatisticsHistogram implements org.apache.flink.metrics.

public DescriptiveStatisticsHistogram(int windowSize) {
this.descriptiveStatistics = new DescriptiveStatistics(windowSize);
// since we are storing Long values, we won't have NaN values
Percentile percentileImpl = new Percentile().withNaNStrategy(NaNStrategy.FIXED);
descriptiveStatistics.setPercentileImpl(percentileImpl);
}

@Override
Expand Down

0 comments on commit e59b9d2

Please sign in to comment.