tvix_tracing

Struct TracingHandle

source
pub struct TracingHandle {
    pub(crate) flush_tx: Option<Sender<Sender<()>>>,
    pub(crate) stdout_writer: IndicatifWriter<Stdout>,
    pub(crate) stderr_writer: IndicatifWriter<Stderr>,
}

Fields§

§flush_tx: Option<Sender<Sender<()>>>

A channel that can be sent to whenever traces/metrics should be flushed. Once flushing is finished, the sent oneshot::Sender will get triggered.

§stdout_writer: IndicatifWriter<Stdout>§stderr_writer: IndicatifWriter<Stderr>

Implementations§

source§

impl TracingHandle

source

pub fn get_stdout_writer(&self) -> IndicatifWriter<Stdout>

Returns a writer for std::io::Stdout that ensures its output will not be clobbered by active progress bars.

Instead of println!(...) prefer writeln!(handle.get_stdout_writer(), ...)

source

pub fn get_stderr_writer(&self) -> IndicatifWriter<Stderr>

Returns a writer for std::io::Stderr that ensures its output will not be clobbered by active progress bars.

Instead of println!(...) prefer writeln!(handle.get_stderr_writer(), ...).

source

pub async fn flush(&self) -> Result<(), Error>

This will flush possible attached tracing providers, e.g. otlp exported, if enabled. If there is none enabled this will result in a noop.

It will wait until the flush is complete.

source

pub async fn shutdown(&self) -> Result<(), Error>

This will flush all all attached tracing providers and will wait until the flush is completed. If no tracing providers like otlp are attached then this will be a noop.

This should only be called on a regular shutdown. If you correctly need to shutdown tracing on ctrl_c use force_shutdown otherwise you will get otlp errors.

source

pub async fn force_shutdown(&self) -> Result<(), Error>

This will flush all all attached tracing providers and will wait until the flush is completed. After this it will do some other necessary cleanup. If no tracing providers like otlp are attached then this will be a noop.

This should only be used if the tool received an ctrl_c otherwise you will get otlp errors. If you need to shutdown tracing on a regular exit, you should use the shutdown method.

Trait Implementations§

source§

impl Clone for TracingHandle

source§

fn clone(&self) -> TracingHandle

Returns a copy 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§

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, dst: *mut T)

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
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<T> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
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.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

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
source§

impl<T> ErasedDestructor for T
where T: 'static,

source§

impl<T> MaybeSendSync for T