[−][src]Struct prometheus::core::MetricVec
A Collector
to bundle metrics of the same name that
differ in their label values. It is usually not used directly but as a
building block for implementations of vectors of a given metric
type. GaugeVec
and CounterVec
are examples already provided in this package.
Implementations
impl<P: Atomic> MetricVec<CounterVecBuilder<P>>
[src]
pub fn new(opts: Opts, label_names: &[&str]) -> Result<Self>
[src]
Create a new GenericCounterVec
based on the provided
Opts
and partitioned by the given label names. At least one label name must be
provided.
pub fn local(&self) -> GenericLocalCounterVec<P>
[src]
Return a GenericLocalCounterVec
for single thread usage.
impl<P: Atomic> MetricVec<GaugeVecBuilder<P>>
[src]
pub fn new(opts: Opts, label_names: &[&str]) -> Result<Self>
[src]
Create a new GenericGaugeVec
based on the provided
Opts
and partitioned by the given label names. At least one label name must
be provided.
impl MetricVec<HistogramVecBuilder>
[src]
pub fn new(opts: HistogramOpts, label_names: &[&str]) -> Result<HistogramVec>
[src]
Create a new HistogramVec
based on the provided
HistogramOpts
and partitioned by the given label names. At least
one label name must be provided.
pub fn local(&self) -> LocalHistogramVec
[src]
Return a LocalHistogramVec
for single thread usage.
impl<T: MetricVecBuilder> MetricVec<T>
[src]
pub fn create(
metric_type: MetricType,
new_metric: T,
opts: T::P
) -> Result<MetricVec<T>>
[src]
metric_type: MetricType,
new_metric: T,
opts: T::P
) -> Result<MetricVec<T>>
create
creates a MetricVec with description desc
, a metric type metric_type
and
a MetricVecBuilder new_metric
.
pub fn get_metric_with_label_values(&self, vals: &[&str]) -> Result<T::M>
[src]
get_metric_with_label_values
returns the Metric
for the given slice
of label values (same order as the VariableLabels in Desc). If that combination of
label values is accessed for the first time, a new Metric
is created.
It is possible to call this method without using the returned Metric
to only create the new Metric
but leave it at its start value (e.g. a
Histogram
without any observations).
Keeping the Metric
for later use is possible (and should be considered
if performance is critical), but keep in mind that Reset, DeleteLabelValues and Delete can
be used to delete the Metric
from the MetricVec. In that case, the
Metric
will still exist, but it will not be exported anymore, even if a
Metric
with the same label values is created later. See also the
CounterVec example.
An error is returned if the number of label values is not the same as the number of VariableLabels in Desc.
Note that for more than one label value, this method is prone to mistakes caused by an incorrect order of arguments. Consider get_metric_with(labels) as an alternative to avoid that type of mistake. For higher label numbers, the latter has a much more readable (albeit more verbose) syntax, but it comes with a performance overhead (for creating and processing the Labels map).
pub fn get_metric_with(&self, labels: &HashMap<&str, &str>) -> Result<T::M>
[src]
get_metric_with
returns the Metric
for the given Labels map (the
label names must match those of the VariableLabels in Desc). If that label map is
accessed for the first time, a new Metric
is created. Implications of
creating a Metric
without using it and keeping the
Metric
for later use are the same as for GetMetricWithLabelValues.
An error is returned if the number and names of the Labels are inconsistent with those of the VariableLabels in Desc.
This method is used for the same purpose as
get_metric_with_label_values
. See there for pros and cons of the two
methods.
pub fn with_label_values(&self, vals: &[&str]) -> T::M
[src]
with_label_values
works as get_metric_with_label_values
, but panics if an error
occurs. The method allows neat syntax like:
httpReqs.with_label_values("404", "POST").inc()
pub fn with(&self, labels: &HashMap<&str, &str>) -> T::M
[src]
with
works as get_metric_with
, but panics if an error occurs. The method allows
neat syntax like:
httpReqs.with(Labels{"status":"404", "method":"POST"}).inc()
pub fn remove_label_values(&self, vals: &[&str]) -> Result<()>
[src]
remove_label_values
removes the metric where the variable labels are the same
as those passed in as labels (same order as the VariableLabels in Desc). It
returns true if a metric was deleted.
It returns an error if the number of label values is not the same as the number of VariableLabels in Desc.
Note that for more than one label value, this method is prone to mistakes caused by an incorrect order of arguments. Consider delete(labels) as an alternative to avoid that type of mistake. For higher label numbers, the latter has a much more readable (albeit more verbose) syntax, but it comes with a performance overhead (for creating and processing the Labels map).
pub fn remove(&self, labels: &HashMap<&str, &str>) -> Result<()>
[src]
remove
removes the metric where the variable labels are the same as those
passed in as labels. It returns true if a metric was deleted.
It returns an error if the number and names of the Labels are inconsistent with those of the VariableLabels in the Desc of the MetricVec.
This method is used for the same purpose as delete_label_values
. See
there for pros and cons of the two methods.
pub fn reset(&self)
[src]
reset
deletes all metrics in this vector.
Trait Implementations
impl<T: Clone + MetricVecBuilder> Clone for MetricVec<T>
[src]
impl<T: MetricVecBuilder> Collector for MetricVec<T>
[src]
impl<T: MetricVecBuilder> Debug for MetricVec<T>
[src]
Auto Trait Implementations
impl<T> !RefUnwindSafe for MetricVec<T>
impl<T> Send for MetricVec<T> where
<T as MetricVecBuilder>::M: Send + Sync,
<T as MetricVecBuilder>::P: Send + Sync,
<T as MetricVecBuilder>::M: Send + Sync,
<T as MetricVecBuilder>::P: Send + Sync,
impl<T> Sync for MetricVec<T> where
<T as MetricVecBuilder>::M: Send + Sync,
<T as MetricVecBuilder>::P: Send + Sync,
<T as MetricVecBuilder>::M: Send + Sync,
<T as MetricVecBuilder>::P: Send + Sync,
impl<T> Unpin for MetricVec<T>
impl<T> !UnwindSafe for MetricVec<T>
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,
fn borrow_mut(&mut self) -> &mut T
[src]
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,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,