saluki_core/observability/
mod.rs

1//! Internal observability support.
2
3use saluki_metrics::MetricsBuilder;
4
5use crate::components::ComponentContext;
6
7pub mod metrics;
8
9/// Helper trait for working with [`MetricsBuilder`].
10pub trait ComponentMetricsExt {
11    /// Creates a new instance with default tags derived from the given component context.
12    ///
13    /// Sets the following default tags:
14    /// - `component_id` (the component ID, `ComponentContext::component_id`)
15    /// - `component_type` (the component type, `ComponentContext::component_type`)
16    fn from_component_context(context: &ComponentContext) -> Self;
17}
18
19impl ComponentMetricsExt for MetricsBuilder {
20    fn from_component_context(context: &ComponentContext) -> Self {
21        MetricsBuilder::default()
22            .add_default_tag(("component_id", context.component_id().to_string()))
23            .add_default_tag(("component_type", context.component_type().as_str()))
24    }
25}