Struct glean_core::metrics::TimingDistributionMetric[][src]

pub struct TimingDistributionMetric { /* fields omitted */ }
Expand description

A timing distribution metric.

Timing distributions are used to accumulate and store time measurement, for analyzing distributions of the timing data.

Implementations

Creates a new timing distribution metric.

Starts tracking time for the provided metric.

This records an error if it’s already tracking time (i.e. set_start was already called with no corresponding set_stop_and_accumulate): in that case the original start time will be preserved.

Arguments

  • start_time - Timestamp in nanoseconds.

Returns

A unique TimerId for the new timer.

Stops tracking time for the provided metric and associated timer id.

Adds a count to the corresponding bucket in the timing distribution. This will record an error if no set_start was called.

Arguments

  • id - The TimerId to associate with this timing. This allows for concurrent timing of events associated with different ids to the same timespan metric.
  • stop_time - Timestamp in nanoseconds.

Aborts a previous set_start call. No error is recorded if no set_start was called.

Arguments

  • id - The TimerId to associate with this timing. This allows for concurrent timing of events associated with different ids to the same timing distribution metric.

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 instance this method was called on is using TimeUnit::Second, 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. Reports an ErrorType::InvalidOverflow error for samples that are longer than MAX_SAMPLE_TIME.

Accumulates the provided samples in the metric.

Arguments

  • samples - A list of samples recorded by the metric. Samples must be in nanoseconds.

Notes

Reports an ErrorType::InvalidOverflow error for samples that are longer than MAX_SAMPLE_TIME.

Test-only API (exported for FFI purposes).

Gets the currently stored value as an integer.

This doesn’t clear the stored value.

Test-only API (exported for FFI purposes).

Gets the currently-stored histogram as a JSON String of the serialized value.

This doesn’t clear the stored value.

Trait Implementations

Formats the value using the given formatter. Read more

Access the stored metadata

Access the stored metadata mutable

Whether this metric should currently be recorded Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.