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 44 45 46 47 48 49 50 51
//! A Rust implementation of goodmetrics; a low-overhead, expressive metrics
//! infrastructure built for web services.
//!
//! [`goodmetrics`] is a metrics recording toolbox built on [tonic] and [gRPC].
//! It focuses on your service first - metrics are never more important than your
//! users. After that, **high performance**, **low predictable overhead**, and
//! **ease of maintenance** are prioritized.
//!
//! # Examples
//!
//! Some basic examples can be found under `src/benches`.
//!
//! # Getting Started
//!
//! Check out [goodmetrics](https://github.com/kvc0/goodmetrics) documentation for
//! database setup and general ecosystem information.
//!
//! # Feature Flags
//!
#[deny(missing_docs)]
pub mod aggregation;
#[deny(missing_docs)]
pub mod allocator;
#[deny(missing_docs)]
pub mod downstream;
#[deny(missing_docs)]
mod gauge;
#[deny(missing_docs)]
mod gauge_group;
#[cfg(feature = "introspect")]
#[deny(missing_docs)]
pub mod introspect;
#[deny(missing_docs)]
mod metrics;
#[deny(missing_docs)]
mod metrics_factory;
#[deny(missing_docs)]
pub mod pipeline;
#[deny(missing_docs)]
mod types;
pub use gauge::{Gauge, GaugeDimensions, StatisticSetGauge};
pub use gauge_group::GaugeGroup;
pub use metrics::{DimensionGuard, Metrics, MetricsBehavior, Timer};
pub use metrics_factory::MetricsFactory;
pub use types::{Dimension, Distribution, Measurement, Name, Observation};
/// Internal generated types - ideally you shouldn't need to do much with them.
/// Nevertheless, they are exported in case you need them.
pub mod proto;