pub struct AnalyticsData {Show 13 fields
pub trends: TrendsData,
pub forecast: ForecastData,
pub patterns: UsagePatterns,
pub insights: Vec<String>,
pub tool_chains: Option<ToolChainAnalysis>,
pub cost_suggestions: Vec<CostSuggestion>,
pub anomalies: Vec<Anomaly>,
pub daily_spikes: Vec<DailyCostAnomaly>,
pub tool_token_stats: Vec<ToolTokenStat>,
pub sessions_in_period: usize,
pub computed_at: DateTime<Utc>,
pub period: Period,
pub anomaly_thresholds: AnomalyThresholds,
}Expand description
Complete analytics data for a period
Fields§
§trends: TrendsDataTime series trends
forecast: ForecastDataUsage forecasting
patterns: UsagePatternsBehavioral patterns
insights: Vec<String>Actionable insights
tool_chains: Option<ToolChainAnalysis>Tool chain bigram/trigram analysis
cost_suggestions: Vec<CostSuggestion>Cost optimization suggestions
anomalies: Vec<Anomaly>Session-level anomalies (Z-score based)
daily_spikes: Vec<DailyCostAnomaly>Daily cost spikes
tool_token_stats: Vec<ToolTokenStat>Per-tool token and cost breakdown for the period
sessions_in_period: usizeNumber of sessions in the analyzed period
computed_at: DateTime<Utc>Timestamp of computation
period: PeriodPeriod analyzed
anomaly_thresholds: AnomalyThresholdsEffective anomaly thresholds used for this computation
Implementations§
Source§impl AnalyticsData
impl AnalyticsData
Sourcepub fn compute(sessions: &[Arc<SessionMetadata>], period: Period) -> Self
pub fn compute(sessions: &[Arc<SessionMetadata>], period: Period) -> Self
Compute analytics from sessions (sync function)
This is a sync function for simplicity. If computation exceeds 16ms
(render deadline), caller should offload to tokio::task::spawn_blocking.
§Performance
Target: <100ms for 1000 sessions over 30 days
Sourcepub fn compute_with_thresholds(
sessions: &[Arc<SessionMetadata>],
period: Period,
thresholds: &AnomalyThresholds,
) -> Self
pub fn compute_with_thresholds( sessions: &[Arc<SessionMetadata>], period: Period, thresholds: &AnomalyThresholds, ) -> Self
Compute analytics using custom anomaly thresholds from settings.json.
Sourcepub fn from_sessions_only(
sessions: &[Arc<SessionMetadata>],
period: Period,
) -> Self
pub fn from_sessions_only( sessions: &[Arc<SessionMetadata>], period: Period, ) -> Self
Graceful fallback if stats-cache.json missing
Cost forecasting requires pricing data from StatsCache. If unavailable, returns limited analytics with warning.
Trait Implementations§
Source§impl Clone for AnalyticsData
impl Clone for AnalyticsData
Source§fn clone(&self) -> AnalyticsData
fn clone(&self) -> AnalyticsData
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more