import type { Metrics } from '../domain/types'; const metricLabels: Array<[keyof Metrics, string, string]> = [ ['processedCount', 'Processed', 'items'], ['successCount', 'Success', 'items'], ['errorCount', 'Errors', 'items'], ['avgCycleTimeMs', 'Avg cycle', 'ms'], ['throughputItemsPerMin', 'Throughput', 'items/min'], ['cvLatencyMs', 'CV latency', 'ms'], ['actuatorLatencyMs', 'Actuator latency', 'ms'], ['queueLength', 'Queue length', 'items'], ['queueDelayMs', 'Queue delay', 'ms'], ['conveyorSpeedMps', 'Conveyor speed', 'm/s'], ['pidTargetSpeedMps', 'PID target', 'm/s'], ['pidActualSpeedMps', 'PID actual', 'm/s'], ]; export default function MetricsPanel({ metrics }: { metrics: Metrics }) { return (

Metrics

Line telemetry

{metricLabels.map(([key, label, unit]) => (
{label} {metrics[key]} {unit}
))}
); }