Struct histogram::Histogram [−][src]
the main datastructure
Implementations
impl Histogram
[src][−]
pub fn new() -> Histogram
[src][−]
pub fn configure() -> Config
[src][−]
configure a Histogram
Example
let mut h = Histogram::configure() .max_value(10_000) .build() .unwrap();
pub fn clear(&mut self)
[src][−]
clear the histogram data
Example
let mut h = Histogram::new(); h.increment(1); assert_eq!(h.entries(), 1); h.clear(); assert_eq!(h.entries(), 0);
pub fn increment(&mut self, value: u64) -> Result<(), &'static str>
[src][−]
increment the count for a value
Example
use histogram::Histogram; let mut h = Histogram::new(); h.increment(1); assert_eq!(h.get(1).unwrap(), 1);
pub fn increment_by(
&mut self,
value: u64,
count: u64
) -> Result<(), &'static str>
[src][−]
&mut self,
value: u64,
count: u64
) -> Result<(), &'static str>
record additional counts for value
Example
let mut h = Histogram::new(); h.increment_by(1, 1); assert_eq!(h.get(1).unwrap(), 1); h.increment_by(2, 2); assert_eq!(h.get(2).unwrap(), 2); h.increment_by(10, 10); assert_eq!(h.get(10).unwrap(), 10);
pub fn decrement(&mut self, value: u64) -> Result<(), &'static str>
[src][−]
decrement the count for a value. This functionality is best used to remove previously inserted from the histogram.
Example
let mut h = Histogram::new(); h.increment(1).unwrap(); assert_eq!(h.get(1).unwrap(), 1); h.decrement(1).unwrap(); assert_eq!(h.get(1).unwrap(), 0);
pub fn decrement_by(
&mut self,
value: u64,
count: u64
) -> Result<(), &'static str>
[src][−]
&mut self,
value: u64,
count: u64
) -> Result<(), &'static str>
remove count for value from histogram. This functionality is best used to remove previously inserted from the histogram.
Example
let mut h = Histogram::new(); h.increment_by(1, 1).unwrap(); h.increment_by(2, 2).unwrap(); h.decrement_by(1, 1).unwrap(); assert_eq!(h.get(2).unwrap(), 2); assert_eq!(h.get(1).unwrap(), 0);
pub fn get(&self, value: u64) -> Option<u64>
[src][−]
pub fn percentile(&self, percentile: f64) -> Result<u64, &'static str>
[src][−]
return the value for the given percentile
Example
let mut h = Histogram::new(); for value in 1..1000 { h.increment(value).unwrap(); } assert_eq!(h.percentile(50.0).unwrap(), 501); assert_eq!(h.percentile(90.0).unwrap(), 901); assert_eq!(h.percentile(99.0).unwrap(), 991); assert_eq!(h.percentile(99.9).unwrap(), 999);
pub fn minimum(&self) -> Result<u64, &'static str>
[src][−]
convenience function for min
Example
let mut h = Histogram::new(); for value in 1..1000 { h.increment(value); } assert_eq!(h.minimum().unwrap(), 1);
pub fn maximum(&self) -> Result<u64, &'static str>
[src][−]
convenience function for max
Example
let mut h = Histogram::new(); for value in 1..1000 { h.increment(value); } assert_eq!(h.maximum().unwrap(), 999);
pub fn mean(&self) -> Result<u64, &'static str>
[src][−]
arithmetic mean approximation across the histogram
Example
let mut h = Histogram::new(); for value in 1..1000 { h.increment(value); } assert_eq!(h.mean().unwrap(), 500);
pub fn stdvar(&self) -> Result<u64, &'static str>
[src][−]
standard variance approximation across the histogram
Example
let mut h = Histogram::new(); for value in 1..11 { h.increment(value); } assert_eq!(h.stdvar().unwrap(), 9);
pub fn stddev(&self) -> Option<u64>
[src][−]
standard deviation approximation across the histogram
Example
let mut h = Histogram::new(); for value in 1..11 { h.increment(value); } assert_eq!(h.stddev().unwrap(), 3); h.clear(); for value in 1..4 { h.increment(value); } for _ in 0..26 { h.increment(1); } assert_eq!(h.stddev().unwrap(), 1);
pub fn merge(&mut self, other: &Histogram)
[src][−]
merge one Histogram into another Histogram
Example
let mut a = Histogram::new(); let mut b = Histogram::new(); assert_eq!(a.entries(), 0); assert_eq!(b.entries(), 0); a.increment(1); b.increment(2); assert_eq!(a.entries(), 1); assert_eq!(b.entries(), 1); a.merge(&mut b); assert_eq!(a.entries(), 2); assert_eq!(a.get(1).unwrap(), 1); assert_eq!(a.get(2).unwrap(), 1);
pub fn entries(&self) -> u64
[src][−]
return the number of entries in the Histogram
Example
let mut h = Histogram::new(); assert_eq!(h.entries(), 0); h.increment(1); assert_eq!(h.entries(), 1);
pub fn buckets_total(&self) -> u64
[src][−]
return the number of buckets in the Histogram
Example
let mut h = Histogram::new(); assert!(h.buckets_total() > 1);
Trait Implementations
impl Clone for Histogram
[src][+]
impl Debug for Histogram
[src][+]
impl Default for Histogram
[src][+]
impl<'a> IntoIterator for &'a Histogram
[src][+]
Auto Trait Implementations
impl RefUnwindSafe for Histogram
impl Send for Histogram
impl Sync for Histogram
impl Unpin for Histogram
impl UnwindSafe for Histogram
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src][+]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> From<T> for T
[src][+]
impl<T, U> Into<U> for T where
U: From<T>,
[src][+]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src][+]
T: Clone,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src][+]
U: Into<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src][+]
U: TryFrom<T>,