feat: add standalone server topology view
This commit is contained in:
@@ -572,6 +572,8 @@ both CPUs or have no CPU affinity). This data is needed for topology-aware diagn
|
||||
provide CPUAffinity at all.
|
||||
- `TestParseDellCPUAffinity` verifies numeric values parsed correctly and "Not Applicable"→0.
|
||||
|
||||
The zero-as-absence representation in this decision is superseded by ADL-068.
|
||||
|
||||
---
|
||||
|
||||
## ADL-023 — Reanimator export must match ingest contract exactly
|
||||
@@ -1983,3 +1985,38 @@ with **same-length neutral fillers**, in place.
|
||||
`TestSanitize_Zip_*`, `TestSanitize_BinaryMemberFlagged`,
|
||||
`TestNeutralZonesAreValidAndSameLength`, `TestTZFiller`),
|
||||
`internal/server` (`TestHandleSanitize_*`).
|
||||
|
||||
---
|
||||
|
||||
## ADL-068 — Standalone topology document and nullable NUMA affinity
|
||||
|
||||
**Date:** 2026-09-14
|
||||
**Context:** A server topology cannot distinguish the real NUMA node 0 from an
|
||||
unknown affinity while the Go model uses numeric zero as its absence sentinel.
|
||||
Bee support bundles also contain useful relationships (DIMM-to-socket,
|
||||
disk-to-controller, and GPU/NVLink links) which are not part of the Reanimator
|
||||
hardware ingest schema. Adding those relationships to `reanimator.json` would
|
||||
couple a standard inventory document to one viewer.
|
||||
|
||||
**Decision:**
|
||||
- Represent `numa_node` as `*int` throughout LOGPile's PCIe, network, canonical
|
||||
device, and Reanimator projection models. `nil` means absent/N/A; `&0` means
|
||||
NUMA node 0.
|
||||
- Keep `reanimator.json` schema-preserving. Store semantic topology as a
|
||||
separate, versioned `topology.json` document containing nodes and edges, but
|
||||
no presentation coordinates.
|
||||
- Render `/topology/current` as a LOGPile-owned, static SVG page opened in a
|
||||
separate browser tab. Do not modify the `internal/chart` submodule.
|
||||
- The Easy Bee parser may retain the small static evidence files required to
|
||||
enrich topology. Rendering must never execute commands, poll metrics, or
|
||||
depend on live state.
|
||||
|
||||
**Consequences:**
|
||||
- JSON can round-trip both an absent NUMA affinity and the real value 0.
|
||||
- Ordinary inputs get the topology supported by their normalized inventory;
|
||||
rich Bee bundles additionally get memory, storage-controller, and NVLink
|
||||
relationships.
|
||||
- Raw-export ZIP bundles include `topology.json` separately from
|
||||
`reanimator.json`.
|
||||
- Fan RPM animation, PSU live load, and other Bee live-only presentation are
|
||||
intentionally out of scope.
|
||||
|
||||
Reference in New Issue
Block a user