pub struct TokenTracker { /* private fields */ }Expand description
Token usage tracker for session and global usage
Implementations§
Source§impl TokenTracker
impl TokenTracker
Sourcepub async fn set_session(&self, session_id: impl Into<String>)
pub async fn set_session(&self, session_id: impl Into<String>)
Set the current session ID
Sourcepub async fn set_daily_budget(&self, budget_usd: f64)
pub async fn set_daily_budget(&self, budget_usd: f64)
Set daily budget limit
Sourcepub async fn record_usage(&self, usage: TokenUsage)
pub async fn record_usage(&self, usage: TokenUsage)
Record a token usage event
Sourcepub async fn get_session_stats(&self) -> UsageStats
pub async fn get_session_stats(&self) -> UsageStats
Get session statistics
Sourcepub async fn get_global_stats(&self) -> UsageStats
pub async fn get_global_stats(&self) -> UsageStats
Get global statistics
Sourcepub async fn get_today_stats(&self) -> UsageStats
pub async fn get_today_stats(&self) -> UsageStats
Get today’s usage statistics
Sourcepub async fn check_budget(&self, estimated_cost: f64) -> BudgetStatus
pub async fn check_budget(&self, estimated_cost: f64) -> BudgetStatus
Check if daily budget would be exceeded by estimated usage
Sourcepub async fn get_recent_history(&self, count: usize) -> Vec<UsageRecord>
pub async fn get_recent_history(&self, count: usize) -> Vec<UsageRecord>
Get recent usage history
Sourcepub async fn reset_session(&self)
pub async fn reset_session(&self)
Reset session stats (for new session)
Trait Implementations§
Source§impl Debug for TokenTracker
impl Debug for TokenTracker
Auto Trait Implementations§
impl !Freeze for TokenTracker
impl !RefUnwindSafe for TokenTracker
impl Send for TokenTracker
impl Sync for TokenTracker
impl Unpin for TokenTracker
impl UnwindSafe for TokenTracker
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
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].