MetricsCollector implementation: - Per-project aggregation of OptimizationMetrics - Structured logging via tracing (log_all_projects) - Prometheus export format (prometheus_export) - Per-compressor stat tracking 7 new tests (all passing): - test_collector_merge_single_project - test_collector_merge_multiple_projects - test_collector_merge_aggregates - test_collector_nonexistent_project - test_collector_per_compressor_stats - test_prometheus_export_format - test_prometheus_compression_ratio Ready to integrate into rebuild.rs: let collector = MetricsCollector::new(); ... collector.merge_project(project_id, metrics); collector.log_all_projects(); Total M3.8 progress: - M3.8.1: ✅ 62 tests (core compressors) - M3.8.2: ✅ 5 tests (ingest helpers) - M3.8.3: ✅ 7 tests (metrics & monitoring) - M3.8.4: ✅ IMPLICIT (no query compression needed) - M3.8.5: ⏳ Benchmarks - M3.8.6: ⏳ Gate 79 tests passing total (62+5+7+5 from optimizer_sink)