Struct TransactionMetrics

Source
pub struct TransactionMetrics {
    pub metrics: Arc<Mutex<MetricsReport>>,
}
Expand description

Tracks metrics for a transaction.

This struct maintains transaction metrics protected by a mutex to allow safe concurrent access.

Fields§

§metrics: Arc<Mutex<MetricsReport>>

All metrics for the transaction, organized by category

Implementations§

Source§

impl TransactionMetrics

Source

pub fn new() -> Self

Create a new instance of TransactionMetrics

Source

pub fn set_read_version(&self, version: i64)

Set the read version for the transaction

§Arguments
  • version - The read version
Source

pub fn set_commit_version(&self, version: i64)

Set the commit version for the transaction

§Arguments
  • version - The commit version
Source

pub fn reset_current(&self)

Resets the current metrics and increments the retry counter in total metrics.

This method is called when a transaction is retried due to a conflict or other retryable error. It increments the retry count in the transaction info and resets the current metrics to zero. It also merges current custom metrics into total custom metrics before clearing them.

Source

pub fn increment_retries(&self)

Increment the retry counter

Source

pub fn report_metrics(&self, fdb_command: FdbCommand)

Reports metrics for a specific FDB command by incrementing the appropriate counters.

This method updates both the current and total metrics for the given command.

§Arguments
  • fdb_command - The FDB command to report metrics for
Source

pub fn get_retries(&self) -> u64

Get the number of retries

§Returns
  • u64 - The number of retries
Source

pub fn get_metrics_data(&self) -> MetricsReport

Returns a clone of all metrics data.

§Returns
  • MetricsData - A clone of all metrics data
Source

pub fn get_transaction_info(&self) -> TransactionInfo

Returns a clone of the transaction information.

§Returns
  • TransactionInfo - A clone of the transaction information
Source

pub fn set_custom(&self, name: &str, value: u64, labels: &[(&str, &str)])

Set a custom metric

§Arguments
  • name - The name of the metric
  • value - The value to set
  • labels - Key-value pairs for labeling the metric
Source

pub fn increment_custom(&self, name: &str, amount: u64, labels: &[(&str, &str)])

Increment a custom metric

§Arguments
  • name - The name of the metric
  • amount - The amount to increment by
  • labels - Key-value pairs for labeling the metric
Source

pub fn record_commit_time(&self, duration_ms: u64)

Record commit execution time

§Arguments
  • duration_ms - The duration of the commit execution in milliseconds
Source

pub fn add_error_time(&self, duration_ms: u64)

Add an error execution time to the list

§Arguments
  • duration_ms - The duration of the error handling in milliseconds
Source

pub fn set_execution_time(&self, duration_ms: u64)

Set the total execution time

§Arguments
  • duration_ms - The total duration of the transaction in milliseconds
Source

pub fn get_total_error_time(&self) -> u64

Get the sum of all error handling times

§Returns
  • u64 - The total time spent handling errors in milliseconds

Trait Implementations§

Source§

impl Clone for TransactionMetrics

Source§

fn clone(&self) -> TransactionMetrics

Returns a duplicate 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 TransactionMetrics

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for TransactionMetrics

Source§

fn default() -> TransactionMetrics

Returns the “default value” for a type. 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, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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.
§

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

§

fn vzip(self) -> V