Pro Features
LLM и GPU метрики
Детальные LLM-метрики — перцентили ITL/TPOT, оценка стоимости — и расширенный GPU-коллектор nvidia-smi-pro
Обзор
OSS-движок в шаге std/llm@v1 уже измеряет TTFT,
tokens/sec и количество токенов на запрос, а секция gpu:
снимает состояние GPU хоста во время прогона. Платные агенты добавляют
детальный слой поверх тех же потоков:
- Перцентили ITL/TPOT — inter-token latency (avg/p50/p95/p99) и время
на выходной токен для каждого стримингового запроса, вливаются в объект
metricsшага как трендыpro_llm_*— попадают в сводку прогона и в пороги наравне со встроенными метриками; - Оценка стоимости — стоимость запроса в USD по вашему прайс-листу (агент не содержит встроенных таблиц цен);
- Агрегаты за прогон — распределения TTFT/total/ITL и суммарная
стоимость в разрезе
(endpoint, model); - GPU-источник
nvidia-smi-pro— всё, что снимает OSS-источникnvidia-smi, плюс частоты SM/памяти, причины троттлинга и агрегаты по compute-процессам.
vus: 10
duration: 5m
gpu:
enabled: true
source: nvidia-smi-pro # расширенный pro-коллектор
interval_ms: 1000
steps:
- name: chat completions
use: std/llm@v1
with:
url: http://localhost:11434/v1/chat/completions
model: llama3.1
prompt: Summarize the plot of Hamlet in three sentences.
max_tokens: 256
thresholds:
pro_llm_itl_p95_ms: p95 < 100 # гейт по inter-token latency
На OSS-сборке метрики pro_llm_* просто не появляются, а
gpu.source: nvidia-smi-pro один раз предупреждает о неизвестном
источнике — сам прогон работает без изменений.
Метрики шага
Каждый успешный запрос std/llm@v1 добавляет в свой объект metrics:
| Ключ | Вид | Значение |
|---|---|---|
pro_llm_itl_avg_ms | тренд | Средняя inter-token latency (дельты между чанками; TTFT-интервал исключён) |
pro_llm_itl_p50_ms / pro_llm_itl_p95_ms / pro_llm_itl_p99_ms | тренд | Перцентили ITL по чанкам запроса |
pro_llm_tpot_ms | тренд | Время на выходной токен: (total − ttft) / (completion_tokens − 1) |
pro_llm_cost_usd | счётчик | Стоимость запроса по настроенным ценам |
ITL-метрики появляются только у стриминговых запросов с ≥2 чанками; TPOT требует TTFT и ≥2 выходных токенов; стоимость — только когда для модели задана цена. Упавшие запросы метрик не несут, но учитываются в счётчике ошибок агрегатов прогона.
Так как это обычные тренды/счётчики, они работают везде, где работают
встроенные llm_*: финальная сводка, --summary-export JSON и гейты
thresholds:.
Настройка стоимости
Цены задаёте вы — за 1 млн входных/выходных токенов, в USD; жёстко зашитых таблиц нет. Агент читает их (в порядке приоритета):
-
PERFSCALE_LLM_PRICES— инлайн-JSON:{ "gpt-4o-mini": { "input_per_1m": 0.15, "output_per_1m": 0.6 }, "*": { "input_per_1m": 1.0, "output_per_1m": 3.0 } } -
PERFSCALE_LLM_PRICES_FILE— путь к файлу с тем же JSON.
"*" — запасная цена для моделей без точной записи. Модель без подходящей
цены просто не получает метрику pro_llm_cost_usd; некорректная
конфигурация пишет одно предупреждение и отключает метрики стоимости —
прогон это не роняет.
Стоимость одного запроса:
prompt_tokens / 1M × input_per_1m + completion_tokens / 1M × output_per_1m.
GPU: nvidia-smi-pro
Pro-коллектор снимает стандартные поля (utilization, VRAM, температура, мощность — сводка прогона не меняется) плюс, «плоско» в каждый сэмпл таймсерии:
| Ключ | Значение |
|---|---|
pro_gpu_clocks_sm_mhz / pro_gpu_clocks_mem_mhz | Текущие частоты SM / памяти |
pro_gpu_throttle_reasons | Битовая маска clocks_event_reasons.active (0 = троттлинга нет) |
pro_gpu_process_count / pro_gpu_process_memory_mib | Compute-процессы на устройстве (количество / суммарная VRAM, MiB) |
Просадка частот рядом с ненулевой маской троттлинга во время фазы нагрузки — прямое свидетельство теплового/энергетического троттлинга локального LLM-сервера, а агрегаты по процессам сразу показывают, не делит ли кто-то ещё GPU с тестируемым сервером.
Запрос compute-процессов (nvidia-smi --query-compute-apps) выполняется
на условии best-effort: если он падает (старые драйверы, WSL), строки GPU
всё равно приходят — без полей pro_gpu_process_*. Попроцессная
utilization через nvidia-smi недоступна (для этого нужен NVML).
Встроенный источник nvidia-smi не меняется — nvidia-smi-pro включается
только явно.