Поделиться через


Сбор счетчиков производительности из виртуальной машины с помощью Azure Monitor

Счетчики производительности предоставляют аналитические сведения о производительности компонентов виртуального оборудования, операционных систем и рабочих нагрузок. Соберите счетчики из виртуальных машин Windows и Linux, используя правило сбора данных (DCR) с источником данных счетчиков производительности.

Сведения о создании DCR приведены в статье "Сбор данных из клиента виртуальной машины" с помощью Azure Monitor. В этой статье приведены дополнительные сведения о типе источника данных счетчиков производительности.

Добавлен новый источник данных для показателей производительности OpenTelemetry, поддерживающий рабочую область Azure Monitor как место назначения. Дополнительные сведения о преимуществах использования этого нового источника данных см. здесь.

Замечание

Чтобы работать с определением DCR напрямую или развертывать с другими методами, такими как шаблоны ARM, см. примеры правил сбора данных (DCR) в Azure Monitor.

Настройка источника данных счетчиков производительности OpenTelemetry (предварительная версия)

Создайте DCR с помощью процесса сбора данных из клиента виртуальной машины с помощью Azure Monitor. На вкладке «Сбор и передача» в DCR выберите счетчики производительности OpenTelemetry в раскрывающемся списке тип источника данных. Выберите из предопределенного набора объектов для сбора и их частоты выборки. Чем ниже частота выборки, тем чаще собирается значение.

Снимок экрана: форма портала Azure для выбора базовых счетчиков производительности OpenTelemetry в правиле сбора данных.

Выберите "Настраиваемый" для более детального выбора счетчиков производительности OpenTelemetry.

Снимок экрана: форма портала Azure для выбора настраиваемых счетчиков производительности OpenTelemetry в правиле сбора данных.

Настройка источника данных счетчиков производительности

Создайте DCR с помощью процесса сбора данных из клиента виртуальной машины с помощью Azure Monitor. На вкладке "Сбор и доставка " DCR выберите счетчики производительности из раскрывающегося списка типов источника данных . Выберите из предопределенного набора объектов для сбора и их частоты выборки. Чем ниже частота выборки, тем чаще собирается значение.

Снимок экрана: форма портал Azure для выбора базовых счетчиков производительности в правиле сбора данных.

