See www.zabbix.com for the official Zabbix site.

Docs/specs/ZBXNEXT-494

From Zabbix.org
Jump to: navigation, search

CPU utilization monitoring by processes

ZBXNEXT-494

Status: v1.3

Owner: Andris Zeila

Summary

A new item key to monitor CPU utilization by processes must be added to Zabbix agent.

Specification

The proc.cpu.util key is similar to proc.mem and proc.num keys. It accepts the following parameters:

  • name – process name (default is all processes)
  • user – user name (default is all users)
  • type – what type of cpu utilization to monitor – possible values are: total (default), user, system
  • cmdline – regular expression to match process command line (default is to match all command lines)
  • mode – the data gathering mode avg1 (average cpu utilization during the last minute, default), avg5, avg15
  • zone - defines zone scope - possible values are: current (default), all. By default only processes from the current zone are monitored. To monitor processes from all zones set this parameter to all value. Supported only on Solaris and available only to global zone

The proc.cpu.util key returns the average user or system CPU utilization in percent during the specified time period for all processes matching the name, user and cmdline parameters. The CPU utilization is counted as percentage of single CPU time. So a process consuming 100% on two CPUs will report 200% CPU utilization.

This item must be supported on Linux, however support for other systems must be considered during design process. It would be nice to have it supported also on Solaris, as there appears to be no other means of monitoring CPU utilization on non-kernel zones.

Details

The cpu utilization data must be gathered by Zabbix agent collector process. By default no process cpu utilization data must be collected. Each proc.cpu.util request must check if an active data collection with the specified name,user,type and cmdline parameters has already been started and start it if necessary. The list of the active proc.cpu.util data collections must be stored in shared memory and dynamically expanded when necessary (similarly to disk device stats).

If a process cpu utilization data has not been accessed for a day (proc.cpu.util with the corresponding parameters was not queried for the last 24 hours) the collector must stop gathering data for this collection.


Translation strings

  • for proc.cpu.util in help items: CPU utilisation by process in percent. Returns float.


Documentation

ChangeLog

  • v1.3 renamed the sixth parameter flags to zone
  • v1.2 added sixth parameter flags supported only on Solaris platform
  • v1.1 changed cpu.proc.util to display per cpu utilization