Files
logpile/docs/bible/05-collectors.md
Mikhail Chusavitin fcd57c1ba9 docs: introduce project Bible and consolidate all architecture documentation
- 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>
2026-02-20 14:15:35 +03:00

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:

  • 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.