// Copyright 2022 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//! This crate serves to provide metrics bindings to be used throughout the codebase.
//! For binaries that wish to use metrics, the intention is that an independent metrics
//! process will run (main loop in the controller mod), and receive requests via a tube from
//! another process.
//!
//! At head, metrics requests are ignored. However, a branching codebase can choose to implement
//! their own handler which processes and uploads metrics requests as it sees fit, by setting the
//! appropriate RequestHandler.
mod controller;
mod local_stats;
pub mod sys;
pub use controller::MetricsController;
pub use metrics_events::MetricEventType;
pub use metrics_product::*;
pub type RequestHandler = MetricsRequestHandler;
pub use local_stats::collect_scoped_byte_latency_stat;
pub use local_stats::timed_scope;
pub use local_stats::BytesLatencyStats;
pub use local_stats::CallOnDrop;
pub use local_stats::DetailedHistogram;
pub use local_stats::GetStatsForOp;
pub use local_stats::Histogram;
pub use local_stats::Limits;
pub use local_stats::NumberType;
pub use local_stats::SimpleStat;
pub use local_stats::SummaryStats;