Ruvector Metrics
Prometheus-compatible metrics collection for Ruvector vector databases.
ruvector-metrics provides comprehensive observability with counters, gauges, histograms, and exporters for monitoring Ruvector performance and health. Part of the Ruvector ecosystem.
Why Ruvector Metrics?
- Prometheus Native: Direct Prometheus integration
- Zero Overhead: Lazy initialization, minimal impact
- Comprehensive: Operation latencies, throughput, memory
- Customizable: Add custom metrics for your use case
- Standard Format: OpenMetrics-compatible output
Features
Core Metrics
- Operation Counters: Insert, search, delete counts
- Latency Histograms: p50, p95, p99 latencies
- Throughput Gauges: Queries per second
- Memory Metrics: Heap usage, vector memory
- Index Metrics: HNSW stats, quantization info
Advanced Features
- Custom Labels: Add context to metrics
- Metric Groups: Enable/disable metric categories
- JSON Export: Alternative to Prometheus format
- Time Series: Historical metric tracking
Installation
Add ruvector-metrics to your Cargo.toml:
[]
= "0.1.1"
Quick Start
Initialize Metrics
use ;
Record Metrics
use Metrics;
// Record operation
metrics.record_insert;
metrics.record_search;
metrics.record_delete;
// Record batch operations
metrics.record_batch_insert;
metrics.record_batch_search;
// Update gauges
metrics.set_vector_count;
metrics.set_memory_usage; // 500MB
Export Metrics
use Metrics;
// Get Prometheus format
let prometheus_output = metrics.export_prometheus?;
println!;
// Get JSON format
let json_output = metrics.export_json?;
println!;
HTTP Endpoint
use ;
// Start metrics server on /metrics endpoint
let server = new?;
server.start.await?;
// Access at http://localhost:9090/metrics
Available Metrics
# Counters
ruvector_inserts_total # Total insert operations
ruvector_searches_total # Total search operations
ruvector_deletes_total # Total delete operations
ruvector_errors_total # Total errors by type
# Histograms
ruvector_insert_latency_seconds # Insert latency
ruvector_search_latency_seconds # Search latency
ruvector_delete_latency_seconds # Delete latency
# Gauges
ruvector_vector_count # Current vector count
ruvector_memory_bytes # Memory usage
ruvector_index_size_bytes # Index size
ruvector_collection_count # Number of collections
# Index metrics
ruvector_hnsw_levels # HNSW graph levels
ruvector_hnsw_nodes # HNSW node count
ruvector_hnsw_ef_construction # EF construction parameter
API Overview
Core Types
// Metrics configuration
// Metrics handle
Metrics Operations
Grafana Dashboard
Example Grafana queries:
# Request rate
rate(ruvector_searches_total[5m])
# p99 latency
histogram_quantile(0.99, rate(ruvector_search_latency_seconds_bucket[5m]))
# Memory usage
ruvector_memory_bytes / 1024 / 1024 # MB
# Error rate
rate(ruvector_errors_total[5m]) / rate(ruvector_searches_total[5m])
Related Crates
- ruvector-core - Core vector database engine
- ruvector-server - REST API server
Documentation
- Main README - Complete project overview
- API Documentation - Full API reference
- GitHub Repository - Source code
License
MIT License - see LICENSE for details.