Mountain/RPC/
telemetry.rs

1//! # Telemetry RPC Service
2//!
3//! OTEL integration for telemetry collection.
4
5use serde::{Deserialize, Serialize};
6
7/// Telemetry service
8pub struct TelemetryService;
9
10impl TelemetryService {
11	pub fn new() -> Self { Self {} }
12}
13
14impl Default for TelemetryService {
15	fn default() -> Self { Self::new() }
16}
17
18/// Telemetry span
19pub mod spans {
20	use super::*;
21
22	/// Trace span
23	#[derive(Debug, Clone, Serialize, Deserialize)]
24	pub struct TraceSpan {
25		pub trace_id:String,
26		pub span_id:String,
27		pub parent_span_id:Option<String>,
28		pub name:String,
29		pub start_time:i64,
30		pub end_time:Option<i64>,
31	}
32}
33
34/// Service metrics
35pub mod metrics {
36	use super::*;
37
38	/// Service metrics
39	#[derive(Debug, Clone, Serialize, Deserialize)]
40	pub struct ServiceMetrics {
41		pub name:String,
42		pub count:u64,
43		pub sum:f64,
44	}
45}