Пособие WMI — источник данных

Материал из Документация Ключ-АСТРОМ
Версия от 16:23, 22 сентября 2025; IKuznetsov (обсуждение | вклад) (Новая страница: «Чтобы ваше расширение могло собирать метрики и передавать их в Ключ-АСТРОМ, необходимо о...»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)

Чтобы ваше расширение могло собирать метрики и передавать их в Ключ-АСТРОМ, необходимо определить источник данных. В этом руководстве мы используем источник данных 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, используя шаблон ниже.

  1. Создайте две группы с именами Host и Network, которые будут запускаться каждую минуту. Обе группы должны иметь параметр, идентифицирующий хост, на котором запущено расширение.
  2. Создайте подгруппу для каждого запроса WMI, указанного выше, и сопоставьте полученные столбцы с метриками и измерениями.
  3. Добавьте измерение network.type, которое принимает значение Adapter или Interface, в зависимости от запроса WMI.
  4. Упакуйте новую версию вашего расширения и загрузите ее.
  5. Настройте его для мониторинга вашего хоста Windows. Это можно сделать во время активации расширения в Ключ-АСТРОМ.
  6. Подождите минуту, а затем проверьте сбор показателей.

Дополнительную информацию о синтаксисе источника данных 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.

Image1235.png