feat(bundle): Phase 4 observability — per-phase timing in return dict and summary log
process_bundle_index_job now emits and returns a full timing breakdown:
Return dict additions: bundle_size_bytes — raw wire bytes (correlates timing against bundle size) fetch_bundle_ms — MinIO GET (network round-trip, critical path indicator) unpack_ms — msgpack.unpackb (CPU-bound, O(bundle_size)) snapshot_insert_ms — bulk INSERT musehub_snapshots commit_insert_ms — bulk INSERT musehub_commits object_puts_ms — parallel MinIO PUTs (network-bound, batched 200-wide) object_insert_ms — bulk ON CONFLICT DO UPDATE musehub_objects object_refs_ms — upsert musehub_object_refs
Summary log now emits all phase labels in one line so dashboards and grep can consume a single record per job rather than reassembling seven lines: ✅ [bundle.index] done in 82.0ms fetch_bundle=5.2ms unpack=1.1ms ...
Split t_loaded into t_fetched (after MinIO GET) + t_loaded (after unpackb) so fetch_bundle_ms and unpack_ms are measured independently.
TDD: test_bundle_index_job_phase4.py — 5 tests, all green.
0 comments
muse hub commit comment sha256:747fb3cb717d92b53cade56ad9439905b5638cb75cfa62b087cfe58c0b158d71 --body "your comment"
No comments yet. Be the first to start the discussion.