Expand description
Performance monitoring and metrics collection for GraphRAG operations.
This module provides the ProcessingMetrics collector for tracking comprehensive
statistics about query execution, document processing, batch operations, rate limiting,
and system resource usage.
§Main Types
ProcessingMetrics: Thread-safe metrics collector using atomic operationsMetricsSummary: Comprehensive snapshot of all collected metricsQueryMetrics: Query-specific statisticsDocumentMetrics: Document processing statisticsSystemMetrics: System-level performance metrics
§Features
- Thread-safe atomic counters for concurrent access
- Duration tracking with automatic sliding window (last 1000 entries)
- Success rate calculations for queries and document processing
- Peak memory usage tracking
- Uptime monitoring
- Statistical aggregations (averages, rates)
- Formatted summary reporting
§Basic Usage
ⓘ
use graphrag_core::async_processing::ProcessingMetrics;
use std::time::Instant;
let metrics = ProcessingMetrics::new();
// Track a query
metrics.increment_query_started();
let start = Instant::now();
// ... perform query ...
metrics.record_query_duration(start.elapsed());
metrics.increment_query_success();
// Track document processing
metrics.increment_document_processing_started();
// ... process document ...
metrics.increment_document_processing_success();
// Get summary statistics
let summary = metrics.get_summary();
println!("Query success rate: {:.1}%",
summary.queries.success_rate * 100.0
);
println!("Average document duration: {:?}",
summary.documents.average_duration
);
// Print full report
metrics.print_summary();Structs§
- Document
Metrics - Statistics for document processing operations
- Metrics
Summary - Comprehensive metrics summary containing all tracked statistics
- Processing
Metrics - Metrics collector for tracking processing performance and statistics
- Query
Metrics - Statistics for query operations
- System
Metrics - System-level performance metrics