De manera similar a como se descubren los sistemas de archivos, también es posible descubrir las CPU y núcleos de CPU.
La clave de la métrica que se utilizará en la regla de descubrimiento es
Esta clave de descubrimiento devuelve dos macros: {#CPU.NUMBER} y {#CPU.STATUS} que identifica el número de orden de la CPU y el estado respectivamente. Tenga en cuenta que no se puede hacer una distinción clara entre procesadores físicos , núcleos e hiperprocesos. {#CPU.STATUS} en Linux, UNIX y en los sistemas BSD devuelven el estado del procesador, que puede ser "en línea" o "fuera de línea". En sistemas Windows, esta misma macro puede representar un tercer valor - "desconocido" - que indica que un procesador ha sido detectado, pero aún no se ha recopilado información al respecto.
El descubrimiento de CPU depende del proceso recopilador del agente para permanecer consistente con los datos proporcionados por el recopilador y ahorrar recursos obteniendo los datos. Esto tiene el efecto de que esta clave de métrica no funcione con el indicador de línea de comando test (-t) del binario del agente, que devuelve un estado NOT_SUPPORTED y un mensaje adjunto que indica que el proceso de recolección no se ha iniciado.
Los prototipos de métricas que se pueden crear basándose en el descubrimiento de CPU incluyen, por ejemplo:
system.cpu.util[{#CPU.NUMBER},<tipo>,<modo>]
system.hw.cpu[{#CPU.NUMBER},<info>]
Para obtener una descripción detallada de la clave de la métrica, consulte claves de métricas del agente Zabbix.
Some Windows performance counters might be not available for some of the logical processors at NUMA systems.
For example, items discovered with an item prototype with the key below might work only for the first NUMA node. Items for the other NUMA nodes might be in unsupported state.
perf_counter[\Processor({#CPU.NUMBER})\% Processor Time,60]
Also, a discovery rule with key "system.cpu.discovery" does not provide any low-level discovery macro values to substitute into such performance counters as:
perf_counter["\Processor Information(<NUMA node index>,<CPU index in NUMA node>)\% Processor Time",60]
While system.cpu.util items rely on different performance counters to monitor CPU utilization percentage depending on the processor group count and processor count. Also, there is a rare bug related to processor groups on Windows.