Expand description
MockForge Analytics
Provides comprehensive traffic analytics and metrics dashboard capabilities for MockForge, including:
- Time-series metrics aggregation (minute/hour/day granularity)
- Endpoint performance tracking
- Error analysis and monitoring
- Client analytics
- Traffic pattern detection
- Data export (CSV, JSON)
- Configurable retention policies
§Architecture
The analytics system consists of several components:
- Database: SQLite-based storage for aggregated metrics
- Aggregator: Background service that queries Prometheus and stores metrics
- Queries: High-level query API for dashboard data
- Export: Data export functionality
- Retention: Automatic cleanup of old data
§Example
use mockforge_analytics::{AnalyticsDatabase, AnalyticsConfig, RetentionConfig};
use std::path::PathBuf;
let config = AnalyticsConfig {
enabled: true,
database_path: PathBuf::from("analytics.db"),
aggregation_interval_seconds: 60,
rollup_interval_hours: 1,
retention: RetentionConfig::default(),
batch_size: 1000,
max_query_results: 10000,
};
let db = AnalyticsDatabase::new(&config.database_path).await?;
db.run_migrations().await?;
// Query recent metrics
let metrics = db.get_recent_metrics(3600).await?;
println!("Total requests in last hour: {}", metrics.total_requests);Re-exports§
pub use config::AnalyticsConfig;pub use config::RetentionConfig;pub use database::AnalyticsDatabase;pub use error::AnalyticsError;pub use error::Result;pub use models::*;
Modules§
- aggregator
- Metrics aggregation service
- config
- Configuration types for the analytics system
- database
- Database layer for analytics storage
- error
- Error types for the analytics module
- export
- Data export functionality
- models
- Data models for analytics
- queries
- High-level query API for analytics data
- retention
- Data retention and cleanup service
Functions§
- init
- Initialize the analytics system with the given configuration