47 lines
1.2 KiB
Rust
47 lines
1.2 KiB
Rust
|
|
// vapora-telemetry: Observability, tracing, and metrics collection
|
||
|
|
// Phase 4 Sprint 4: OpenTelemetry integration with Jaeger
|
||
|
|
|
||
|
|
pub mod error;
|
||
|
|
pub mod tracer;
|
||
|
|
pub mod spans;
|
||
|
|
pub mod metrics;
|
||
|
|
|
||
|
|
pub use error::{Result, TelemetryError};
|
||
|
|
pub use tracer::{TelemetryConfig, TelemetryInitializer};
|
||
|
|
pub use spans::{
|
||
|
|
TaskSpan, AgentSpan, RoutingSpan, SwarmSpan, AnalyticsSpan, KGSpan,
|
||
|
|
};
|
||
|
|
pub use metrics::{MetricsCollector, TaskMetrics, ProviderMetrics, SystemMetrics, TokenMetrics};
|
||
|
|
|
||
|
|
/// Initialize telemetry system with default configuration
|
||
|
|
pub fn init() -> Result<()> {
|
||
|
|
TelemetryInitializer::init(TelemetryConfig::default())
|
||
|
|
}
|
||
|
|
|
||
|
|
/// Initialize telemetry with custom configuration
|
||
|
|
pub fn init_with_config(config: TelemetryConfig) -> Result<()> {
|
||
|
|
TelemetryInitializer::init(config)
|
||
|
|
}
|
||
|
|
|
||
|
|
/// Initialize minimal telemetry for testing
|
||
|
|
pub fn init_noop() -> Result<()> {
|
||
|
|
TelemetryInitializer::init_noop()
|
||
|
|
}
|
||
|
|
|
||
|
|
/// Shutdown telemetry system
|
||
|
|
pub fn shutdown() -> Result<()> {
|
||
|
|
TelemetryInitializer::shutdown()
|
||
|
|
}
|
||
|
|
|
||
|
|
#[cfg(test)]
|
||
|
|
mod tests {
|
||
|
|
use super::*;
|
||
|
|
|
||
|
|
#[test]
|
||
|
|
fn test_metrics_collector_creation() {
|
||
|
|
let collector = MetricsCollector::new();
|
||
|
|
let metrics = collector.get_task_metrics();
|
||
|
|
assert_eq!(metrics.total_tasks, 0);
|
||
|
|
}
|
||
|
|
}
|