Skip to main content

Server inventory collection items

Apart from the performance metrics, the server monitoring agent periodically collects the hardware configuration of the server. Performance metrics alone do not show which device is connected where, so even when a metric looks abnormal, it is difficult to identify the device causing it. Viewing the inventory items together shows which NUMA node the GPU and the network card are attached to, and how the GPUs are connected to each other. This document describes the collected fields of each inventory item, for operators who run AI and HPC workloads and need to check the device configuration as well.

Inventory items are sent only when a value changes. The agent checks the configuration every hour and sends only the items that were added, changed, or deleted compared with the previous collection.

Fields marked with a version and New in the Remarks column of each table were added in that version. Fields without a mark have been provided since the category was added.

server_rdma_inventory

Configuration information of RDMA (InfiniBand, RoCE) devices and ports. One row is collected per port of an RDMA device, and it provides everything from the device model, firmware, and link speed to the connected operating system network interface.

  • Collection target: Linux
  • Default collection interval: 1 hour
FieldTypeUnitDescription
interfaceNamestring-RDMA device name and port number (for example, mlx5_0:1)
rdmaDevicestring-RDMA device name (for example, mlx5_0)
rdmaNetdevstring-Operating system network interface connected to the device. Multiple names are separated by |
rdmaNetdevIpstring-IP address per network interface (CIDR notation). Multiple addresses are separated by |
rdmaDeviceTypestring-ASIC type of the device (for example, MT4123)
rdmaDeviceModelstring-Device model name (for example, ConnectX-6)
rdmaLinkLayerstring-Link layer. InfiniBand or Ethernet
rdmaNumaNodestring-NUMA node number the device belongs to. -1 when it cannot be determined
rdmaPciBusIdstring-PCI address (for example, 0000:81:00.0)
rdmaPortstring-Port number
rdmaRatestring-Port link speed (for example, 100 Gb/sec (4X EDR))
rdmaMtustring-Active MTU of the port
rdmaNetdevMtustring-MTU per network interface. Multiple values are separated by |
rdmaDriverNamestring-Kernel driver name (for example, mlx5_core)
rdmaDriverVersionstring-Driver version
rdmaFirmwareVersionstring-Device firmware version
rdmaBondMasterstring-Name of the bond the network interface belongs to
rdmaNodeGuidstring-Node GUID of the device
rdmaPortGuidstring-Port GUID of the port
rdmaSysImageGuidstring-System Image GUID of the device
rdmaSubnetPrefixstring-Subnet prefix the port belongs to
rdmaVlanIdstring-VLAN ID per network interface
storageMountstring-Remote storage mount point connected through that network interface

Adjust whether to collect and the interval with the following options.

whatap.conf
rdma.inventory.enabled=true      # Whether to collect (Default: true)
rdma.inventory.interval=3600 # Collection interval in seconds (Default: 3600)

server_gpu_topology

The connection relationship between two GPUs. One row is collected per physical GPU pair. Use it to check by which path two GPUs are connected and whether they can exchange data directly.

  • Collection target: Linux
  • Default collection interval: 1 hour
FieldTypeUnitDescription
baseGpuIndexstring-Base GPU number
targetGpuIndexstring-Peer GPU number. Always larger than the base GPU number
topologyTypestring-Connection level between the two GPUs. One of PIX, PXB, PHB, NODE, SYS, or NVn. INCONSISTENT when the values are not consistent
topologyConsistentstring-Whether the results queried in both directions match. true or false
interconnectTypestring-Connection method. NVSwitch, NVLink, PCIe, or Unknown
nvLinkCount-countNumber of NVLink connections. 0 when it is not an NVLink connection
baseGpuMigModestring-MIG configuration status of the base GPU. Enabled, Disabled, NotSupported, or Unknown
targetGpuMigModestring-MIG configuration status of the peer GPU
peerToPeerSupportedstring-Whether direct communication (P2P) between the two GPUs is supported. true, false, or unknown
peerToPeerStatusstring-P2P read status code (for example, OK, NS, CNS)

The closer the connection level is to PIX, the physically closer the two GPUs are; the closer it is to SYS, the farther apart they are. Grouping GPUs that handle the same job into close pairs reduces communication latency.

whatap.conf
gpu.topology.inventory.enabled=true      # Whether to collect (Default: true)
gpu.topology.inventory.interval=3600 # Collection interval in seconds (Default: 3600)
Note

If GPU collection is disabled or the GPU driver cannot be accessed, this item is not collected. On a server with a single GPU, no pair is formed, so the collection result is empty.

server_system_topology

Configuration information that links CPU sockets, NUMA nodes, and PCIe devices in parent-child relationships. One connection relationship becomes one row. Use it to view the device layout of the whole server as a tree.

  • Collection target: Linux, Windows
  • Default collection interval: 1 hour
FieldTypeUnitDescription
parentDevicestring-Name of the parent device (for example, SYSTEM, NUMA_NODE:0, PCI_BRIDGE:0000:00:01.1)
childDevicestring-Name of the child device (for example, CPU_SOCKET:0, GPU0, ens192)
deviceTypestring-Type of the child device. CPU_SOCKET, NUMA_NODE, CPU_CORES, MEMORY, PCI_ROOT, GPU, NVSWITCH, RDMA_NIC, NIC, NVME, PCI_BRIDGE, HOST_BRIDGE, or PCI_DEVICE
pciBusIdstring-PCI address for devices in the PCI layer, and an identifier in the socket:0 or node:0 form for devices in the CPU layer
pcieDepthstring-Depth of the PCIe path. 0 for the CPU, NUMA, and memory layers

The name of the top of the tree is SYSTEM. The collection uses only the information provided by the kernel (sysfs on Linux, device information on Windows), so it does not run any separate command.

whatap.conf
system.topology.enabled=true      # Whether to collect (Default: true)
system.topology.interval=3600 # Collection interval in seconds (Default: 3600)

server_numa_inventory

Configuration information per NUMA node. One NUMA node becomes one row, and it provides the CPUs and memory that belong to the node, together with the GPU, RDMA, and NVMe devices attached to the same node.

  • Collection target: Linux
  • Default collection interval: 1 hour
FieldTypeUnitDescriptionRemarks
numaNodeIdstring-NUMA node number
cpuListstring-List of CPUs that belong to the node (for example, 0-7,16-23)
logicalCores-countNumber of logical CPUs that belong to the node
memorySize-byteMemory size that belongs to the node
gpuIndexesstring-List of NVIDIA GPU indexes attached to the node. Separated by a comma and a space
rdmaDevicesstring-List of RDMA device names attached to the node (for example, mlx5_0, mlx5_1). Separated by a comma and a space
rdmaNetDevsstring-List of network interfaces bound to those RDMA devices. Separated by a comma and a space
nvmeDevicesstring-List of NVMe device names connected to that NUMA node (for example, nvme0, nvme1). Separated by a comma and a spaceNew in 2.9.22
gpuRdmaAffinitystring-The closest RDMA device for each GPU of that NUMA node, displayed in the GPU0:mlx5_0(PIX) form. Multiple entries are separated by a comma and a spaceNew in 2.9.22

The value in parentheses in gpuRdmaAffinity is the distance between the GPU and the RDMA device. From closest to farthest, the order is PIX, PXB, PHB, NODE, and SYS, and only the device at the closest level is displayed for each GPU. Use it to check whether the two devices are attached to the same node in configurations where GPU communication goes through an RDMA device.

Adjust whether to collect and the interval with the following options.

whatap.conf
numa.inventory.enabled=true      # Whether to collect (Default: true)
numa.inventory.interval=3600 # Collection interval in seconds (Default: 3600)