pub struct TraceSpan {
tx: UnboundedSender<RecordMsg>,
id: RecordId,
storage_type: StorageType,
}
Expand description
TraceSpan
traces hummock operations. It marks the beginning of an operation and
the end when the span is dropped. So, please make sure the span live long enough.
Underscore binding like let _ = span
will drop the span immediately.
Fields§
§tx: UnboundedSender<RecordMsg>
§id: RecordId
§storage_type: StorageType
Implementations§
source§impl TraceSpan
impl TraceSpan
pub fn new( tx: Sender<RecordMsg>, id: RecordId, storage_type: StorageType, ) -> Self
pub fn new_global_op(op: Operation, storage_type: StorageType) -> MayTraceSpan
pub fn new_epoch_span(storage_type: StorageType) -> MayTraceSpan
pub fn new_is_dirty_span(storage_type: StorageType) -> MayTraceSpan
pub fn new_seal_current_epoch_span( epoch: u64, opts: TracedSealCurrentEpochOptions, storage_type: StorageType, ) -> MayTraceSpan
pub fn new_try_wait_epoch_span( epoch: HummockReadEpoch, options: TracedTryWaitEpochOptions, ) -> MayTraceSpan
pub fn new_get_span( key: Bytes, epoch: Option<u64>, read_options: TracedReadOptions, storage_type: StorageType, ) -> MayTraceSpan
pub fn new_iter_span( key_range: (Bound<Bytes>, Bound<Bytes>), epoch: Option<u64>, read_options: TracedReadOptions, storage_type: StorageType, ) -> MayTraceSpan
pub fn new_insert_span( key: Bytes, new_val: Bytes, old_val: Option<Bytes>, storage_type: StorageType, ) -> MayTraceSpan
pub fn new_delete_span( key: Bytes, old_val: Bytes, storage_type: StorageType, ) -> MayTraceSpan
pub fn new_sync_span( sync_table_epochs: &Vec<(HummockEpoch, HashSet<TableId>)>, storage_type: StorageType, ) -> MayTraceSpan
pub fn new_local_storage_span( option: TracedNewLocalOptions, storage_type: StorageType, local_storage_id: u64, ) -> MayTraceSpan
pub fn new_drop_storage_span(storage_type: StorageType) -> MayTraceSpan
pub fn new_flush_span(storage_type: StorageType) -> MayTraceSpan
pub fn new_try_flush_span(storage_type: StorageType) -> MayTraceSpan
pub fn new_meta_message_span(resp: SubscribeResponse) -> MayTraceSpan
pub fn new_local_storage_init_span( options: TracedInitOptions, storage_type: StorageType, ) -> MayTraceSpan
pub fn send(&self, op: Operation)
pub fn send_result(&self, res: OperationResult)
pub fn finish(&self)
pub fn id(&self) -> RecordId
fn storage_type(&self) -> &StorageType
sourcepub fn new_to_global(op: Operation, storage_type: StorageType) -> Self
pub fn new_to_global(op: Operation, storage_type: StorageType) -> Self
Create a span and send operation to the GLOBAL_COLLECTOR
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TraceSpan
impl !RefUnwindSafe for TraceSpan
impl Send for TraceSpan
impl Sync for TraceSpan
impl Unpin for TraceSpan
impl !UnwindSafe for TraceSpan
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§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> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§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>
Converts
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>
Converts
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 moresource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request
§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
type Err = Infallible
fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>
source§impl<M> MetricVecRelabelExt for M
impl<M> MetricVecRelabelExt for M
source§fn relabel(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level
.source§fn relabel_n(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
relabel_num: usize,
) -> RelabeledMetricVec<M>
fn relabel_n( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, relabel_num: usize, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level_relabel_n
.source§fn relabel_debug_1(
self,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel_debug_1( self, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level_relabel_n
with metric_level
set to
MetricLevel::Debug
and relabel_num
set to 1.