Выберите Пользовательский, чтобы указать XPath для сбора счетчиков производительности, не доступных при Обычном выборе. Используйте формат \PerfObject(ParentInstance/ObjectInstance#InstanceIndex)\Counter.

Подсказка

Если имя счетчика содержит амперсанд (>), замените его на &. Например: \Memory\Free & Zero Page List Bytes.

Снимок экрана: форма портал Azure для выбора пользовательских счетчиков производительности в правиле сбора данных.

Предупреждение

Будьте осторожны при ручном определении счетчиков для DCR, связанных с компьютерами под управлением Windows и Linux, так как некоторые имена счетчиков Windows и Linux могут определяться как одна и та же метрика и вызывать повторный сбор данных. Например, указание обоих \LogicalDisk(*)\Disk Transfers/sec (Windows) и Logical Disk(*)\Disk Transfers/sec (Linux) в одном DCR приведет к тому, что метрика передачи данных диска будет собираться дважды за период выборки.

Этого поведения можно избежать, не собирая счетчики производительности в правилах сбора данных, которые не указывают тип платформы. Убедитесь, что счетчики Windows включены только в контроллеры домена, связанные с компьютерами Windows, и счетчики Linux включены только в контроллеры домена, связанные с компьютерами Linux.

Замечание

Ресурсы Microsoft.HybridCompute (серверы с поддержкой Azure Arc) в настоящее время не могут просматриваться в обозревателе метрик, но их данные метрик можно получить с помощью REST API метрик (пространства имен метрик — Список, определения метрик — Список и метрики — Список).

Добавить пункты назначения

Счетчики производительности OpenTelemetry можно отправлять в рабочую область Azure Monitor, где ее можно запрашивать с помощью PromQl. Это рекомендуемое назначение данных для всех пользователей, так как Container Insights, Application Insights и VM Insights все переходят на использование рабочей области Azure Monitor в качестве источника метрик вместо рабочих областей Log Analytics.

Снимок экрана, который показывает настройку назначения рабочей области Azure Monitor в правиле сбора данных.

Счетчики производительности по-прежнему можно отправлять в рабочую область Log Analytics, где она хранится в таблице Perf и (или) Azure Monitor Metrics (предварительная версия), где она доступна в обозревателе метрик. Добавьте назначение типа журналы Azure Monitor и выберите рабочую область Log Analytics. Хотя вы можете добавить несколько рабочих областей, помните, что это приведет к отправке повторяющихся данных на каждый из них, что приведет к дополнительным затратам. Дополнительные сведения не требуются для метрик Azure Monitor (предварительная версия), так как они хранятся на уровне подписки для отслеживаемого ресурса.

Снимок экрана, показывающий настройку назначения данных в журналах Azure Monitor для правила сбора данных.

Проверка сбора данных

Чтобы убедиться, что счетчики производительности OpenTelemetry собираются в рабочей области Azure Monitor, начните с определения области запроса для AMW, выбранной в качестве места назначения для DCR, и проверьте наличие любых системных метрик, передающихся должным образом.

Снимок экрана: записи, возвращенные из AMW.

Если для AMW установлен режим доступа к контексту ресурсов, вы также можете убедиться, что тот же запрос работает должным образом при ограничении к самой виртуальной машине, перейдя в раздел «Метрики виртуальной машины» на портале и выбрав выпадающее меню «Добавить с редактором» или «Просмотр метрик AMW в редакторе» в разделе «Пространства имен метрик».

Снимок экрана, показывающий, как перейти в редактор AMW PromQl из панели метрик виртуальных машин.

Обе точки входа должны привести к редактору PromQl с запросом, ограниченным ресурсом виртуальной машины, теперь, но при этом тот же запрос будет работать как раньше, без необходимости фильтрации по измерению VM microsoft.resourceid.

Снимок экрана: записи, возвращенные из виртуальной машины, хранящиеся в AMW.

Снимок экрана, показывающий, что запрос ограничен виртуальной машиной, а не AMW.

Чтобы проверить, что источник данных устаревшего счетчика производительности собирается в рабочей области Log Analytics, проверьте наличие записей в таблице Perf. На виртуальной машине или в рабочей области Log Analytics на портале Azure выберите журналы и нажмите кнопку "Таблицы ". В категории «Виртуальные машины» нажмите «Выполнить» рядом с Perf.

Снимок экрана: записи, возвращаемые из таблицы Perf.

Чтобы проверить, что источник данных устаревшего счетчика производительности собирается в метриках Azure Monitor, выберите метрики на виртуальной машине на портале Azure. Выберите гостевую виртуальную машину (Windows) или azure.vm.linux.guestmetrics для пространства имен и выберите метрику для добавления в представление.

Снимок экрана: клиентские метрики в обозревателе метрик.

Счетчики производительности

Следующие счетчики производительности доступны для сбора агентом Azure Monitor для виртуальных машин Windows и Linux. При создании или обновлении правила сбора данных можно изменить частоту выборки.

Счетчик производительности OTel Тип Единица Aggregation Монотонный Измерения Description
загруженность процессора системы Измеритель 1 N/A FALSE ЦП: логический номер ЦП, начиная с 0 (значения: Any Str)
состояние: разбивка использования ЦП по типу (значения: простой, прерывание, nice, softirq, steal, система, пользователь, ожидание)
Разница в system.cpu.time с момента последнего измерения на логическую ЦП, разделенная на истекшее время (0–1).
system.cpu.time Сумма s Совокупный TRUE ЦП: логический номер ЦП, начиная с 0 (значения: Any Str)
состояние: разбивка использования ЦП по типу (значения: простой, прерывание, nice, softirq, steal, система, пользователь, ожидание)
Общее количество секунд, которое каждый логический процессор тратит в каждом режиме.
система.ЦП.первое.количество Сумма {cpu} Совокупный FALSE (нет) Количество доступных физических ЦП.
system.cpu.logical.count Сумма {cpu} Совокупный FALSE ЦП: логический номер ЦП, начиная с 0 (значения: Any Str) Количество доступных логических ЦП.
системa.cpu.средняя_нагрузка_за_5м Измеритель {thread} N/A FALSE (нет) Средняя загрузка ЦП в течение 5 минут.
система.ЦПУ.средняя_нагрузка.1м Измеритель {thread} N/A FALSE (нет) Средняя загрузка ЦП в течение 1 минуты.
system.cpu.load_average.15m Измеритель {thread} N/A FALSE (нет) Средняя загрузка ЦП в течение 15 минут.
система.ЦПУ.частота Измеритель Гц N/A FALSE (нет) Текущая частота ядра ЦП в Гц.
process.uptime Измеритель s N/A FALSE (нет) Время работы процесса.
process.threads Сумма {threads} Совокупный FALSE (нет) Количество потоков обработки.
процесс.ожидающие_сигналы Сумма {сигналы} Совокупный FALSE (нет) Количество ожидающих сигналов для процесса (только Для Linux).
процесс.пейджинг.ошибки Сумма {ошибки} Совокупный TRUE тип ошибки (значения: основной, дополнительный) Количество ошибок страниц, сделанных процессом (только для Linux).
process.open_file_descriptors Сумма {количество} Совокупный FALSE (нет) Количество дескрипторов файлов, используемых процессом.
Процесс.Память.Виртуальная Сумма Около Совокупный FALSE (нет) Размер виртуальной памяти.
использование памяти процесса Измеритель 1 N/A FALSE (нет) Процент общего объема физической памяти, используемой процессом.
process.использование памяти Сумма Около Совокупный FALSE (нет) Объем используемой физической памяти.
system.disk.weighted_io_time Сумма s Совокупный FALSE устройство: имя диска (значения: Any Str) Время активации диска, умноженное на длину очереди.
system.disk.ожидающие_операции Сумма {операции} Совокупный FALSE устройство: имя диска (значения: Any Str) Размер очереди ожидающих операций ввода-вывода.
операции с системой диска Сумма {операции} Совокупный TRUE устройство: имя диска (значения: Any Str)
направление потока (значения: чтение, запись)
Количество операций диска.
система.диск.время_работы Сумма s Совокупный TRUE устройство: имя диска (значения: Any Str)
направление потока (значения: чтение, запись)
Время, затраченное на операции диска.
система.диск.объединённый Сумма {операции} Совокупный TRUE устройство: имя диска (значения: Any Str)
направление потока (значения: чтение, запись)
Операции чтения и записи диска объединяются в отдельные физические операции.
system.disk.io_time Сумма s Совокупный TRUE устройство: имя диска (значения: Any Str) Время, затраченное на активацию диска.
system.disk.io Сумма Около Совокупный TRUE устройство: имя диска (значения: Any Str)
направление потока (значения: чтение, запись)
Переданные байты диска.
process.handles Сумма {количество} Совокупный FALSE (нет) Количество открытых дескрипторов (только для Windows).
процесс.операции.диска Сумма {операции} Совокупный TRUE направление потока (значения: чтение, запись) Операции диска, выполняемые процессом.
process.disk.io Сумма Около Совокупный TRUE направление потока (значения: чтение, запись) Переданные байты диска.
использование.процессора.процесс员工 Измеритель 1 N/A FALSE состояние: разбивка использования ЦП (значения: система, пользователь, ожидание) Процент общего времени ЦП, используемого процессом с момента последнего слома (0–1).
process.cpu.time Сумма s Совокупный TRUE состояние: разбивка использования ЦП (значения: система, пользователь, ожидание) Общее количество секунд ЦП, разбитых по состояниям.
переключения контекста процесса Сумма {количество} Совокупный TRUE тип переключателя контекста (значения: Any Str) Количество раз, когда процесс переключался контекстом (только для Linux).
система.использование_памяти Измеритель 1 N/A FALSE состояние: разбивка использования памяти (значения: буферизованное, кэшированное, неактивное, свободное, slab_reclaimable, slab_unreclaimable, используемое) Процент используемых байтов памяти.
использование памяти системы Сумма Около Совокупный FALSE состояние: разбивка использования памяти (значения: буферизованное, кэшированное, неактивное, свободное, slab_reclaimable, slab_unreclaimable, используемое) Байты используемой памяти.
система.память.размер_страницы Измеритель Около N/A FALSE (нет) Настроенный размер страницы системы.
лимит.памяти.системы Сумма Около Совокупный FALSE (нет) Общее количество доступных байтов памяти.
system.linux.memory.dirty Сумма Около Совокупный FALSE (нет) Объем грязной памяти (/proc/meminfo).
system.linux.memory.available Сумма Около Совокупный FALSE (нет) Оценка доступной памяти (только для Linux).
система.сеть.пакеты Сумма {packets} Совокупный TRUE устройство: имя сетевого интерфейса (значения: Any Str)
направление: направление потока (значения: получение, передача)
Количество передаваемых пакетов.
system.network.io Сумма Около Совокупный TRUE (нет) Байты, передаваемые и полученные.
System.network.errors Сумма Ошибки Совокупный FALSE устройство: имя сетевого интерфейса (значения: Any Str)
направление: направление потока (значения: получение, передача)
Количество возникших ошибок.
system.network.dropped Сумма {packets} Совокупный TRUE устройство: имя сетевого интерфейса (значения: Any Str)
направление: направление потока (значения: получение, передача)
Число отброшенных пакетов.
system.network.conntrack.max Сумма {записи} Совокупный FALSE (нет) Ограничение для записей в таблице conntrack.
system.network.conntrack.count Сумма {записи} Совокупный FALSE (нет) Количество записей в таблице conntrack.
система.сеть.соединения Сумма {подключения} Совокупный FALSE протокол: сетевой протокол (значения: tcp)
состояние подключения (значения: Any Str)
Количество подключений.
system.uptime Измеритель s N/A FALSE (нет) Время работы системы.
система.процессы.созданы Сумма {процессы} Совокупный TRUE (нет) Общее количество созданных процессов.
system.processes.count (количество процессов системы) Сумма {процессы} Совокупный FALSE состояние: состояние процесса (значения: заблокированная, управляющая программа, отсоединение, бездействие, блокировка, разбиение по страницам, выполнение, спящий, остановленный, система, неизвестные, зомби) Общее количество процессов в каждом состоянии.
system.paging.utilization Измеритель 1 N/A FALSE устройство: имя файла страницы (значения: Any Str)
состояние: тип использования памяти в страницах (значения: в кэше, свободные, занятые)
Использование буфера (Unix) или pagefile (Windows).
system.paging.usage Сумма Около Совокупный FALSE устройство: имя файла страницы (значения: Any Str)
состояние: тип использования памяти в страницах (значения: в кэше, свободные, занятые)
Использование буфера (Unix) или pagefile (Windows).
system.paging.operations Сумма {операции} Совокупный TRUE направление: поток страницы (значения: page_in, page_out)
тип сбоя (значения: основной, дополнительный)
Операции разбиения по страницам.
система.страничная.подкачка.ошибки Сумма {ошибки} (нет) TRUE тип сбоя (значения: основной, дополнительный) Количество сбоев страниц.
система.файловая_система.использование Измеритель 1 N/A FALSE устройство: идентификатор файловой системы
режим: Режим монтирования (значения: ro, rw)
mountpoint: Путь
тип файловой системы (значения: ext4, tmpfs и т.д.)
Доля используемых файловой системы байтов.
система.файловая_система.использование Сумма Около Совокупный FALSE устройство: идентификатор файловой системы
режим: режим монтирования
mountpoint: Путь
тип: Тип файловой системы
состояние: тип использования (значения: бесплатный, зарезервированный, используемый)
Использованные байты файловой системы.
system.filesystem.inodes.usage Сумма {inodes} Совокупный FALSE устройство: идентификатор файловой системы
режим: режим монтирования
mountpoint: Путь
тип: Тип файловой системы
состояние: тип использования (значения: бесплатный, зарезервированный, используемый)
Используемые иноды файловой системы.

Дальнейшие шаги