Skip to main content

swarm_engine_core/telemetry/
mod.rs

1//! Telemetry - Swarm Engine 観測層
2//!
3//! tracing Layer パターンによる観測データの配信。
4//! Orchestrator は tracing マクロでイベントを発行するだけ。
5//! UI や TUI などの Consumer は broadcast channel から受信するだけ。
6//!
7//! ## 設計思想
8//!
9//! - **本体のパフォーマンス維持**: Subscriber がなければオーバーヘッドほぼゼロ
10//! - **疎結合**: UI がなくても本体は動作する
11//! - **拡張性**: GUI/TUI/Prometheus など Consumer は自由に追加可能
12//!
13//! ## 使い方
14//!
15//! ```ignore
16//! use swarm_engine_core::telemetry::{SwarmLayer, SwarmEvent, create_swarm_layer};
17//! use tracing_subscriber::prelude::*;
18//!
19//! // Layer を作成
20//! let (layer, tx, rx) = create_swarm_layer(1024);
21//!
22//! // tracing に登録
23//! tracing_subscriber::registry()
24//!     .with(layer)
25//!     .with(tracing_subscriber::fmt::layer())
26//!     .init();
27//!
28//! // 追加の Consumer は tx.subscribe() で Receiver を取得
29//! let rx2 = tx.subscribe();
30//! ```
31
32mod event;
33mod layer;
34
35pub use event::{ManagerState, SwarmEvent, TickMetrics};
36pub use layer::{create_swarm_layer, SwarmLayer};