flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tillrohrmann <...@git.apache.org>
Subject [GitHub] flink pull request #2112: [FLINK-3951] Add histogram metric type
Date Thu, 23 Jun 2016 08:23:53 GMT
Github user tillrohrmann commented on a diff in the pull request:

    https://github.com/apache/flink/pull/2112#discussion_r68194030
  
    --- Diff: flink-core/src/main/java/org/apache/flink/metrics/HistogramStatistics.java ---
    @@ -0,0 +1,135 @@
    +/*
    + * 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 getValue(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();
    +
    +	/**
    +	 * Returns the 50th percentile.
    +	 *
    +	 * @return 50th percentile
    +	 */
    +	public double getMedian() {
    +		return getValue(0.5);
    +	}
    +
    +	/**
    +	 * Returns the 75th percentile.
    +	 *
    +	 * @return 75th percentile
    +	 */
    +	public double get75thPercentile() {
    +		return getValue(0.75);
    +	}
    +
    +	/**
    +	 * Returns the 95th percentile.
    +	 *
    +	 * @return 95th percentile
    +	 */
    +	public double get95thPercentile() {
    +		return getValue(0.95);
    +	}
    +
    +	/**
    +	 * Returns the 98th percentile.
    +	 *
    +	 * @return 98th percentile
    +	 */
    +	public double get98thPercentile() {
    +		return getValue(0.98);
    +	}
    +
    +	/**
    +	 * Returns the 99th percentile.
    +	 *
    +	 * @return 99th percentile
    +	 */
    +	public double get99thPercentile() {
    --- End diff --
    
    Given your reasoning, we also have to remove `median` from the class because it could
easily be expressed as `getValue(0.5)`. If you think that the interface only needs `getValue`,
I will remove the others. But I actually think that people would use them.


---
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 infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Mime
View raw message