Struct prometheus::core::Opts
source · pub struct Opts {
pub namespace: String,
pub subsystem: String,
pub name: String,
pub help: String,
pub const_labels: HashMap<String, String>,
pub variable_labels: Vec<String>,
}
Expand description
A struct that bundles the options for creating most Metric
types.
Fields§
§namespace: String
namespace, subsystem, and name are components of the fully-qualified
name of the Metric
(created by joining these components with
“_”). Only Name is mandatory, the others merely help structuring the
name. Note that the fully-qualified name of the metric must be a
valid Prometheus metric name.
subsystem: String
namespace, subsystem, and name are components of the fully-qualified
name of the Metric
(created by joining these components with
“_”). Only Name is mandatory, the others merely help structuring the
name. Note that the fully-qualified name of the metric must be a
valid Prometheus metric name.
name: String
namespace, subsystem, and name are components of the fully-qualified
name of the Metric
(created by joining these components with
“_”). Only Name is mandatory, the others merely help structuring the
name. Note that the fully-qualified name of the metric must be a
valid Prometheus metric name.
help: String
help provides information about this metric. Mandatory!
Metrics with the same fully-qualified name must have the same Help string.
const_labels: HashMap<String, String>
const_labels are used to attach fixed labels to this metric. Metrics with the same fully-qualified name must have the same label names in their ConstLabels.
Note that in most cases, labels have a value that varies during the
lifetime of a process. Those labels are usually managed with a metric
vector collector (like CounterVec, GaugeVec). ConstLabels
serve only special purposes. One is for the special case where the
value of a label does not change during the lifetime of a process,
e.g. if the revision of the running binary is put into a
label. Another, more advanced purpose is if more than one Collector
needs to collect Metrics with the same fully-qualified name. In that
case, those Metrics must differ in the values of their
ConstLabels. See the Collector
examples.
If the value of a label never changes (not even between binaries), that label most likely should not be a label at all (but part of the metric name).
variable_labels: Vec<String>
variable_labels contains names of labels for which the metric maintains variable values. Metrics with the same fully-qualified name must have the same label names in their variable_labels.
Note that variable_labels is used in MetricVec
. To create a single
metric must leave it empty.
Implementations§
source§impl Opts
impl Opts
sourcepub fn new<S1: Into<String>, S2: Into<String>>(name: S1, help: S2) -> Opts
pub fn new<S1: Into<String>, S2: Into<String>>(name: S1, help: S2) -> Opts
new
creates the Opts with the name
and help
arguments.
sourcepub fn const_labels(self, const_labels: HashMap<String, String>) -> Self
pub fn const_labels(self, const_labels: HashMap<String, String>) -> Self
const_labels
sets the const labels.
sourcepub fn const_label<S1: Into<String>, S2: Into<String>>(
self,
name: S1,
value: S2,
) -> Self
pub fn const_label<S1: Into<String>, S2: Into<String>>( self, name: S1, value: S2, ) -> Self
const_label
adds a const label.
sourcepub fn variable_labels(self, variable_labels: Vec<String>) -> Self
pub fn variable_labels(self, variable_labels: Vec<String>) -> Self
variable_labels
sets the variable labels.
sourcepub fn variable_label<S: Into<String>>(self, name: S) -> Self
pub fn variable_label<S: Into<String>>(self, name: S) -> Self
variable_label
adds a variable label.
Trait Implementations§
source§impl From<Opts> for HistogramOpts
impl From<Opts> for HistogramOpts
source§fn from(opts: Opts) -> HistogramOpts
fn from(opts: Opts) -> HistogramOpts
Auto Trait Implementations§
impl Freeze for Opts
impl RefUnwindSafe for Opts
impl Send for Opts
impl Sync for Opts
impl Unpin for Opts
impl UnwindSafe for Opts
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)