Пособие WMI — источник данных
Чтобы ваше расширение могло собирать метрики и передавать их в Ключ-АСТРОМ, необходимо определить источник данных. В этом руководстве мы используем источник данных WMI. Это должен быть раздел wmi, вызываемый в вашем расширении.
Цель раздела wmi — определить запросы WMI, которые извлекают ваши метрики, частоту их выполнения и способы сопоставления их результатов с метриками и измерениями, которые Ключ-АСТРОМ может обрабатывать. Группы и подгруппы используются для организации данных и определения общих свойств, таких как измерения и частота выполнения.
Для нашего расширения мы используем три WMI-запроса. Мы добавим их в нашу базу данных extension.yaml и используем их результаты в качестве метрик Ключ-АСТРОМ:
Извлечение данных об использовании ЦП, использовании ЦП пользователем и простое ЦП для каждого из процессоров хоста (с разделением по идентификатору ЦП):
| SELECT Name, PercentProcessorTime, PercentIdleTime, PercentUserTime FROM Win32_PerfFormattedData_PerfOS_Processor WHERE Name LIKE '_Total' |
Извлечение общего количества отправленных и полученных байтов в секунду для каждого сетевого адаптера, работающего на хосте:
| SELECT Name, BytesTotalPersec, BytesReceivedPersec, BytesSentPersec FROM Win32_PerfFormattedData_Tcpip_NetworkAdapter |
Извлечь общее количество отправленных и полученных байтов в секунду для каждого сетевого интерфейса, работающего на хосте:
| SELECT Name, BytesTotalPersec, BytesReceivedPersec, BytesSentPersec FROM Win32_PerfFormattedData_Tcpip_NetworkInterface |
Советы
Лучшие практики использования метрик
Добавляйте к ключам метрик префикс имени расширения, чтобы избежать конфликтов с другими метриками в Ключ-АСТРОМ. В этом примере мы добавляем к каждому ключу метрики префикс custom.demo.host-observability.
Измерение хоста
Вы можете идентифицировать хост, на котором запущено расширение, с помощью this:device.host переданного в качестве значения измерения.
Статические размеры
Вы можете добавлять измерения, которые являются фиксированными строками, используя префикс const:.
Определите свой источник данных
Добавьте wmi в раздел extension.yaml, используя шаблон ниже.
- Создайте две группы с именами
HostиNetwork, которые будут запускаться каждую минуту. Обе группы должны иметь параметр, идентифицирующий хост, на котором запущено расширение. - Создайте подгруппу для каждого запроса WMI, указанного выше, и сопоставьте полученные столбцы с метриками и измерениями.
- Добавьте измерение
network.type, которое принимает значениеAdapterилиInterface, в зависимости от запроса WMI. - Упакуйте новую версию вашего расширения и загрузите ее.
- Настройте его для мониторинга вашего хоста Windows. Это можно сделать во время активации расширения в Ключ-АСТРОМ.
- Подождите минуту, а затем проверьте сбор показателей.
Дополнительную информацию о синтаксисе источника данных WMI см. в Справочнике по источникам данных WMI.
| wmi:
- group: Host interval: minutes: 1 dimensions: - key: host value: this:device.host subgroups: - subgroup: CPU query: SELECT Name, PercentProcessorTime, PercentIdleTime, PercentUserTime FROM Win32_PerfFormattedData_PerfOS_Processor WHERE Name LIKE '_Total' metrics: - key: custom.demo.host-observability.host.cpu.time.processor value: column:PercentProcessorTime - key: custom.demo.host-observability.host.cpu.time.idle value: column:PercentIdleTime - key: custom.demo.host-observability.host.cpu.time.user value: column:PercentUserTime dimensions: - key: host.cpu.id value: column:Name - group: Network interval: minutes: 1 dimensions: - key: host value: this:device.host subgroups: - subgroup: Adapters query: SELECT Name, BytesTotalPersec, BytesReceivedPersec, BytesSentPersec FROM Win32_PerfFormattedData_Tcpip_NetworkAdapter metrics: - key: custom.demo.host-observability.network.bytes.persec value: column:BytesTotalPersec - key: custom.demo.host-observability.network.bytes.received.persec value: column:BytesReceivedPersec - key: custom.demo.host-observability.network.bytes.sent.persec value: column:BytesSentPersec dimensions: - key: network.type value: const:Adapter - key: network.name value: column:Name - subgroup: Interfaces query: SELECT Name, BytesTotalPersec, BytesReceivedPersec, BytesSentPersec FROM Win32_PerfFormattedData_Tcpip_NetworkInterface metrics: - key: custom.demo.host-observability.network.bytes.persec value: column:BytesTotalPersec - key: custom.demo.host-observability.network.bytes.received.persec value: column:BytesReceivedPersec - key: custom.demo.host-observability.network.bytes.sent.persec value: column:BytesSentPersec dimensions: - key: network.type value: const:Interface - key: network.name value: column:Name |
Результаты
Ваши шесть показателей должны отображаться в браузере метрик. Чтобы найти их, отфильтруйте по тексту custom.demo.
