3 Обнаружение CPUs и ядер CPU
Аналогично file systems обнаружены, можно также обнаружить CPUs и ядра CPU.
Ключ элемента данных
Ключ элемента данных, который следует использовать в правиле обнаружения:
system.cpu.discovery
Поддерживаемые макросы
Этот ключ обнаружения возвращает два макроса — {#CPU.NUMBER} и {#CPU.STATUS}, которые соответственно определяют порядковый номер и состояние CPU. Он перечисляет процессоры от 0 до N - 1, где N — общее количество процессоров.
[
{
"{#CPU.NUMBER}": 0,
"{#CPU.STATUS}": "online"
},
{
"{#CPU.NUMBER}": 1,
"{#CPU.STATUS}": "offline"
},
{
"{#CPU.NUMBER}": 2,
"{#CPU.STATUS}": "unknown" /* "unknown" is only on Windows */
},
{
"{#CPU.NUMBER}": 3,
"{#CPU.STATUS}": "online"
}
]
Обратите внимание, что невозможно провести чёткое различие между фактическими физическими процессорами, ядрами и гиперпотоками. {#CPU.STATUS} в системах Linux, UNIX и BSD возвращает состояние процессора, которое может быть либо "online", либо "offline". В системах Windows этот же макрос может принимать третье значение — "unknown", что указывает на то, что процессор был обнаружен, но информация о нём ещё не была собрана.
Обнаружение CPU опирается на процесс collector агента, чтобы сохранять согласованность с данными, предоставляемыми collector, и экономить ресурсы при получении данных. В результате этот ключ элемента данных не работает с флагом командной строки тестирования (-t) бинарного файла агента, который возвращает статус NOT_SUPPORTED и сопутствующее сообщение о том, что процесс collector не был запущен.
Прототипы элементов данных, которые могут быть созданы на основе обнаружения CPU, включают, например:
system.cpu.util[{#CPU.NUMBER},<type>,<mode>]system.hw.cpu[{#CPU.NUMBER},<info>]
Подробное описание ключей элементов данных см. в разделе ключи элементов данных агента Zabbix.
Примечания по обнаруженным элементам данных счётчиков производительности в NUMA-системах
Некоторые счётчики производительности Windows могут быть недоступны для некоторых логических процессоров в NUMA-системах.
Например, элементы данных, обнаруженные с помощью прототипа элемента данных с указанным ниже ключом, могут работать только для первого NUMA-узла. Элементы данных для других NUMA-узлов могут находиться в неподдерживаемом состоянии.
perf_counter[\Processor({#CPU.NUMBER})\% Processor Time,60]
Кроме того, правило обнаружения с ключом "system.cpu.discovery" не предоставляет никаких значений макросов низкоуровневого обнаружения для подстановки в такие счётчики производительности, как:
perf_counter["\Processor Information(<NUMA node index>,<CPU index in NUMA node>)\% Processor Time",60]
В то время как элементы данных system.cpu.util используют другие счётчики производительности для мониторинга процента использования CPU в зависимости от количества групп процессоров и количества процессоров. Также существует редкая ошибка, связанная с группами процессоров в Windows.