pub struct SessionMetrics {Show 28 fields
pub session_id: String,
pub node_id: String,
pub created_at: String,
pub model: String,
pub total_input_tokens: u64,
pub total_output_tokens: u64,
pub estimated_cost: f64,
pub total_chars: u64,
pub total_tool_calls: u32,
pub tool_breakdown: HashMap<String, u32>,
pub tool_fail_rate: f64,
pub total_failed: u32,
pub total_duration_ms: u64,
pub total_llm_ms: u64,
pub total_tool_ms: u64,
pub total_turns: u32,
pub avg_turn_ms: u64,
pub p50_turn_ms: u64,
pub p95_turn_ms: u64,
pub p99_turn_ms: u64,
pub outcome: SessionOutcome,
pub error_count: u32,
pub total_plan_updates: u32,
pub total_approvals: u32,
pub custom: Value,
pub parent_session_id: Option<String>,
pub session_type: String,
pub turns: Vec<TurnMetrics>,
}Expand description
Accumulated session metrics. Written incrementally to session_metrics.json
at the end of each turn.
Fields§
§session_id: String§node_id: String§created_at: String§model: String§total_input_tokens: u64§total_output_tokens: u64§estimated_cost: f64§total_chars: u64§total_tool_calls: u32§tool_breakdown: HashMap<String, u32>§tool_fail_rate: f64§total_failed: u32Running total of failed tool calls.
total_duration_ms: u64§total_llm_ms: u64§total_tool_ms: u64§total_turns: u32§avg_turn_ms: u64§p50_turn_ms: u64§p95_turn_ms: u64§p99_turn_ms: u64§outcome: SessionOutcome§error_count: u32§total_plan_updates: u32§total_approvals: u32§custom: Value§parent_session_id: Option<String>§session_type: String§turns: Vec<TurnMetrics>Implementations§
Source§impl SessionMetrics
impl SessionMetrics
Sourcepub fn new(session_id: String, node_id: String, model: String) -> SessionMetrics
pub fn new(session_id: String, node_id: String, model: String) -> SessionMetrics
Create a new session metrics accumulator (empty turns).
Sourcepub fn append_turn(&mut self, turn: TurnMetrics)
pub fn append_turn(&mut self, turn: TurnMetrics)
Append a turn and recompute session-level aggregates.
Sourcepub fn finalize(&mut self, outcome: SessionOutcome)
pub fn finalize(&mut self, outcome: SessionOutcome)
Finalize the session — recompute percentiles and set outcome.
Trait Implementations§
Source§impl Clone for SessionMetrics
impl Clone for SessionMetrics
Source§fn clone(&self) -> SessionMetrics
fn clone(&self) -> SessionMetrics
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SessionMetrics
impl Debug for SessionMetrics
Source§impl<'de> Deserialize<'de> for SessionMetrics
impl<'de> Deserialize<'de> for SessionMetrics
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<SessionMetrics, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<SessionMetrics, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serialize for SessionMetrics
impl Serialize for SessionMetrics
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl Freeze for SessionMetrics
impl RefUnwindSafe for SessionMetrics
impl Send for SessionMetrics
impl Sync for SessionMetrics
impl Unpin for SessionMetrics
impl UnsafeUnpin for SessionMetrics
impl UnwindSafe for SessionMetrics
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more