1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//! Telemetry module for OpenTelemetry and Prometheus integration
//!
//! This module provides comprehensive observability for AbsurderSQL including:
//! - **Metrics**: Prometheus-compatible metrics (counters, histograms, gauges)
//! - **Traces**: Distributed tracing via OpenTelemetry OTLP
//! - **Configuration**: Flexible telemetry setup
//!
//! # Example
//! ```no_run
//! use absurder_sql::telemetry::{TelemetryConfig, Metrics};
//!
//! let config = TelemetryConfig::new(
//! "absurdersql".to_string(),
//! "http://localhost:4317".to_string(),
//! );
//!
//! // Validate configuration
//! config.validate().expect("Invalid telemetry config");
//!
//! // Create metrics
//! let metrics = Metrics::new().expect("Failed to create metrics");
//! metrics.queries_total().inc();
//!
//! // Create tracer (native only)
//! # #[cfg(not(target_arch = "wasm32"))]
//! # {
//! let provider = absurder_sql::telemetry::TracerProvider::new(&config).expect("Failed to create tracer");
//! let tracer = provider.tracer("database");
//! let span = tracer.start_span("execute_query");
//! # }
//! ```
// Re-export main types
pub use TelemetryConfig;
pub use Metrics;
pub use ;
pub use TracerProvider;
pub use WasmSpanExporter;
pub use ;