Skip to main content

goodmetrics/
lib.rs

1//! A Rust implementation of goodmetrics; a low-overhead, expressive metrics
2//! infrastructure built for web services.
3//!
4//! [`goodmetrics`] is a metrics recording toolbox built on [tonic] and [gRPC].
5//! It focuses on your service first - metrics are never more important than your
6//! users. After that, **high performance**, **low predictable overhead**, and
7//! **ease of maintenance** are prioritized.
8//!
9//! # Examples
10//!
11//! Some basic examples can be found under `src/benches`.
12//!
13//! # Getting Started
14//!
15//! Check out [goodmetrics](https://github.com/kvc0/goodmetrics) documentation for
16//! database setup and general ecosystem information.
17//!
18//! # Feature Flags
19//!
20
21#[deny(missing_docs)]
22pub mod aggregation;
23#[deny(missing_docs)]
24pub mod allocator;
25#[deny(missing_docs)]
26pub mod downstream;
27#[deny(missing_docs)]
28mod gauge;
29#[deny(missing_docs)]
30mod gauge_factory;
31#[deny(missing_docs)]
32mod gauge_group;
33#[cfg(feature = "introspect")]
34#[deny(missing_docs)]
35pub mod introspect;
36#[deny(missing_docs)]
37mod metrics;
38#[deny(missing_docs)]
39mod metrics_factory;
40#[deny(missing_docs)]
41pub mod pipeline;
42#[deny(missing_docs)]
43mod types;
44
45pub use gauge::{GaugeDimensions, HistogramHandle, StatisticSetHandle, SumHandle, TimeGuard};
46pub use gauge_factory::{default_gauge_factory, GaugeFactory};
47pub use gauge_group::GaugeGroup;
48pub use metrics::{DimensionGuard, Metrics, MetricsBehavior, Timer};
49pub use metrics_factory::MetricsFactory;
50pub use types::{Dimension, Distribution, Measurement, Name, Observation};
51
52/// Internal generated types - ideally you shouldn't need to do much with them.
53/// Nevertheless, they are exported in case you need them.
54pub mod proto;