// vapora-telemetry: Observability, tracing, and metrics collection
// Phase 4 Sprint 4: OpenTelemetry integration with Jaeger
pub mod error;
pub mod metrics;
pub mod spans;
pub mod tracer;
pub use error::{Result, TelemetryError};
pub use metrics::{MetricsCollector, ProviderMetrics, SystemMetrics, TaskMetrics, TokenMetrics};
pub use spans::{AgentSpan, AnalyticsSpan, KGSpan, RoutingSpan, SwarmSpan, TaskSpan};
pub use tracer::{TelemetryConfig, TelemetryInitializer};
/// 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);