1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
//! Metric type implementations.
pub mod counter;
pub mod exemplar;
pub mod family;
pub mod gauge;
pub mod histogram;
pub mod info;
/// A metric that is aware of its Open Metrics metric type.
pub trait TypedMetric {
/// The OpenMetrics metric type.
const TYPE: MetricType = MetricType::Unknown;
}
/// OpenMetrics metric type.
#[derive(Clone, Copy, Debug)]
#[allow(missing_docs)]
pub enum MetricType {
Counter,
Gauge,
Histogram,
Info,
Unknown,
// Not (yet) supported metric types.
//
// GaugeHistogram,
// StateSet,
// Summary
}
impl MetricType {
/// Returns the given metric type's str representation.
pub fn as_str(&self) -> &str {
match self {
MetricType::Counter => "counter",
MetricType::Gauge => "gauge",
MetricType::Histogram => "histogram",
MetricType::Info => "info",
MetricType::Unknown => "unknown",
}
}
}