pub struct RecordingObserver { /* private fields */ }Expand description
An observer that keeps everything it was given, for assertions in tests.
It is cheap, thread-safe and never panics: a poisoned lock is recovered rather than propagated, because a telemetry sink must not turn one test failure into a cascade.
use turnframe_core::ids::WorkflowKey;
use turnframe_core::observe::{Observer, Signal, SignalLabels};
use turnframe_telemetry::RecordingObserver;
let observer = RecordingObserver::new();
observer.observe_labeled(
&Signal::CommandExecuted,
&SignalLabels::workflow(WorkflowKey::from("trip")),
);
assert_eq!(observer.count(Signal::CommandExecuted), 1);
assert!(observer.contains(Signal::CommandExecuted));
assert_eq!(observer.labels_of(Signal::CommandExecuted).len(), 1);Implementations§
Source§impl RecordingObserver
impl RecordingObserver
Sourcepub fn records(&self) -> Vec<RecordedSignal>
pub fn records(&self) -> Vec<RecordedSignal>
Everything recorded so far, in arrival order.
Sourcepub fn labels_of(&self, signal: Signal) -> Vec<SignalLabels>
pub fn labels_of(&self, signal: Signal) -> Vec<SignalLabels>
The label sets a signal was recorded with, in arrival order.
Sourcepub fn durations_of(&self, signal: Signal) -> Vec<Duration>
pub fn durations_of(&self, signal: Signal) -> Vec<Duration>
The durations a latency signal was recorded with, in arrival order.
Trait Implementations§
Source§impl Debug for RecordingObserver
impl Debug for RecordingObserver
Source§impl Default for RecordingObserver
impl Default for RecordingObserver
Source§impl Observer for RecordingObserver
impl Observer for RecordingObserver
Source§fn observe_labeled(&self, signal: &Signal, labels: &SignalLabels)
fn observe_labeled(&self, signal: &Signal, labels: &SignalLabels)
Observes a signal with labels. The default drops the labels.
Source§fn observe_duration(
&self,
signal: &Signal,
duration: Duration,
labels: &SignalLabels,
)
fn observe_duration( &self, signal: &Signal, duration: Duration, labels: &SignalLabels, )
Observes a duration signal (
SignalKind::DurationMillis or
SignalKind::DurationMicros) with its measured value. The default
drops the value and forwards to Observer::observe_labeled.Auto Trait Implementations§
impl !Freeze for RecordingObserver
impl RefUnwindSafe for RecordingObserver
impl Send for RecordingObserver
impl Sync for RecordingObserver
impl Unpin for RecordingObserver
impl UnsafeUnpin for RecordingObserver
impl UnwindSafe for RecordingObserver
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