pub struct GraphMetrics {
pub edge_insert_latency: LatencyHistogram,
pub edge_delete_latency: LatencyHistogram,
pub traversal_latency: LatencyHistogram,
pub query_latency: LatencyHistogram,
/* private fields */
}Expand description
Graph-specific performance metrics.
Thread-safe counters and histograms for monitoring graph operations.
§Example
use velesdb_core::collection::graph::GraphMetrics;
use std::time::Instant;
let metrics = GraphMetrics::new();
// Record an edge insertion
let start = Instant::now();
// ... perform insertion ...
metrics.record_edge_insert(start.elapsed());
// Get statistics
println!("Total edges inserted: {}", metrics.edge_inserts_total());
println!("Avg insert latency: {:.2}µs", metrics.edge_insert_latency.avg_ns() / 1000.0);Fields§
§edge_insert_latency: LatencyHistogramEdge insertion latency histogram
edge_delete_latency: LatencyHistogramEdge deletion latency histogram
traversal_latency: LatencyHistogramTraversal latency histogram
query_latency: LatencyHistogramQuery latency histogram
Implementations§
Source§impl GraphMetrics
impl GraphMetrics
Sourcepub fn record_node_insert(&self)
pub fn record_node_insert(&self)
Records a node insertion.
Sourcepub fn record_node_delete(&self)
pub fn record_node_delete(&self)
Records a node deletion.
Uses saturating subtraction to prevent underflow if called
more times than record_node_insert.
Sourcepub fn nodes_total(&self) -> u64
pub fn nodes_total(&self) -> u64
Returns total node count.
Sourcepub fn node_inserts_total(&self) -> u64
pub fn node_inserts_total(&self) -> u64
Returns total node insertions.
Sourcepub fn record_edge_insert(&self, latency: Duration)
pub fn record_edge_insert(&self, latency: Duration)
Records an edge insertion with latency.
Sourcepub fn record_edge_inserts_batch(&self, count: u64, latency: Duration)
pub fn record_edge_inserts_batch(&self, count: u64, latency: Duration)
Records a batch edge insertion.
Bumps the insert/edge counters by count and observes the batch
latency once, avoiding a per-edge Instant::now() on the bulk path.
Sourcepub fn record_edge_delete(&self, latency: Duration)
pub fn record_edge_delete(&self, latency: Duration)
Records an edge deletion with latency.
Uses saturating subtraction to prevent underflow.
Sourcepub fn edges_total(&self) -> u64
pub fn edges_total(&self) -> u64
Returns total edge count.
Sourcepub fn edge_inserts_total(&self) -> u64
pub fn edge_inserts_total(&self) -> u64
Returns total edge insertions.
Sourcepub fn edge_deletes_total(&self) -> u64
pub fn edge_deletes_total(&self) -> u64
Returns total edge deletions.
Sourcepub fn record_traversal(&self, latency: Duration, nodes_visited: u64)
pub fn record_traversal(&self, latency: Duration, nodes_visited: u64)
Records a traversal with latency and nodes visited.
Sourcepub fn traversals_total(&self) -> u64
pub fn traversals_total(&self) -> u64
Returns total traversal count.
Sourcepub fn traversal_nodes_visited(&self) -> u64
pub fn traversal_nodes_visited(&self) -> u64
Returns total nodes visited across all traversals.
Sourcepub fn record_query(&self, latency: Duration)
pub fn record_query(&self, latency: Duration)
Records a query latency.
Sourcepub fn to_prometheus(&self) -> String
pub fn to_prometheus(&self) -> String
Exports metrics in Prometheus text format.
Trait Implementations§
Source§impl Debug for GraphMetrics
impl Debug for GraphMetrics
Source§impl Default for GraphMetrics
impl Default for GraphMetrics
Source§fn default() -> GraphMetrics
fn default() -> GraphMetrics
Auto Trait Implementations§
impl !Freeze for GraphMetrics
impl RefUnwindSafe for GraphMetrics
impl Send for GraphMetrics
impl Sync for GraphMetrics
impl Unpin for GraphMetrics
impl UnsafeUnpin for GraphMetrics
impl UnwindSafe for GraphMetrics
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> 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> 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>
renamed to 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);