Probe

Struct Probe 

Source
pub struct Probe(/* private fields */);
Expand description

The interface to reading probe.

Implementations§

Source§

impl Probe

Source

pub fn new<W: Write + Send + 'static>(write: W) -> ReadingsResult<Probe>

Creates a probe logging its data to Write implementation (usually a file).

Source

pub fn register_i64<S: AsRef<str>>( &mut self, name: S, ) -> ReadingsResult<Arc<AtomicI64>>

Register an i64 used-defined metric.

Must be called prior to the first call to log_event or spawn_heartbeat.

The result is shared AtomicI64 that can be used by client code to share communicate updates with the probe.

TODO: type-enforce this using the Builder pattern

Source

pub fn spawn_heartbeat(&mut self, interval: Duration) -> ReadingsResult<()>

Spawn a thread that will record all vitals at every “interval”.

Source

pub fn log_event(&self, event: &str) -> ReadingsResult<()>

Log an individual event with a label and the current values of metrics.

Source

pub fn get_i64<S: AsRef<str>>(&self, name: S) -> Option<Arc<AtomicI64>>

Recover a pre-registered used-defined metrics from the probe.

The result is shared AtomicI64 that can be used by client code to share communicate updates with the probe.

It is more efficient for the client code to keep the shared AtomicI64 somewhere handy than calling this at every update. Nevertheless, it allows for intermediate code to just have to propagate the probe without worrying about the various metrics that the underlying code may need.

Trait Implementations§

Source§

impl Clone for Probe

Source§

fn clone(&self) -> Probe

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

Auto Trait Implementations§

§

impl Freeze for Probe

§

impl RefUnwindSafe for Probe

§

impl Send for Probe

§

impl Sync for Probe

§

impl Unpin for Probe

§

impl UnwindSafe for Probe

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, 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<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, 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.