feat: improve inspur parsing and pci.ids integration

This commit is contained in:
2026-02-17 18:09:36 +03:00
parent b33cca5fcc
commit 758fa66282
26 changed files with 43567 additions and 247 deletions

View File

@@ -44,6 +44,31 @@ Registry: `internal/collector/registry.go`
- progress logs include active collection stage and snapshot progress.
- `ipmi` is currently a mock collector scaffold.
## Inspur/Kaytus parser notes
- Base hardware inventory comes from `asset.json` + `component.log` + `devicefrusdr.log`.
- Additional runtime enrichment is applied from `redis-dump.rdb` (if present):
- GPU serial/firmware/UUID and selected runtime metrics;
- NIC firmware/serial/part fields where text logs are incomplete.
- GPU/NIC enrichment from Redis is conservative (fills missing fields, avoids unsafe remapping).
### External PCI IDs lookup (no hardcoded model mapping)
`internal/parser/vendors/pciids` now loads IDs from a repo file
(`internal/parser/vendors/pciids/pci.ids`, embedded at build time) plus optional external overrides.
Lookup priority:
1. embedded `internal/parser/vendors/pciids/pci.ids`,
2. `./pci.ids`,
3. `/usr/share/hwdata/pci.ids`,
4. `/usr/share/misc/pci.ids`,
5. `/opt/homebrew/share/pciids/pci.ids`,
6. `LOGPILE_PCI_IDS_PATH` (highest priority overrides; supports path list).
Implication:
- for unknown device IDs (e.g. new NVIDIA GPU IDs), model naming can be updated via `pci.ids`
without changing parser code.
## Export behavior
Endpoints: