Skip to main content

hyperi_rustlib/metrics/dfe_groups/
mod.rs

1// Project:   hyperi-rustlib
2// File:      src/metrics/dfe_groups/mod.rs
3// Purpose:   DFE-specific metric groups
4// Language:  Rust
5//
6// License:   BUSL-1.1
7// Copyright: (c) 2026 HYPERI PTY LIMITED
8
9//! Composable DFE metric groups.
10//!
11//! Opt-in metric structs for DFE pipeline applications. Each group registers
12//! standardised metrics using the [`MetricsManager`](super::MetricsManager)
13//! namespace prefix (e.g. `dfe_loader_buffer_bytes`).
14//!
15//! Feature-gated behind `metrics-dfe`. Non-DFE apps are unaffected.
16//!
17//! ## Usage
18//!
19//! ```rust,no_run
20//! use hyperi_rustlib::metrics::MetricsManager;
21//! use hyperi_rustlib::metrics::dfe_groups::*;
22//!
23//! let mgr = MetricsManager::new("dfe_loader");
24//! let app = AppMetrics::new(&mgr, env!("CARGO_PKG_VERSION"), "abc123");
25//! let buffer = BufferMetrics::new(&mgr);
26//! let consumer = ConsumerMetrics::new(&mgr);
27//! let sink = SinkMetrics::new(&mgr);
28//! let cb = CircuitBreakerMetrics::new(&mgr);
29//! let bp = BackpressureMetrics::new(&mgr);
30//!
31//! app.record_received(100);
32//! buffer.record_flush(0.042, "size");
33//! consumer.set_lag("events", 3, 1500);
34//! sink.record_duration("clickhouse", 0.015);
35//! cb.record_transition("db.events", "open");
36//! bp.record_event();
37//! ```
38
39mod app;
40mod backpressure;
41mod buffer;
42mod circuit_breaker;
43mod consumer;
44mod enrichment;
45mod schema_cache;
46mod sink;
47
48pub use app::AppMetrics;
49pub use backpressure::BackpressureMetrics;
50pub use buffer::BufferMetrics;
51pub use circuit_breaker::CircuitBreakerMetrics;
52pub use consumer::ConsumerMetrics;
53pub use enrichment::EnrichmentMetrics;
54pub use schema_cache::SchemaCacheMetrics;
55pub use sink::SinkMetrics;