• v1.25 586ac782b2

    logpile v1.25 Stable

    mchus released this 2026-07-29 10:32:52 +03:00 | 55 commits to main since this release

    Что нового

    Новое: раздельная идентичность NVIDIA HGX tray/baseboard (Inspur/Kaytus)

    Для onekeylog-дампов Inspur/Kaytus (HGX B200, KR9288-X3) парсер раньше отдавал
    в качестве идентичности «GPU-платы» только механический FRU-серийник вендора
    (component/fru.txt, Board Product : CA) — это серийник карриера/трея,
    привязанный к шасси, который не меняется при замене самой NVIDIA
    HGX-платы (SXM+NVSwitch, «delta board»). Из-за этого анализ замены платы по
    серийнику давал ложный вывод «плату не меняли».

    Теперь парсер читает настоящую аппаратную идентичность (Model/PartNumber/
    SerialNumber для HGX tray и HGX baseboard) из
    log/bmc/oem-commer-log/HGX_HWInfo_FWVersion.log и отдаёт её отдельной
    сущностью инвентаря (HardwareConfig.HGX), не смешивая с общим FRU. Заодно
    значения-заглушки Redfish (NA/N/A) для отключённых GPU больше не
    просачиваются в серийник/модель/партномер.

    Исправление: HGX-парсер больше не терял повторяющиеся алармы

    ParseIDLLog дедуплицировал события по eventID|eventType|description
    для повторяющегося аларма (например, флапающая проверка присутствия PCIe
    на HGX-платах Inspur) это одинаково для каждого повторения, и все повторные
    occurrences схлопывались в первое. В результате applyGPUStatusFromEvents
    считал состояние GPU по устаревшему, урезанному списку событий и мог
    пометить сбойный GPU как исправный. Дедупликация теперь учитывает и
    временную метку, так что повторяющиеся алармы больше не теряются.

    Новое: поддержка ещё одного варианта onekeylog-раскладки Inspur HGX

    Дампы вида dump_<serial>_<timestamp>/ (проверено на HGX B200, KR9288-X3)
    используют раскладку без devicefrusdr.log:

    • FRU и sensors парсятся из сырого текстового вывода ipmitool
      (component/fru.txt, component/sensor.txt/sdr.txt).
    • PCIe/GPU presence и link state читаются из структурного снапшота
      log/bmc/diagnose/OtrdDiagnoseComponent.json, независимо от истории
      алармов SEL/IDL; устройства ниже согласованной max link speed/width
      помечаются как degraded.
    • SEL при отсутствии selelist.csv берётся из log/sel.csv.
    • Сбои BMC-компонентов (log/bmc/commer-comp/*, включая ротированные
      *.tar.gz.N) парсятся в события отдельно от SEL/IDL.
    • Дубликаты SEL-событий из разных источников схлопываются по
      (timestamp, event_type, description).
    • Если после всех fallback'ов FRU/sensors всё ещё пусты, это теперь видно
      как CollectionError, а не тихо пустой инвентарь.

    На проверочном дампе: fru 0→21, sensors 0→303, 8 GPU видны на Gen5 x16 в
    слотах 100-107.

    Запуск на macOS

    Снимите карантинный атрибут через терминал: xattr -d com.apple.quarantine /path/to/logpile-darwin-arm64
    После этого бинарник запустится без предупреждения Gatekeeper.

    Downloads