pub struct Registry<P = StandardPrimitives> where
    P: Primitives, 
{ /* private fields */ }
Expand description

A high-performance metric registry.

Registry provides the ability to maintain a central listing of metrics mapped by a given key.

In many cases, K will be a composite key, where the fundamental Key type from metrics is present, and differentiation is provided by storing the metric type alongside.

Metrics themselves are represented opaquely behind H. In most cases, this would be a thread-safe handle to the underlying metrics storage that the owner of the registry can use to update the actual metric value(s) as needed. Handle, from this crate, is a solid default choice.

As well, handles have an associated generation counter which is incremented any time an entry is operated on. This generation is returned with the handle when querying the registry, and can be used in order to delete a handle from the registry, allowing callers to prune old/stale handles over time.

Registry is optimized for reads.

Implementations

Creates a new Registry.

Removes all metrics from the registry.

This operation is eventually consistent: metrics will be removed piecemeal, and this method does not ensure that callers will see the registry as entirely empty at any given point.

Gets or creates the given counter.

The op function will be called for the counter under the given key, with the counter first being created if it does not already exist.

Gets or creates the given gauge.

The op function will be called for the gauge under the given key, with the gauge first being created if it does not already exist.

Gets or creates the given histogram.

The op function will be called for the histogram under the given key, with the histogram first being created if it does not already exist.

Deletes a counter from the registry.

Returns true if the counter existed and was removed, false otherwise.

Deletes a gauge from the registry.

Returns true if the gauge existed and was removed, false otherwise.

Deletes a histogram from the registry.

Returns true if the histogram existed and was removed, false otherwise.

Visits every counter stored in this registry.

This operation does not lock the entire registry, but proceeds directly through the “subshards” that are kept internally. As a result, all subshards will be visited, but a metric that existed at the exact moment that visit_counters was called may not actually be observed if it is deleted before that subshard is reached. Likewise, a metric that is added after the call to visit_counters, but before visit_counters finishes, may also not be observed.

Visits every gauge stored in this registry.

This operation does not lock the entire registry, but proceeds directly through the “subshards” that are kept internally. As a result, all subshards will be visited, but a metric that existed at the exact moment that visit_gauges was called may not actually be observed if it is deleted before that subshard is reached. Likewise, a metric that is added after the call to visit_gauges, but before visit_gauges finishes, may also not be observed.

Visits every histogram stored in this registry.

This operation does not lock the entire registry, but proceeds directly through the “subshards” that are kept internally. As a result, all subshards will be visited, but a metric that existed at the exact moment that visit_histograms was called may not actually be observed if it is deleted before that subshard is reached. Likewise, a metric that is added after the call to visit_histograms, but before visit_histograms finishes, may also not be observed.

Gets a map of all present counters, mapped by key.

This map is a point-in-time snapshot of the registry.

Gets a map of all present gauges, mapped by key.

This map is a point-in-time snapshot of the registry.

Gets a map of all present histograms, mapped by key.

This map is a point-in-time snapshot of the registry.

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 alignment of pointer.

The type for initializers.

Initializes a with the given initializer. Read more

Dereferences the given pointer. Read more

Mutably dereferences the given pointer. Read more

Drops the object pointed to by the given pointer. Read more

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.