Struct Operation
pub struct Operation { /* private fields */ }dial9 only.Expand description
A lifecycle recorded only when the ambient recorder is enabled at creation.
Construct inside the future being observed so an unpolled future emits nothing. Dropping an unfinished operation attempts a cancellation event once. No clock read, ID allocation, or event construction occurs when disabled. Pausing/stopping the recorder, dropped batches and segment eviction can leave incomplete lifecycles in the retained recording.
Use record_event_with for application details;
the closure receives IDs that also identify Rama’s child operations. Avoid
recording payloads or high-cardinality strings unless they are needed.
Implementations§
§impl Operation
impl Operation
pub fn new(name: &'static str) -> Operation
pub fn context(&self) -> TraceContext
pub fn is_recorded(&self) -> bool
pub fn is_recorded(&self) -> bool
Whether this operation was started in an enabled recording.
pub fn elapsed(&self) -> Duration
pub fn elapsed(&self) -> Duration
Elapsed time for an active operation; zero when recording was disabled.
pub fn record_event_with<E>(&self, make: impl FnOnce(TraceContext) -> E)where
E: Encodable,
pub fn record_event_with<E>(&self, make: impl FnOnce(TraceContext) -> E)where
E: Encodable,
Lazily add protocol or application information to this operation.
pub fn finish_with_bytes(self, outcome: Outcome, sent: u64, received: u64)
pub fn finish_with_bytes(self, outcome: Outcome, sent: u64, received: u64)
End the operation with bytes sent and received at this protocol boundary. These are not necessarily wire bytes (for example, HTTP body bytes).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Operation
impl RefUnwindSafe for Operation
impl Send for Operation
impl Sync for Operation
impl Unpin for Operation
impl UnsafeUnpin for Operation
impl UnwindSafe for Operation
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more