Struct glean_core::metrics::TimingDistributionMetric
source · [−]pub struct TimingDistributionMetric { /* private fields */ }
Expand description
A timing distribution metric.
Timing distributions are used to accumulate and store time measurement, for analyzing distributions of the timing data.
Implementations
sourceimpl TimingDistributionMetric
impl TimingDistributionMetric
sourcepub fn new(meta: CommonMetricData, time_unit: TimeUnit) -> Self
pub fn new(meta: CommonMetricData, time_unit: TimeUnit) -> Self
Creates a new timing distribution metric.
sourcepub fn set_start(&mut self, start_time: u64) -> TimerId
pub fn set_start(&mut self, start_time: u64) -> TimerId
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.
sourcepub fn set_stop_and_accumulate(
&mut self,
glean: &Glean,
id: TimerId,
stop_time: u64
)
pub fn set_stop_and_accumulate(
&mut self,
glean: &Glean,
id: TimerId,
stop_time: u64
)
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
- TheTimerId
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.
sourcepub fn accumulate_samples_signed(&mut self, glean: &Glean, samples: Vec<i64>)
pub fn accumulate_samples_signed(&mut self, glean: &Glean, 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
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
.
sourcepub fn accumulate_raw_samples_nanos(&mut self, glean: &Glean, samples: &[u64])
pub fn accumulate_raw_samples_nanos(&mut self, glean: &Glean, samples: &[u64])
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
.
sourcepub fn test_get_value(
&self,
glean: &Glean,
storage_name: &str
) -> Option<DistributionData>
pub fn test_get_value(
&self,
glean: &Glean,
storage_name: &str
) -> Option<DistributionData>
Test-only API (exported for FFI purposes).
Gets the currently stored value as an integer.
This doesn’t clear the stored value.
Trait Implementations
sourceimpl Debug for TimingDistributionMetric
impl Debug for TimingDistributionMetric
sourceimpl MetricType for TimingDistributionMetric
impl MetricType for TimingDistributionMetric
sourcefn meta(&self) -> &CommonMetricData
fn meta(&self) -> &CommonMetricData
Access the stored metadata
sourcefn meta_mut(&mut self) -> &mut CommonMetricData
fn meta_mut(&mut self) -> &mut CommonMetricData
Access the stored metadata mutable
sourcefn should_record(&self, glean: &Glean) -> bool
fn should_record(&self, glean: &Glean) -> bool
Whether this metric should currently be recorded Read more
Auto Trait Implementations
impl RefUnwindSafe for TimingDistributionMetric
impl Send for TimingDistributionMetric
impl Sync for TimingDistributionMetric
impl Unpin for TimingDistributionMetric
impl UnwindSafe for TimingDistributionMetric
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more