Skip to content

Graph Database: Monitoring

Graph Database: Monitoring

Part of: Graph Database User Guide


Query Performance

use std::time::Instant;
// Time a query
let start = Instant::now();
let result = executor.execute(&query).await?;
let duration = start.elapsed();
println!("Query executed in {:?}", duration);
println!("Returned {} rows", result.rows.len());

Graph Statistics

let stats = storage.get_stats().await?;
println!("Graph Statistics:");
println!(" Nodes: {}", stats.vertex_count);
println!(" Edges: {}", stats.edge_count);
println!(" Average degree: {:.2}",
stats.edge_count as f64 / stats.vertex_count as f64);
println!(" Memory usage: {} MB", stats.memory_usage_mb);
println!(" Storage size: {} MB", stats.storage_size_mb);

Memory Usage

use heliosdb_graph::utils::memory_usage;
let memory_stats = memory_usage();
println!("Memory Statistics:");
println!(" Resident: {} MB", memory_stats.resident_mb);
println!(" Virtual: {} MB", memory_stats.virtual_mb);
println!(" Heap: {} MB", memory_stats.heap_mb);

Cache Metrics

let cache_stats = storage.get_cache_stats().await?;
println!("Cache Statistics:");
println!(" Hit rate: {:.2}%", cache_stats.hit_rate * 100.0);
println!(" Hits: {}", cache_stats.hits);
println!(" Misses: {}", cache_stats.misses);
println!(" Size: {} MB", cache_stats.size_mb);

Slow Query Log

// Enable slow query logging
storage.enable_slow_query_log(Duration::from_millis(100)).await?;
// Queries taking >100ms will be logged

Metrics Export (Prometheus)

use heliosdb_graph::metrics::PrometheusExporter;
let exporter = PrometheusExporter::new(storage);
// Export metrics to Prometheus format
let metrics = exporter.export().await?;
println!("{}", metrics);



Version: 6.5 Last Updated: November 17, 2025