Облачная платформаEvolution

Метрики мониторинга сервиса Distributed Train


Сервис мониторинга позволяет получать информацию о производительности ресурсов в Distributed Train.

Во время использования Distributed Train автоматически собираются метрики состояния и потребления ресурсов, связанные с пользовательской нагрузкой. Эти данные передаются в Сервис Мониторинга и отображаются на сервисных и пользовательских дашбордах. Также метрики мониторинга доступны через API для интеграции с внешними системами.

Метрики бывают двух типов:

  • Счетчики (counter) — отображают значение нарастающим итогом. Значение сбрасывается при перезапуске Jupyter Servers. Обычно к таким метрикам применяются функции rate()/increase().

  • Текущие значения/измерения (gauge) — отображают текущие измерения, зафиксированные для определенного компонента. Обычно к ним применяют агрегирующие функции sum(), avg().

Метрики, которые предоставляет Distributed Train, имеют единый префикс mls_. Они поступают с подов в разрезе контейнеров.

Если вы используете GPU, будут доступны метрики, собираемые утилитой dcgm_exporter.

Задачи обучения и Jupyter Servers имеют разную схему развертывания на вычислительных узлах (pod):

  • Задачи обучения запускаются как заданное количество реплик с одним управляющим узлом (master). Реплика содержит один запускаемый контейнер.

  • Jupyter Servers запускается на одном узле. Количество контейнеров определяется источником образа. Пользовательские образы разворачиваются в одном контейнере (compute), образы Distributed Train — в двух: compute-контейнер и frontend-контейнер.

../_images/schm__monitoring.svg

Лейблы Distributed Train

Метрики содержат лейблы — дополнительные атрибуты, которые обогащают метрики метаинформацией и позволяют детально фильтровать и группировать данные мониторинга.

В Distributed Train используются системные лейблы — универсальные атрибуты для всех продуктов мониторинга, и дополнительные — специализированные атрибуты, которые содержат информацию, специфичную для задач обучения моделей или или Jupyter Servers.

Ниже приведены лейблы и их описание.

Лейбл

Описание

__name__

Название метрики.

project_id

Идентификатор проекта, в котором регистрируется потребление.

product_type

Продукт, метрики которого отслеживаются. Здесь product_type = mlspace.

allocation

Аллокация региона или default, если она не задана.

container

Название контейнера, на котором запускается пользовательская нагрузка.

created_by

Электронная почта пользователя, создавшего экземпляр.

instance_type

Тип вычислительного ресурса. Например, a100.1gpu.

node

Название узла региона, на котором запускаются вычислительные узлы (поды).

pod

Название вычислительного узла.

product_instance_name

Название задачи обучения или Jupyter Servers.

product_instance_type

Тип экземпляра, регистрирующего метрику. Возможные значения: jupyter_server, job.

region

Название региона.

workspace

Название воркспейса регистрируемого региона.

workspace_id

Идентификатор воркспейса регистрируемого региона.

Метрики Distributed Train

Ниже приведены метрики и информация о них.

GPU

Метрика

Тип

Описание

Дополнительные лейблы

mls_DCGM_FI_DEV_GPU_UTIL

Текущее значение (Gauge)

Потребление GPU. Метрика предоставляется NVIDIA dcgm-exporter.

gpu — номер GPU-устройства.

mls_DCGM_FI_DEV_POWER_USAGE

Текущее значение (Gauge)

Потребление питания GPU. Метрика предоставляется NVIDIA dcgm-exporter.

gpu — номер GPU-устройства.

mls_DCGM_FI_DEV_FB_FREE

Текущее значение (Gauge)

Свободный объем буфера памяти в МБ. Метрика предоставляется NVIDIA dcgm-exporter.

gpu — номер GPU-устройства.

mls_DCGM_FI_DEV_FB_USED

Текущее значение (Gauge)

Использованный объем буфера памяти в МБ. Эквивалентна показателям в nvidia-smi.

gpu — номер GPU-устройства.

mls_DCGM_FI_DEV_MEM_COPY_UTIL

Текущее значение (Gauge)

Использование памяти в операциях ввода-вывода.

gpu — номер GPU-устройства.

mls_DCGM_FI_PROF_PIPE_TENSOR_ACTIVE

Текущее значение (Gauge)

Показатель активности тензорного канала.

gpu — номер GPU-устройства.

Аллокации

Метрика

Тип

Описание

Дополнительные лейблы

mls_allocation_cpu_total

Текущее значение (Gauge)

Общее количество ресурсов CPU в аллокации.

Нет дополнительных лейблов

mls_allocation_cpu_allocated

