Files
logpile/internal/parser/vendors/nvidia
Mikhail Chusavitin 70cd541d9e v1.3.0: Add multiple vendor parsers and enhanced hardware detection
New parsers:
- NVIDIA Field Diagnostics parser with dmidecode output support
- NVIDIA Bug Report parser with comprehensive hardware extraction
- Supermicro crashdump (CDump.txt) parser
- Generic fallback parser for unrecognized text files

Enhanced GPU parsing (nvidia-bug-report):
- Model and manufacturer detection (NVIDIA H100 80GB HBM3)
- UUID, Video BIOS version, IRQ information
- Bus location (BDF), DMA size/mask, device minor
- PCIe bus type details

New hardware detection (nvidia-bug-report):
- System Information: server S/N, UUID, manufacturer, product name
- CPU: model, S/N, cores, threads, frequencies from dmidecode
- Memory: P/N, S/N, manufacturer, speed for all DIMMs
- Power Supplies: manufacturer, model, S/N, wattage, status
- Network Adapters: Ethernet/InfiniBand controllers with VPD data
  - Model, P/N, S/N from lspci Vital Product Data
  - Port count/type detection (QSFP56, OSFP, etc.)
  - Support for ConnectX-6/7 adapters

Archive handling improvements:
- Plain .gz file support (not just tar.gz)
- Increased size limit for plain gzip files (50MB)
- Better error handling for mixed archive formats

Web interface enhancements:
- Display parser name and filename badges
- Improved file info section with visual indicators

Co-Authored-By: Claude (qwen3-coder:480b) <noreply@anthropic.com>
2026-01-30 17:19:47 +03:00
..

NVIDIA Field Diagnostics Parser

Парсер для диагностических архивов NVIDIA HGX Field Diagnostics. Универсальный парсер, не привязанный к конкретному производителю серверов.

Поддерживаемые архивы

  • NVIDIA HGX Field Diag (работает с любыми серверами: Supermicro, Dell, HPE, и т.д.)
  • Архивы с результатами GPU диагностики NVIDIA

Формат архива

Парсер работает с архивами в формате:

  • .tar (несжатый tar)
  • .tar.gz (сжатый gzip)

Распознаваемые файлы

Основные файлы

  1. output.log - вывод dmidecode с информацией о системе

    • Производитель сервера (Manufacturer)
    • Модель сервера (Product Name) - например, SYS-821GE-TNHR
    • Серийный номер сервера (Serial Number) - например, A514359X5A07900
    • UUID, SKU Number, Family
  2. unified_summary.json - детальная информация о системе и компонентах

    • Информация о GPU (модель, производитель, VBIOS, PCI адреса)
    • Информация о NVSwitch (VendorID, DeviceID, Link speed/width)
    • Информация о производителе и модели сервера
  3. summary.json - результаты тестов диагностики

    • Результаты тестов GPU (inforom, checkinforom, gpumem, gpustress, pcie, nvlink, nvswitch, power)
    • Коды ошибок и статусы тестов
  4. summary.csv - альтернативный формат результатов тестов

Дополнительные файлы

  • gpu_fieldiag/*.log - детальные логи диагностики каждого GPU
  • inventory/*.json - дополнительная информация о конфигурации

Извлекаемые данные

Hardware Configuration

GPUs

{
  "slot": "GPUSXM1",
  "model": "NVIDIA Device 2335",
  "manufacturer": "NVIDIA Corporation",
  "firmware": "96.00.D0.00.03",
  "bdf": "0000:3a:00.0"
}

NVSwitch (как PCIe устройства)

{
  "slot": "NVSWITCHNVSWITCH0",
  "device_class": "NVSwitch",
  "manufacturer": "NVIDIA Corporation",
  "vendor_id": 4318,
  "device_id": 8867,
  "bdf": "0000:05:00.0",
  "link_speed": "16GT/s",
  "link_width": 2
}

Events

События создаются для:

  • Предупреждений и ошибок тестов диагностики
  • Примеры событий:
    • Row remapping failed - ошибка памяти GPU (Warning)
    • Различные тесты: connectivity, gpumem, gpustress, pcie, nvlink, nvswitch, power

Уровни severity:

  • info - информационные события (тесты прошли успешно)
  • warning - предупреждения (например, Row remapping failed)
  • critical - критические ошибки (коды ошибок 300+)

Пример использования

# Запуск веб-интерфейса
./logpile --file /path/to/A514359X5A07900_logs-20260122-074208.tar

# Веб-интерфейс будет доступен на http://localhost:8082

Автоопределение

Парсер автоматически определяет архивы NVIDIA Field Diag по наличию:

  • unified_summary.json с маркером "HGX Field Diag"
  • summary.json и summary.csv с результатами тестов
  • Директории gpu_fieldiag/

Confidence score:

  • unified_summary.json с маркером "HGX Field Diag": +40
  • summary.json: +20
  • summary.csv: +15
  • gpu_fieldiag/ directory: +15

Версионирование

Текущая версия парсера: 1.1.0

При модификации логики парсера необходимо увеличивать версию в константе parserVersion в файле parser.go.

История версий

  • 1.1.0 - Добавлен парсинг output.log (dmidecode) для извлечения модели и серийного номера сервера
  • 1.0.0 - Первоначальная версия с парсингом unified_summary.json и summary.json/csv

Примеры данных

Пример unified_summary.json

{
  "runInfo": {
    "diagVersion": "24287-XXXX-FLD-42658",
    "diagName": "HGX Field Diag",
    "finalResult": "FAIL",
    "errorCode": 363
  },
  "tests": [{
    "virtualId": "inventory",
    "components": [{
      "componentId": "GPUSXM1",
      "properties": [
        {"id": "Manufacturer", "value": "Any Server Vendor"},
        {"id": "VendorID", "value": "10de"},
        {"id": "DeviceID", "value": "2335"}
      ]
    }]
  }]
}

Пример summary.json

[
  {
    "Error Code": "005-000-1-000000000363",
    "Test": "gpumem",
    "Component ID": "SXM5_SN_1653925025497",
    "Notes": "Row remapping failed",
    "Virtual ID": "gpumem"
  }
]

Известные ограничения

  1. Парсер фокусируется на данных из unified_summary.json и summary.json
  2. Детальные логи из gpu_fieldiag/*.log пока не парсятся
  3. Информация о CPU, памяти и дисках не извлекается (в архиве отсутствует)

Разработка

Добавление новых полей

  1. Изучите структуру JSON в архиве
  2. Добавьте поля в структуры Component или Property
  3. Обновите функции parseGPUComponent или parseNVSwitchComponent
  4. Увеличьте версию парсера

Добавление новых типов файлов

  1. Создайте новый файл с парсером (например, gpu_logs.go)
  2. Добавьте парсинг в функцию Parse() в parser.go
  3. Обновите документацию