pub struct TransactionMetrics {
pub metrics: Arc<Mutex<MetricsReport>>,
}Expand description
Re-export the foundationdb crate for convenience.
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
impl TransactionMetrics
Sourcepub fn new() -> TransactionMetrics
pub fn new() -> TransactionMetrics
Create a new instance of TransactionMetrics
Sourcepub fn set_read_version(&self, version: i64)
pub fn set_read_version(&self, version: i64)
Sourcepub fn set_commit_version(&self, version: i64)
pub fn set_commit_version(&self, version: i64)
Sourcepub fn reset_current(&self)
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.
Sourcepub fn increment_retries(&self)
pub fn increment_retries(&self)
Increment the retry counter
Sourcepub fn report_metrics(&self, fdb_command: FdbCommand)
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
Sourcepub fn get_retries(&self) -> u64
pub fn get_retries(&self) -> u64
Sourcepub fn get_metrics_data(&self) -> MetricsReport
pub fn get_metrics_data(&self) -> MetricsReport
Sourcepub fn get_transaction_info(&self) -> TransactionInfo
pub fn get_transaction_info(&self) -> TransactionInfo
Returns a clone of the transaction information.
§Returns
TransactionInfo- A clone of the transaction information
Sourcepub fn set_custom(&self, name: &str, value: u64, labels: &[(&str, &str)])
pub fn set_custom(&self, name: &str, value: u64, labels: &[(&str, &str)])
Set a custom metric
§Arguments
name- The name of the metricvalue- The value to setlabels- Key-value pairs for labeling the metric
Sourcepub fn increment_custom(&self, name: &str, amount: u64, labels: &[(&str, &str)])
pub fn increment_custom(&self, name: &str, amount: u64, labels: &[(&str, &str)])
Increment a custom metric
§Arguments
name- The name of the metricamount- The amount to increment bylabels- Key-value pairs for labeling the metric
Sourcepub fn record_commit_time(&self, duration_ms: u64)
pub fn record_commit_time(&self, duration_ms: u64)
Record commit execution time
§Arguments
duration_ms- The duration of the commit execution in milliseconds
Sourcepub fn add_error_time(&self, duration_ms: u64)
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
Sourcepub fn set_execution_time(&self, duration_ms: u64)
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
Sourcepub fn get_total_error_time(&self) -> u64
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
impl Clone for TransactionMetrics
Source§fn clone(&self) -> TransactionMetrics
fn clone(&self) -> TransactionMetrics
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TransactionMetrics
impl Debug for TransactionMetrics
Source§impl Default for TransactionMetrics
impl Default for TransactionMetrics
Source§fn default() -> TransactionMetrics
fn default() -> TransactionMetrics
Auto Trait Implementations§
impl Freeze for TransactionMetrics
impl RefUnwindSafe for TransactionMetrics
impl Send for TransactionMetrics
impl Sync for TransactionMetrics
impl Unpin for TransactionMetrics
impl UnwindSafe for TransactionMetrics
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<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>
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 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>
T in a tonic::RequestSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
Source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
std::ops::AddAssign, for types that do not implement AddAssign.