pub struct ProxyStats {
pub requests_total: AtomicU64,
pub requests_compressed: AtomicU64,
pub tokens_saved: AtomicU64,
pub bytes_original: AtomicU64,
pub bytes_compressed: AtomicU64,
pub anthropic: ProviderStats,
pub openai: ProviderStats,
pub chatgpt: ProviderStats,
pub gemini: ProviderStats,
pub grok: ProviderStats,
pub commandcode: ProviderStats,
}Fields§
§requests_total: AtomicU64§requests_compressed: AtomicU64§tokens_saved: AtomicU64§bytes_original: AtomicU64§bytes_compressed: AtomicU64§anthropic: ProviderStats§openai: ProviderStats§chatgpt: ProviderStats§gemini: ProviderStats§grok: ProviderStatsGrok dual-rail (/providers/grok-chat, /providers/xai) — OpenAI wire
shape, separate identity so proxy status does not fold xAI traffic
into the OpenAI bucket.
commandcode: ProviderStatsCommand Code gateway rail (/providers/commandcode) — separate identity
so proxy status does not fold Command Code traffic into the wire-shape
bucket.
Implementations§
Source§impl ProxyStats
impl ProxyStats
pub fn record_request(&self, original: usize, compressed: usize)
pub fn record_provider_request( &self, provider_label: &str, original: usize, compressed: usize, )
pub fn compression_ratio(&self) -> f64
pub fn provider_summary(&self) -> Value
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for ProxyStats
impl RefUnwindSafe for ProxyStats
impl Send for ProxyStats
impl Sync for ProxyStats
impl Unpin for ProxyStats
impl UnsafeUnpin for ProxyStats
impl UnwindSafe for ProxyStats
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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 more