pub struct ReaderAcquisitionSnapshot {Show 13 fields
pub reader_admission_capacity: usize,
pub available_reader_admission_slots: usize,
pub acquisitions: u64,
pub pooled_checkouts: u64,
pub standalone_opens: u64,
pub infrastructure_standalone_opens: u64,
pub checkout_timeouts: u64,
pub active_pooled_checkouts: u64,
pub peak_active_pooled_checkouts: u64,
pub completed_pooled_checkouts: u64,
pub max_completed_hold_micros: u64,
pub max_completed_hold_operation: Option<&'static str>,
pub reader_replacement_open_failures: u64,
}Expand description
Process-local reader acquisition and hold lifecycle since one
ConnectionPool was constructed.
Counters are monotonic and reset only when the pool is reconstructed.
active_pooled_checkouts is the point-in-time number of live
ReaderGuard values. Hold duration includes connection reset or
replacement on return, because the slot is not reusable before then.
Fields§
§reader_admission_capacity: usizeConfigured process-local admission budget shared by pooled readers and the explicit raw-SQL read-transaction exception.
available_reader_admission_slots: usizePoint-in-time permits not held by either pooled readers or explicit raw-SQL read transactions.
acquisitions: u64Successful request-path reader acquisitions (pooled plus the explicit raw-SQL transaction exception; infrastructure opens excluded).
pooled_checkouts: u64Successful bounded pooled-reader checkouts.
standalone_opens: u64Successful request-path standalone opens from the closed exception list (currently explicit raw-SQL deferred transactions only).
infrastructure_standalone_opens: u64Successful boot/diagnostic standalone opens, attributed separately so request traffic cannot be inferred from infrastructure activity.
checkout_timeouts: u64Reader-admission waits that exhausted checkout_timeout before any
query began. Covers pooled checkout and the closed raw-SQL exception;
cooperative request cancellation is intentionally excluded.
active_pooled_checkouts: u64Pooled checkouts live at the instant this snapshot was taken.
peak_active_pooled_checkouts: u64High-water mark of concurrent pooled checkouts.
completed_pooled_checkouts: u64Pooled guards that completed their full return/reset lifecycle.
max_completed_hold_micros: u64Longest completed checkout hold, including return/reset, in microseconds. Diagnostic evidence only; never a test timing gate.
max_completed_hold_operation: Option<&'static str>The typed-store operation that held the checkout reported in
max_completed_hold_micros. None when that hold came from a route
that carries no operation name, which is itself the answer rather
than a missing reading (#2793).
reader_replacement_open_failures: u64A disqualified pooled-reader return (reset/pristine-check failure)
whose replacement connection then also failed to open, permanently
shrinking the physical pool by one slot below max_readers. Logged at
warn when it happens; this counter makes the shrink observable in a
snapshot too, since the pool itself never re-grows on its own.
Trait Implementations§
Source§impl Clone for ReaderAcquisitionSnapshot
impl Clone for ReaderAcquisitionSnapshot
impl Copy for ReaderAcquisitionSnapshot
Source§impl Debug for ReaderAcquisitionSnapshot
impl Debug for ReaderAcquisitionSnapshot
Source§impl Default for ReaderAcquisitionSnapshot
impl Default for ReaderAcquisitionSnapshot
impl Eq for ReaderAcquisitionSnapshot
impl StructuralPartialEq for ReaderAcquisitionSnapshot
Auto Trait Implementations§
impl Freeze for ReaderAcquisitionSnapshot
impl RefUnwindSafe for ReaderAcquisitionSnapshot
impl Send for ReaderAcquisitionSnapshot
impl Sync for ReaderAcquisitionSnapshot
impl Unpin for ReaderAcquisitionSnapshot
impl UnsafeUnpin for ReaderAcquisitionSnapshot
impl UnwindSafe for ReaderAcquisitionSnapshot
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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> ⓘ
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 more