- 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>
59 lines
1.8 KiB
Markdown
59 lines
1.8 KiB
Markdown
# 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:
|
|
- `Systems` collection → per-system resources
|
|
- `Chassis` collection → enclosure/board data
|
|
- `Managers` collection → 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.id` references and handle embedded `Members` arrays.
|
|
- 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.
|