feat: improve inspur parsing and pci.ids integration
This commit is contained in:
59
README.md
59
README.md
@@ -17,6 +17,65 @@ LOGPile — standalone Go-приложение для анализа диагн
|
||||
- Загрузка JSON snapshot обратно через `/api/upload` для оффлайн-работы.
|
||||
- Экспорт в CSV / JSON.
|
||||
|
||||
## Дополнительные источники данных (Inspur/Kaytus)
|
||||
|
||||
Для архивов Inspur/Kaytus парсер использует не только `asset.json` и `component.log`,
|
||||
но и runtime-снимок `onekeylog/runningdata/redis-dump.rdb` (если файл присутствует).
|
||||
|
||||
Что это даёт:
|
||||
- обогащение GPU: `serial_number`, `firmware` (VBIOS/FW), часть runtime telemetry;
|
||||
- обогащение NIC: firmware/serial/part-number (когда в текстовых логах поля пустые).
|
||||
|
||||
## Внешний PCI IDs (без хардкода моделей)
|
||||
|
||||
Источник PCI IDs в проекте: официальный репозиторий
|
||||
[`pciutils/pciids`](https://github.com/pciutils/pciids), подключён как git submodule:
|
||||
`third_party/pciids`.
|
||||
Локальная копия для встроенного lookup хранится в:
|
||||
`internal/parser/vendors/pciids/pci.ids`.
|
||||
|
||||
Обновление локальной копии:
|
||||
|
||||
```bash
|
||||
make update-pci-ids
|
||||
```
|
||||
|
||||
Команда запускает `scripts/update-pci-ids.sh`, который скачивает актуальный
|
||||
`pci.ids` из submodule (`git submodule update --init --remote third_party/pciids`)
|
||||
и синхронизирует его в `internal/parser/vendors/pciids/pci.ids`.
|
||||
|
||||
Автообновление при сборке:
|
||||
- `make build` и `make build-all` запускают `scripts/update-pci-ids.sh --best-effort`;
|
||||
- если submodule уже инициализирован, `pci.ids` синхронизируется перед сборкой;
|
||||
- если submodule не инициализирован/недоступен, используется текущая копия файла,
|
||||
сборка не прерывается.
|
||||
|
||||
Отключить автообновление при сборке:
|
||||
|
||||
```bash
|
||||
SKIP_PCI_IDS_UPDATE=1 make build
|
||||
```
|
||||
|
||||
Если репозиторий клонирован без submodule:
|
||||
|
||||
```bash
|
||||
git submodule update --init third_party/pciids
|
||||
```
|
||||
|
||||
Парсер использует такой порядок lookup:
|
||||
1. встроенный в бинарник `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` (можно передать несколько путей через `:`; имеет наивысший приоритет и переопределяет предыдущие значения).
|
||||
|
||||
Пример запуска:
|
||||
|
||||
```bash
|
||||
LOGPILE_PCI_IDS_PATH=/path/to/pci.ids ./bin/logpile
|
||||
```
|
||||
|
||||
## Требования
|
||||
|
||||
- Go 1.22+
|
||||
|
||||
Reference in New Issue
Block a user