com.tangosol.internal.net.metrics.Snapshot Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of coherence Show documentation
Show all versions of coherence Show documentation
Oracle Coherence Community Edition
/*
* Copyright (c) 2020 Oracle and/or its affiliates.
*
* Licensed under the Universal Permissive License v 1.0 as shown at
* http://oss.oracle.com/licenses/upl.
*/
package com.tangosol.internal.net.metrics;
import java.io.OutputStream;
/**
* A statistical snapshot of a {@link Snapshot}.
*
* @author Jonathan Knight 2020.10.16
*/
public abstract class Snapshot
{
/**
* Returns the value at the given quantile.
*
* @param quantile a given quantile, in {@code [0..1]}
* @return the value in the distribution at {@code quantile}
*/
public abstract double getValue(double quantile);
/**
* Returns the entire set of values in the snapshot.
*
* @return the entire set of values
*/
public abstract long[] getValues();
/**
* Returns the number of values in the snapshot.
*
* @return the number of values
*/
public abstract int size();
/**
* Returns the median value in the distribution.
*
* @return the median value
*/
public double getMedian() {
return getValue(0.5);
}
/**
* Returns the value at the 75th percentile in the distribution.
*
* @return the value at the 75th percentile
*/
public double get75thPercentile() {
return getValue(0.75);
}
/**
* Returns the value at the 95th percentile in the distribution.
*
* @return the value at the 95th percentile
*/
public double get95thPercentile() {
return getValue(0.95);
}
/**
* Returns the value at the 98th percentile in the distribution.
*
* @return the value at the 98th percentile
*/
public double get98thPercentile() {
return getValue(0.98);
}
/**
* Returns the value at the 99th percentile in the distribution.
*
* @return the value at the 99th percentile
*/
public double get99thPercentile() {
return getValue(0.99);
}
/**
* Returns the value at the 99.9th percentile in the distribution.
*
* @return the value at the 99.9th percentile
*/
public double get999thPercentile() {
return getValue(0.999);
}
/**
* Returns the highest value in the snapshot.
*
* @return the highest value
*/
public abstract long getMax();
/**
* Returns the arithmetic mean of the values in the snapshot.
*
* @return the arithmetic mean
*/
public abstract double getMean();
/**
* Returns the lowest value in the snapshot.
*
* @return the lowest value
*/
public abstract long getMin();
/**
* Returns the standard deviation of the values in the snapshot.
*
* @return the standard value
*/
public abstract double getStdDev();
/**
* Writes the values of the snapshot to the given stream.
*
* @param output an output stream
*/
public abstract void dump(OutputStream output);
}