Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[FLINK-3951] Add Histogram metric type
This closes #2112
- Loading branch information
1 parent
d43bf8d
commit ee3c7a8
Showing
32 changed files
with
1,450 additions
and
23 deletions.
There are no files selected for viewing
52 changes: 52 additions & 0 deletions
52
flink-core/src/main/java/org/apache/flink/metrics/Histogram.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,52 @@ | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
* or more contributor license agreements. See the NOTICE file | |||
* distributed with this work for additional information | |||
* regarding copyright ownership. The ASF licenses this file | |||
* to you under the Apache License, Version 2.0 (the | |||
* "License"); you may not use this file except in compliance | |||
* with the License. You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* Unless required by applicable law or agreed to in writing, software | |||
* distributed under the License is distributed on an "AS IS" BASIS, | |||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
* See the License for the specific language governing permissions and | |||
* limitations under the License. | |||
*/ | |||
|
|||
package org.apache.flink.metrics; | |||
|
|||
import org.apache.flink.annotation.PublicEvolving; | |||
|
|||
/** | |||
* Histogram interface to be used with Flink's metrics system. | |||
* | |||
* The histogram allows to record values, get the current count of recorded values and create | |||
* histogram statistics for the currently seen elements. | |||
*/ | |||
@PublicEvolving | |||
public interface Histogram extends Metric { | |||
|
|||
/** | |||
* Update the histogram with the given value. | |||
* | |||
* @param value Value to update the histogram with | |||
*/ | |||
void update(long value); | |||
|
|||
/** | |||
* Get the count of seen elements. | |||
* | |||
* @return Count of seen elements | |||
*/ | |||
long getCount(); | |||
|
|||
/** | |||
* Create statistics for the currently recorded elements. | |||
* | |||
* @return Statistics about the currently recorded elements | |||
*/ | |||
HistogramStatistics getStatistics(); | |||
} |
81 changes: 81 additions & 0 deletions
81
flink-core/src/main/java/org/apache/flink/metrics/HistogramStatistics.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,81 @@ | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
* or more contributor license agreements. See the NOTICE file | |||
* distributed with this work for additional information | |||
* regarding copyright ownership. The ASF licenses this file | |||
* to you under the Apache License, Version 2.0 (the | |||
* "License"); you may not use this file except in compliance | |||
* with the License. You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* Unless required by applicable law or agreed to in writing, software | |||
* distributed under the License is distributed on an "AS IS" BASIS, | |||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
* See the License for the specific language governing permissions and | |||
* limitations under the License. | |||
*/ | |||
|
|||
package org.apache.flink.metrics; | |||
|
|||
import org.apache.flink.annotation.PublicEvolving; | |||
|
|||
/** | |||
* Histogram statistics represent the current snapshot of elements recorded in the histogram. | |||
* | |||
* The histogram statistics allow to calculate values for quantiles, the mean, the standard | |||
* deviation, the minimum and the maximum. | |||
*/ | |||
@PublicEvolving | |||
public abstract class HistogramStatistics { | |||
|
|||
/** | |||
* Returns the value for the given quantile based on the represented histogram statistics. | |||
* | |||
* @param quantile Quantile to calculate the value for | |||
* @return Value for the given quantile | |||
*/ | |||
public abstract double getQuantile(double quantile); | |||
|
|||
/** | |||
* Returns the elements of the statistics' sample | |||
* | |||
* @return Elements of the statistics' sample | |||
*/ | |||
public abstract long[] getValues(); | |||
|
|||
/** | |||
* Returns the size of the statistics' sample | |||
* | |||
* @return Size of the statistics' sample | |||
*/ | |||
public abstract int size(); | |||
|
|||
/** | |||
* Returns the mean of the histogram values. | |||
* | |||
* @return Mean of the histogram values | |||
*/ | |||
public abstract double getMean(); | |||
|
|||
/** | |||
* Returns the standard deviation of the distribution reflected by the histogram statistics. | |||
* | |||
* @return Standard deviation of histogram distribution | |||
*/ | |||
public abstract double getStdDev(); | |||
|
|||
/** | |||
* Returns the maximum value of the histogram. | |||
* | |||
* @return Maximum value of the histogram | |||
*/ | |||
public abstract long getMax(); | |||
|
|||
/** | |||
* Returns the minimum value of the histogram. | |||
* | |||
* @return Minimum value of the histogram | |||
*/ | |||
public abstract long getMin(); | |||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.