MemoryDistribution

Trait MemoryDistribution 

Source
pub trait MemoryDistribution: TestGetValue<Output = DistributionData> {
    // Required methods
    fn accumulate(&self, sample: u64);
    fn accumulate_samples(&self, samples: Vec<i64>);
    fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32;
}
Expand description

A description for the MemoryDistributionMetric type.

When changing this trait, make sure all the operations are implemented in the related type in ../metrics/.

Required Methods§

Source

fn accumulate(&self, sample: u64)

Accumulates the provided sample in the metric.

§Arguments
  • sample - The sample to be recorded by the metric. The sample is assumed to be in the configured memory unit of the metric.
§Notes

Values bigger than 1 Terabyte (240 bytes) are truncated and an ErrorType::InvalidValue error is recorded.

Source

fn accumulate_samples(&self, samples: Vec<i64>)

Accumulates the provided signed samples in the metric.

This is required so that the platform-specific code can provide us with 64 bit signed integers if no u64 comparable type is available. This will take care of filtering and reporting errors for any provided negative sample.

Please note that this assumes that the provided samples are already in the “unit” declared by the instance of the metric type (e.g. if the the instance this method was called on is using crate::MemoryUnit::Kilobyte, then samples are assumed to be in that unit).

§Arguments
  • samples - The vector holding the samples to be recorded by the metric.
§Notes

Discards any negative value in samples and report an ErrorType::InvalidValue for each of them.

Values bigger than 1 Terabyte (240 bytes) are truncated and an ErrorType::InvalidValue error is recorded.

Source

fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32

Exported for test purposes.

Gets the number of recorded errors for the given error type.

§Arguments
  • error - The type of error
§Returns

The number of errors recorded.

Implementors§