Crate mockforge_analytics

Crate mockforge_analytics 

Source
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