- Create docs/bible/ with 10 structured chapters (overview, architecture, API, data models, collectors, parsers, exporters, build, testing, decisions) - All documentation in English per ADL-007 - Record all existing architectural decisions in docs/bible/10-decisions.md - Slim README.md to user-facing quick start only - Replace CLAUDE.md with a single directive to read and follow the Bible - Remove absorbed files: REANIMATOR_EXPORT.md, docs/INTEGRATION_GUIDE.md, and all vendor parser README.md files Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1.8 KiB
1.8 KiB
05 — Collectors
Collectors live in internal/collector/.
Registration: internal/collector/registry.go
Redfish Collector (redfish)
Status: Production-ready.
Discovery
Dynamic — does not assume fixed paths. Discovers:
Systemscollection → per-system resourcesChassiscollection → enclosure/board dataManagerscollection → BMC/firmware info
Collected data
| Category | Notes |
|---|---|
| CPU | Model, cores, threads, socket, status |
| Memory | DIMM slot, size, type, speed, serial, manufacturer |
| Storage | Slot, type, model, serial, firmware, interface, status |
| GPU | Detected via PCIe class + NVIDIA vendor ID |
| PSU | Model, serial, wattage, firmware, telemetry (input/output power, voltage) |
| NIC | Model, serial, port count, BDF |
| PCIe | Slot, vendor_id, device_id, BDF, link width/speed |
| Firmware | BIOS, BMC versions |
Raw snapshot
Full Redfish response tree is stored in result.RawPayloads["redfish_tree"].
This allows future offline re-analysis without re-collecting from a live BMC.
Parsing guidelines
When adding Redfish mappings, follow these principles:
- Support alternate collection paths (resources may appear at different odata URLs).
- Follow
@odata.idreferences and handle embeddedMembersarrays. - Deduplicate by serial / BDF / slot+model (in that priority order).
- Prefer tolerant/fallback parsing — missing fields should be silently skipped, not cause the whole collection to fail.
Progress reporting
The collector emits progress log entries at each stage (connecting, enumerating systems, collecting CPUs, etc.) so the UI can display meaningful status.
IPMI Collector (ipmi)
Status: Mock scaffold only — not implemented.
Registered in the collector registry but returns placeholder data. Real IPMI support is a future work item.