add observability prelude module

The reason to do a wildcard import of the prelude instead of something
like

    // src/observability/prelude.rs
    pub(crate) use tracing::*;

    // elsewhere
    use crate::observability::prelude as o;
    o::warn!("something");

is that we can't import traits like tracing::Instrument that way.

I'm generally not a fan of wildcard imports, but I think it can be okay
when it's a module in the same crate. There aren't really an backwards
compatibility hazards because it's your own code.
This commit is contained in:
Olivia Lee 2024-12-14 01:01:32 -08:00
parent 41c6fc8029
commit bc5f31b3a2
No known key found for this signature in database
GPG key ID: 54D568A15B9CD1F9
2 changed files with 16 additions and 0 deletions

View file

@ -38,6 +38,8 @@ use crate::{
utils::error::Result,
};
pub(crate) mod prelude;
/// Globally accessible metrics state
pub(crate) static METRICS: LazyLock<Metrics> = LazyLock::new(Metrics::new);

View file

@ -0,0 +1,14 @@
//! Common tracing-related items intended to be wildcard imported in most
//! modules:
//!
//! ```
//! use crate::observability::prelude::*;
//! ```
//!
//! This avoids diff churn in the imports when adding/removing log statements.
//!
//! [`tracing`] is re-exported as `t`, to avoid name collisions.
#![allow(unused)]
pub(crate) use tracing as t;
pub(crate) use tracing::Instrument;