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

Docs/specs/ZBXNEXT-1078

From Zabbix.org
Jump to: navigation, search

Add the fifth parameter to the key "proc.mem" - <type of memory>

ZBXNEXT-1078

Status: Initial draft, do not comment

Owner: Andris Mednis

Summary

Currently proc.mem[] item collects data only about one fixed process memory type (usually a process virtual size, but it depends on platform). Some users have proposed to change the memory type from the virtual size to the resident size as a more useful metric. Support for selecting different types of process memory (e.g. virtual size, resident size, code. data, stack segment size) should be added to proc.mem[] item.

Specification

  • Add the 5th parameter "memtype" to proc.mem[] item key:
      proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]
  • Initially this change should be implemented in Zabbix agent on AIX, FreeBSD, Linux, Solaris platforms. Other platforms can be added later as necessary.
  • Use only data available to unprivileged user processes. Process memory data available only to owner of the process or privileged users (e.g. shared memory) are out of the scope.
  • Preserve current, fixed memory types provided by proc.mem[] as default types.

Details

  • On Linux - support all types of memory, available in /proc/<pid>/status files.
  • On AIX, FreeBSD, Solaris - try to support different types of memory (depends on what is available from operating system process table).

API changes

  • No API changes required.

Frontend

Pop-up help window for selecting Standard items should be modified:

  • the Key column for proc.mem[] should include the new 'memtype' parameter,
  • the Name column should include a short 'memtype' description.

Translation strings

  • Memory used by a process. <name> process name (default: "all processes"). <user> user name (default: "all users"). <mode> possible values: avg, max, min, sum (default). <cmdline> filter by command line (supports regex). <memtype> type of process memory (supported on some platforms, see documentation). Example: proc.mem[,root].

Database changes

  • No database changes required.

Documentation

ChangeLog

  • N/A