Skip to main content

Module monitoring

Module monitoring 

Source
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

§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§

DocumentMetrics
Statistics for document processing operations
MetricsSummary
Comprehensive metrics summary containing all tracked statistics
ProcessingMetrics
Metrics collector for tracking processing performance and statistics
QueryMetrics
Statistics for query operations
SystemMetrics
System-level performance metrics