pub struct CachePerformanceAnalyzer;Available on crate feature
runner only.Expand description
Utility for computing cache effectiveness metrics from session events.
This is a stateless analyzer — call CachePerformanceAnalyzer::analyze
with any slice of events to get a CacheMetrics snapshot.
§Example
ⓘ
use adk_runner::CachePerformanceAnalyzer;
let metrics = CachePerformanceAnalyzer::analyze(&events);
println!("Hit ratio: {:.1}%, Utilization: {:.1}%",
metrics.cache_hit_ratio, metrics.cache_utilization_ratio);Implementations§
Source§impl CachePerformanceAnalyzer
impl CachePerformanceAnalyzer
Sourcepub fn analyze(events: &[Event]) -> CacheMetrics
pub fn analyze(events: &[Event]) -> CacheMetrics
Analyze cache performance from a slice of events.
Iterates over all events, extracts usage_metadata from LLM responses,
and computes aggregate cache metrics. Events without usage_metadata
are skipped. An empty slice returns zeroed metrics.
Auto Trait Implementations§
impl Freeze for CachePerformanceAnalyzer
impl RefUnwindSafe for CachePerformanceAnalyzer
impl Send for CachePerformanceAnalyzer
impl Sync for CachePerformanceAnalyzer
impl Unpin for CachePerformanceAnalyzer
impl UnsafeUnpin for CachePerformanceAnalyzer
impl UnwindSafe for CachePerformanceAnalyzer
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
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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> 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>
Converts
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>
Converts
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestCreates a shared type from an unshared type.