sentry_core

Struct TransactionContext

Source
pub struct TransactionContext { /* private fields */ }
Expand description

The Transaction Context used to start a new Performance Monitoring Transaction.

The Transaction Context defines the metadata for a Performance Monitoring Transaction, and also the connection point for distributed tracing.

Implementations§

Source§

impl TransactionContext

Source

pub fn new(name: &str, op: &str) -> Self

Creates a new Transaction Context with the given name and op. A random trace_id is assigned. Use TransactionContext::new_with_trace_id to specify a custom trace ID.

See https://docs.sentry.io/platforms/native/enriching-events/transaction-name/ for an explanation of a Transaction’s name, and https://develop.sentry.dev/sdk/performance/span-operations/ for conventions around an operation’s value.

See also the TransactionContext::continue_from_headers function that can be used for distributed tracing.

Source

pub fn new_with_trace_id(name: &str, op: &str, trace_id: TraceId) -> Self

Creates a new Transaction Context with the given name, op, and trace_id.

See https://docs.sentry.io/platforms/native/enriching-events/transaction-name/ for an explanation of a Transaction’s name, and https://develop.sentry.dev/sdk/performance/span-operations/ for conventions around an operation’s value.

Source

pub fn continue_from_headers<'a, I: IntoIterator<Item = (&'a str, &'a str)>>( name: &str, op: &str, headers: I, ) -> Self

Creates a new Transaction Context based on the distributed tracing headers.

The headers in particular need to include either the sentry-trace or W3C traceparent header, which is used to associate the transaction with a distributed trace. If both are present, sentry-trace takes precedence.

Source

pub fn continue_from_span( name: &str, op: &str, span: Option<TransactionOrSpan>, ) -> Self

Creates a new Transaction Context based on an existing Span.

This should be used when an independent computation is spawned on another thread and should be connected to the calling thread via a distributed tracing transaction.

Source

pub fn set_sampled(&mut self, sampled: impl Into<Option<bool>>)

Set the sampling decision for this Transaction.

This can be either an explicit boolean flag, or None, which will fall back to use the configured traces_sample_rate option.

Source

pub fn sampled(&self) -> Option<bool>

Get the sampling decision for this Transaction.

Source

pub fn name(&self) -> &str

Get the name of this Transaction.

Source

pub fn operation(&self) -> &str

Get the operation of this Transaction.

Source

pub fn trace_id(&self) -> TraceId

Get the Trace ID of this Transaction.

Source

pub fn span_id(&self) -> SpanId

Get the Span ID of this Transaction.

Source

pub fn custom(&self) -> Option<&CustomTransactionContext>

Get the custom context of this Transaction.

Source

pub fn custom_mut(&mut self) -> &mut Option<CustomTransactionContext>

Update the custom context of this Transaction.

For simply adding a key, use the custom_insert method.

Source

pub fn custom_insert(&mut self, key: String, value: Value) -> Option<Value>

Inserts a key-value pair into the custom context.

If the context did not have this key present, None is returned.

If the context did have this key present, the value is updated, and the old value is returned.

Source

pub fn builder(name: &str, op: &str) -> TransactionContextBuilder

Creates a transaction context builder initialized with the given name and op.

See https://docs.sentry.io/platforms/native/enriching-events/transaction-name/ for an explanation of a Transaction’s name, and https://develop.sentry.dev/sdk/performance/span-operations/ for conventions around an operation’s value.

Trait Implementations§

Source§

impl Clone for TransactionContext

Source§

fn clone(&self) -> TransactionContext

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

impl Debug for TransactionContext

Source§

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

Formats the value using the given formatter. 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 u8)

🔬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, 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.
Source§

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

Source§

fn vzip(self) -> V

Source§

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

Source§

impl<T> MaybeSendSync for T