# dcgm-exporter is dead and NVML answers N/A

> На GB10 с unified memory dcgm-exporter не работает, а NVML отдаёт N/A по многим полям, на которые операторы вешают алерты; мы парсим nvidia-smi в textfile-коллектор node-exporter по systemd-таймеру и отдельным алертом ловим молчание самого коллектора.

- Platform: DGX Spark (GB10)
- Runtime: dcgm-exporter / NVML
- Published: 2026-09-02
- Sources: https://agmind.ai/ru/reports/dgx-spark-gpu-monitoring/
- Canonical: https://agmind.ai/ru/symptoms/dcgm-exporter-dead-nvml-na-gb10/

## Что видно

vLLM отвечает на запросы, дашборд в Grafana собран ровно так же, как на
любой CUDA-коробке, и весь зелёный. На панелях пусто или прочерки, и почему —
нигде не написано. `nvidia-smi` и питоновские сниппеты поверх NVML
возвращают

```
N/A
```

по многим полям, на которые операторы вешают алерты, в первую очередь по
памяти. Экспортер запущен. Просто за ним ничего нет.

## Где мы это поймали

DGX Spark, машины на GB10 в нашей лаборатории, обслуживание через vLLM на
прошивке и драйверах, актуальных на момент нашего bring-up. Отчёт
датирован 2026-08-16 и версий драйвера, прошивки и экспортера не называет;
эта карточка тоже. Коробка работала по рецепту инференса, ссылка на него —
в разделе «Доказательства».

## Причина

Unified memory. У GB10 нет отдельного пула VRAM, а счётчики NVML строились
в расчёте на то, что он есть, поэтому инструменты, которые ждут пул, не
показывают ничего. dcgm-exporter на Spark'е с его unified memory тоже не
работает; отчёт фиксирует это как отдельный отказ и механизм не разбирает.
Громкого падения нет: процесс работает, а дашборд за ним стоит пустой.

Два отказа маскируют друг друга. Экспортер молчит, значит, вы идёте
проверять библиотеку. Библиотека отвечает N/A, значит, экспортер ответил бы
так же, и копать дальше незачем. Отсутствующая метрика никого не будит.

## Лечение

Это обход, а не починка: штатный стек остаётся сломанным, мы его просто
огибаем. Обычный текстовый вывод `nvidia-smi` на Spark'е честнее библиотек
под ним. Поля, которые отвечают, отвечают настоящими значениями. Коллектор,
который у нас крутится:

1. systemd-таймер запускает `nvidia-smi` с коротким интервалом.
2. Небольшой скрипт парсит только те поля, которые на GB10 реально отвечают,
   и пишет их метриками Prometheus в `.prom`-файл.
3. textfile-коллектор node-exporter'а подхватывает файл вместе с остальными
   метриками хоста.
4. Ещё одна метрика — таймстемп последнего запуска самого коллектора; алерт
   срабатывает, когда таймстемп перестаёт обновляться.

Никаких демонов сверх тех, что хост уже крутит, никаких привилегированных
сайдкаров. На дашборде только те метрики, про которые человек руками
проверил, что на этом железе они отвечают. Схема — в отчёте на этом сайте;
детали парсинга — в разборе на Habr, ссылка в разделе «Доказательства».

Две проверки, прежде чем верить хоть одной панели на Spark'е: отвечает ли
это поле на этой коробке и когда коллектор запускался в последний раз.

## Открыто ли апстрим?

Мы не отслеживаем. Отчёт отмечает лишь, что поведение мониторинга может
меняться от релиза к релизу драйвера и что коллектор переживает такие смены
лучше библиотечных биндингов. К датацентровому Blackwell всё это не
относится: там правильный ответ — dcgm-exporter.

## Доказательства

- [GPU-мониторинг на DGX Spark: когда dcgm-exporter мёртв, а NVML отвечает N/A](https://agmind.ai/ru/reports/dgx-spark-gpu-monitoring/) —
  исходный отчёт
- [Рецепт инференса, к которому относится коллектор](https://agmind.ai/ru/reports/deepseek-v4-flash-0731-dgx-spark-recipe/)
- [Полный разбор с деталями парсинга на Habr, по-русски](https://habr.com/ru/articles/1030802/)

---

Machine-readable claim registry: https://agmind.ai/claims.json · llms.txt: https://agmind.ai/llms.txt
