InstrumentedPool

Struct InstrumentedPool 

Source
pub struct InstrumentedPool<P> { /* private fields */ }
Expand description

Instrumented pool.

Automatically gathers pool-related metrics and provides relevant traces.

Implementations§

Source§

impl<P, E> InstrumentedPool<P>
where P: for<'p> InstrumentablePool<'p, Error = E> + Sync, E: Error + Send + 'static,

Source

pub fn instrument<L: Into<Cow<'static, str>>>( label: Option<L>, pool: P, ) -> Result<Self, Error<E>>

Instrument provided resource pool.

§Errors

Returns Err if there was a problem collecting pool state.

Source

pub fn update_metrics(&self) -> Result<(), Error<E>>

Manually update pool metrics.

Normally you wouldn’t need to call this directly, as metrics collection occurs automatically as you use the pool.

§Errors

Returns Err if there was a problem collecting pool state.

Source

pub async fn get( &self, ) -> Result<InstrumentedResource<<P as InstrumentablePool<'_>>::Resource>, Error<E>>

Acquire instrumented resource from resource pool.

§Errors

Returns Err if there was a problem acquiring a resource from the pool.

Source

pub fn try_get( &self, ) -> Result<InstrumentedResource<<P as InstrumentablePool<'_>>::Resource>, Error<E>>

Instantly acquire an instrumented resource from the pool.

§Errors

Returns Err if blocking is required, or if this operation is not implemented for this pool type.

Source

pub async fn get_timeout( &self, timeout: Duration, ) -> Result<InstrumentedResource<<P as InstrumentablePool<'_>>::Resource>, Error<E>>

Try to acquire an instrumented resource from the pool, waiting for a bounded time.

§Errors

Must return Error::AcquireTimeout if waiting time was exhaused.

Returns Error::NotImplemented if this operation is not implemented for this pool type.

Trait Implementations§

Source§

impl<P> AsMut<P> for InstrumentedPool<P>

Source§

fn as_mut(&mut self) -> &mut P

Converts this type into a mutable reference of the (usually inferred) input type.
Source§

impl<P> AsRef<P> for InstrumentedPool<P>

Source§

fn as_ref(&self) -> &P

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<P: Clone> Clone for InstrumentedPool<P>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<P: Debug> Debug for InstrumentedPool<P>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<P> Deref for InstrumentedPool<P>

Source§

type Target = P

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<P> DerefMut for InstrumentedPool<P>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl<P: Display> Display for InstrumentedPool<P>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<P> !Freeze for InstrumentedPool<P>

§

impl<P> !RefUnwindSafe for InstrumentedPool<P>

§

impl<P> Send for InstrumentedPool<P>
where P: Send,

§

impl<P> Sync for InstrumentedPool<P>
where P: Sync,

§

impl<P> Unpin for InstrumentedPool<P>
where P: Unpin,

§

impl<P> !UnwindSafe for InstrumentedPool<P>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more