3 Découverte des processeurs et des cœurs

De la même manière que les systèmes de fichiers sont découverts, il est également possible de découvrir des CPU et des cœurs de CPU.

Clé d’élément

La clé d’élément à utiliser dans la règle de découverte est

system.cpu.discovery

Macros prises en charge

Cette clé de découverte renvoie deux macros - {#CPU.NUMBER} et {#CPU.STATUS} identifiant respectivement le numéro d’ordre et l’état du CPU. Elle énumère les processeurs de 0 à N - 1, où N correspond au nombre total de processeurs.

[
    {
        "{#CPU.NUMBER}": 0,
        "{#CPU.STATUS}": "online"
    },
    {
        "{#CPU.NUMBER}": 1,
        "{#CPU.STATUS}": "offline"
    },
    {
        "{#CPU.NUMBER}": 2,
        "{#CPU.STATUS}": "unknown" /* "unknown" n’existe que sous Windows */
    },
    {
        "{#CPU.NUMBER}": 3,
        "{#CPU.STATUS}": "online"
    }
]

Notez qu’il n’est pas possible d’établir une distinction claire entre les processeurs réels, physiques, les cœurs et les hyperthreads. {#CPU.STATUS} sur les systèmes Linux, UNIX et BSD renvoie l’état du processeur, qui peut être soit "online", soit "offline". Sur les systèmes Windows, cette même macro peut représenter une troisième valeur - "unknown" - qui indique qu’un processeur a été détecté, mais qu’aucune information n’a encore été collectée à son sujet.

La découverte des CPU s’appuie sur le processus collecteur de l’agent afin de rester cohérente avec les données fournies par le collecteur et d’économiser des ressources lors de l’obtention des données. Cela a pour effet que cette clé d’élément ne fonctionne pas avec l’option de ligne de commande de test (-t) du binaire de l’agent, qui renverra un état NOT_SUPPORTED ainsi qu’un message indiquant que le processus collecteur n’a pas été démarré.

Les prototypes d’élément pouvant être créés sur la base de la découverte des CPU incluent, par exemple :

  • system.cpu.util[{#CPU.NUMBER},<type>,<mode>]
  • system.hw.cpu[{#CPU.NUMBER},<info>]

Pour une description détaillée des clés d’élément, voir clés d’élément de l’agent Zabbix.

Remarques sur les éléments de compteur de performance découverts sur les systèmes NUMA

Certains compteurs de performance Windows peuvent ne pas être disponibles pour certains processeurs logiques sur les systèmes NUMA.

Par exemple, les éléments découverts avec un prototype d’élément utilisant la clé ci-dessous peuvent fonctionner uniquement pour le premier nœud NUMA. Les éléments des autres nœuds NUMA peuvent être dans un état non pris en charge.

perf_counter[\Processor({#CPU.NUMBER})\% Processor Time,60]

De plus, une règle de découverte avec la clé "system.cpu.discovery" ne fournit aucune valeur de macro de découverte de bas niveau à substituer dans des compteurs de performance tels que :

perf_counter["\Processor Information(<NUMA node index>,<CPU index in NUMA node>)\% Processor Time",60]

Alors que les éléments system.cpu.util s’appuient sur différents compteurs de performance pour surveiller le pourcentage d’utilisation du processeur en fonction du nombre de groupes de processeurs et du nombre de processeurs. Il existe également un bogue rare lié aux groupes de processeurs sous Windows.