Overview
The Metrics module (backend/src/metrics/) collects, aggregates, and reports simulation performance data. It tracks wait times, throughput, queue lengths, and system utilization.
Module Structure
Domain Model
SimulationMetrics
Aggregate result of a simulation run:WaitTimeRecord
Individual customer wait time:ThroughputRecord
Customers served in a time interval:MetricsRepository Port
Interface defined inmetrics/domain/ports/metrics_repository.py:
InMemoryMetricsRepository
Implementation inmetrics/infrastructure/in_memory_metrics_repository.py:
Metrics Calculation
Average Wait Time
Max/Min Wait Time
Average Queue Length
Using time-weighted average:Teller Utilization
Throughput
Collection Points
On Customer Arrival
On Service Completion
On Queue Rejection
API Endpoints
GET /api/metrics/report
Returns complete simulation metrics:GET /api/metrics/live
Returns real-time metrics during simulation:Frontend Integration
The React frontend polls metrics for visualization:Visualization Components
WaitTimeChart
Plots wait time distribution:ThroughputChart
Shows customers served over time:QueueLengthChart
Displays queue size evolution:Key Performance Indicators
Service Level
Percentage of customers served within target wait time:Saturation
Ratio of actual throughput to theoretical maximum:Abandonment Rate
Export Formats
CSV Export
JSON Export
Next Steps
Metrics Dashboard
Frontend visualization of metrics
Interpreting Metrics
How to analyze simulation results
API Reference
Complete metrics API documentation
Advanced Scenarios
Using metrics to optimize configurations