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;