Текущее значение (Gauge)

Количество занятых ресурсов CPU в аллокации.

Нет дополнительных лейблов

mls_allocation_gpu_allocated

Текущее значение (Gauge)

Количество занятых ресурсов GPU в аллокации.

Нет дополнительных лейблов

mls_allocation_gpu_total

Текущее значение (Gauge)

Общее количество ресурсов GPU в аллокации.

Нет дополнительных лейблов

mls_allocation_ram_allocated

Текущее значение (Gauge)

Количество занятых ресурсов RAM в аллокации.

Нет дополнительных лейблов

mls_allocation_ram_total

Текущее значение (Gauge)

Общее количество ресурсов RAM в аллокации.

Нет дополнительных лейблов

mls_allocation_size

Текущее значение (Gauge)

Общее количество узлов в аллокации.

Нет дополнительных лейблов

mls_node_resource_limits

Текущее значение (Gauge)

Лимит выделенных ресурсов на узле.

  • resource — тип ресурса: cpu, memory, nvidia_com_gpu;

  • unit — единица измерения: core, byte, integer.

Задачи обучения и Jupyter Server

Метрика

Тип

Описание

Дополнительные лейблы

mls_jupyter_notebooks_notebook_requests_total

Счетчик (Counter)

Количество HTTP-запросов к Jupyter Server.

Нет дополнительных лейблов

mls_jupyter_notebooks_jupyterlab_requests_total

Счетчик (Counter)

Количество HTTP-запросов к Jupyter Server в окружении JupyterLab (kernels и sessions).

Нет дополнительных лейблов

mls_ssh_notebooks_active_sessions

Текущее значение (Gauge)

Количество активных SSH-сессий в Jupyter Server.

Нет дополнительных лейблов

mls_container_cpu_usage_seconds_total

Счетчик (Counter)

Суммарное процессорное время, потребляемое контейнером в ядро-секундах. Метрика регистрируется в разрезе vCPU-контейнеров.

Нет дополнительных лейблов

mls_kube_pod_container_resource_limits

Текущее значение (Gauge)

Лимит выделенных ресурсов на контейнер.

  • resource — тип ресурса: cpu, memory;

  • unit — единица измерения: core, byte.

mls_container_memory_usage_byte

Текущее значение (Gauge)

Потребление памяти в байтах.

Нет дополнительных лейблов

mls_kube_pod_container_resource_limits

Текущее значение (Gauge)

Лимит выделенных ресурсов на контейнер.

  • resource — тип ресурса: cpu, memory;

  • unit — единица измерения: core, byte.

mls_kube_pod_status_phase

Текущее значение (Gauge)

Текущее состояние пода.

phase — статус пода. Например, Running, Pending.

mls_container_network_transmit_bytes_total

Счетчик (Counter)

Общее количество байт, переданных через сетевой интерфейс.

interface — сетевое устройство (интерфейс) пода.

mls_container_network_receive_bytes_total

Счетчик (Counter)

Общее количество байт, полученных через сетевой интерфейс.

interface — сетевое устройство (интерфейс) пода.

Сетевые хранилища

Метрика

Тип

Описание

Дополнительные лейблы

mls_shared_storage_usage_size_bytes

Текущее значение (Gauge)

Объем занятого места в сетевом хранилище в байтах.

Нет дополнительных лейблов

mls_shared_storage_usage_inodes

Текущее значение (Gauge)

Количество занятых уникальных идентификаторов файлов и папок (inodes) в сетевом хранилище.

Нет дополнительных лейблов

mls_shared_storage_limit_size_bytes

Текущее значение (Gauge)

Лимит занятого места в сетевом хранилище в байтах.

Нет дополнительных лейблов

mls_shared_storage_limit_inodes

Текущее значение (Gauge)

Лимит количества уникальных идентификаторов файлов и папок (inodes) в сетевом хранилище.

Нет дополнительных лейблов

mls_storage_usage_size_bytes

Текущее значение (Gauge)

Объем занятого места в NFS-хранилище в байтах.

Нет дополнительных лейблов

mls_storage_usage_inodes

Текущее значение (Gauge)

Количество занятых уникальных идентификаторов файлов и папок (inodes) в NFS-хранилище.

Нет дополнительных лейблов

mls_storage_limit_size_bytes

Текущее значение (Gauge)

Лимит занятого места в NFS-хранилище в байтах.

Нет дополнительных лейблов

mls_storage_limit_inodes

Текущее значение (Gauge)

Лимит количества уникальных идентификаторов файлов и папок (inodes) в NFS-хранилище.

Нет дополнительных лейблов