pub struct AnalyticsChartData {Show 28 fields
pub agent_tokens: Vec<(String, f64)>,
pub agent_messages: Vec<(String, f64)>,
pub agent_tool_calls: Vec<(String, f64)>,
pub workspace_tokens: Vec<(String, f64)>,
pub workspace_messages: Vec<(String, f64)>,
pub source_tokens: Vec<(String, f64)>,
pub source_messages: Vec<(String, f64)>,
pub daily_tokens: Vec<(String, f64)>,
pub daily_messages: Vec<(String, f64)>,
pub model_tokens: Vec<(String, f64)>,
pub coverage_pct: f64,
pub total_messages: i64,
pub total_api_tokens: i64,
pub total_tool_calls: i64,
pub agent_count: usize,
pub heatmap_days: Vec<(String, f64)>,
pub total_content_tokens: i64,
pub daily_content_tokens: Vec<(String, f64)>,
pub daily_tool_calls: Vec<(String, f64)>,
pub total_plan_messages: i64,
pub daily_plan_messages: Vec<(String, f64)>,
pub session_scatter: Vec<SessionScatterPoint>,
pub tool_rows: Vec<ToolRow>,
pub agent_plan_messages: Vec<(String, f64)>,
pub plan_message_pct: f64,
pub plan_api_token_share: f64,
pub auto_rebuilt: bool,
pub auto_rebuild_error: Option<String>,
}Expand description
Pre-computed chart data for the analytics views.
Loaded once when entering the analytics surface, refreshed on filter changes.
Fields§
§agent_tokens: Vec<(String, f64)>Per-agent token totals: (agent_slug, api_tokens_total) sorted desc.
agent_messages: Vec<(String, f64)>Per-agent message counts: (agent_slug, message_count) sorted desc.
agent_tool_calls: Vec<(String, f64)>Per-agent tool call counts: (agent_slug, tool_call_count) sorted desc.
workspace_tokens: Vec<(String, f64)>Per-workspace token totals: (workspace_path, api_tokens_total) sorted desc.
workspace_messages: Vec<(String, f64)>Per-workspace message counts: (workspace_path, message_count) sorted desc.
source_tokens: Vec<(String, f64)>Per-source token totals: (source_id, api_tokens_total) sorted desc.
source_messages: Vec<(String, f64)>Per-source message counts: (source_id, message_count) sorted desc.
daily_tokens: Vec<(String, f64)>Daily timeseries: (label, api_tokens_total) ordered by date.
daily_messages: Vec<(String, f64)>Daily timeseries: (label, message_count) ordered by date.
model_tokens: Vec<(String, f64)>Per-model token totals: (model_family, grand_total_tokens) sorted desc.
coverage_pct: f64Coverage percentage (0..100).
total_messages: i64Total messages across all data.
total_api_tokens: i64Total API tokens across all data.
total_tool_calls: i64Total tool calls across all data.
agent_count: usizeNumber of unique agents seen.
heatmap_days: Vec<(String, f64)>Per-day heatmap values: (day_label, normalized_value 0..1).
total_content_tokens: i64Total content-estimated tokens across all data.
daily_content_tokens: Vec<(String, f64)>Daily content tokens: (label, content_tokens_est_total).
daily_tool_calls: Vec<(String, f64)>Daily tool calls: (label, tool_call_count).
total_plan_messages: i64Total plan messages.
daily_plan_messages: Vec<(String, f64)>Daily plan messages: (label, plan_message_count).
session_scatter: Vec<SessionScatterPoint>Per-session points for Explorer scatter (x=messages, y=API tokens).
tool_rows: Vec<ToolRow>Full tool report rows (agent → calls, msgs, tokens, derived metrics).
agent_plan_messages: Vec<(String, f64)>Per-agent plan message counts: (agent_slug, plan_message_count) sorted desc.
plan_message_pct: f64Plan message share (% of total messages that are plan messages).
Plan API token share (% of API tokens attributed to plans).
auto_rebuilt: boolTrue when analytics rollups were auto-rebuilt during the latest load.
auto_rebuild_error: Option<String>Captures auto-rebuild errors; data may still be partially available.
Implementations§
Trait Implementations§
Source§impl Clone for AnalyticsChartData
impl Clone for AnalyticsChartData
Source§fn clone(&self) -> AnalyticsChartData
fn clone(&self) -> AnalyticsChartData
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AnalyticsChartData
impl Debug for AnalyticsChartData
Source§impl Default for AnalyticsChartData
impl Default for AnalyticsChartData
Source§fn default() -> AnalyticsChartData
fn default() -> AnalyticsChartData
Auto Trait Implementations§
impl Freeze for AnalyticsChartData
impl RefUnwindSafe for AnalyticsChartData
impl Send for AnalyticsChartData
impl Sync for AnalyticsChartData
impl Unpin for AnalyticsChartData
impl UnsafeUnpin for AnalyticsChartData
impl UnwindSafe for AnalyticsChartData
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, _span: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> Self
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().