From 7cf50768a7b21888a3dc04e82cc93bc8e92b48b4 Mon Sep 17 00:00:00 2001 From: Pim van den Berg Date: Mon, 4 Oct 2010 10:28:48 +0200 Subject: plugin/processes: support for monitoring specific processes --- plugin/processes.php | 183 +++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 163 insertions(+), 20 deletions(-) (limited to 'plugin') diff --git a/plugin/processes.php b/plugin/processes.php index caf445b..ddee61d 100644 --- a/plugin/processes.php +++ b/plugin/processes.php @@ -16,41 +16,184 @@ require_once 'inc/collectd.inc.php'; # processes/ps_state-sleeping.rrd $obj = new Type_GenericStacked($CONFIG); -$obj->ds_names = array( - 'paging' => 'Paging', - 'blocked' => 'Blocked', - 'zombies' => 'Zombies', - 'stopped' => 'Stopped', - 'running' => 'Running', - 'sleeping' => 'Sleeping', - 'value' => 'Forks', -); -$obj->colors = array( - 'paging' => 'ffb000', - 'blocked' => 'ff00ff', - 'zombies' => 'ff0000', - 'stopped' => 'a000a0', - 'running' => '00e000', - 'sleeping' => '0000ff', - 'value' => 'f0a000', -); $obj->width = $width; $obj->heigth = $heigth; switch($obj->args['type']) { case 'ps_state': + $obj->ds_names = array( + 'paging' => 'Paging', + 'blocked' => 'Blocked', + 'zombies' => 'Zombies', + 'stopped' => 'Stopped', + 'running' => 'Running', + 'sleeping' => 'Sleeping', + ); + $obj->colors = array( + 'paging' => 'ffb000', + 'blocked' => 'ff00ff', + 'zombies' => 'ff0000', + 'stopped' => 'a000a0', + 'running' => '00e000', + 'sleeping' => '0000ff', + 'value' => 'f0a000', + ); $obj->rrd_title = 'Processes'; $obj->rrd_vertical = 'Processes'; $obj->rrd_format = '%5.1lf%s'; - break; + break; + case 'fork_rate': + $obj->ds_names = array( + 'value' => 'Forks', + ); + $obj->colors = array( + 'value' => 'f0a000', + ); $obj->rrd_title = 'Fork rate'; $obj->rrd_vertical = 'forks/s'; $obj->rrd_format = '%5.1lf%s'; - break; + break; + + case 'ps_code': + $obj->ds_names = array( + 'value' => 'TRS', + ); + $obj->colors = array( + 'value' => '0000ff', + ); + $obj->rrd_title = sprintf('Text Resident Set (%s)', $obj->args['pinstance']); + $obj->rrd_vertical = 'Bytes'; + $obj->rrd_format = '%5.1lf%s'; + break; + + case 'ps_count': + $obj->data_sources = array('processes', 'threads'); + $obj->ds_names = array( + 'processes' => 'Processes', + 'threads' => 'Threads', + ); + $obj->colors = array( + 'processes' => '0000ff', + 'threads' => 'ff0000', + ); + $obj->rrd_title = sprintf('Number of Processes/Threads (%s)', $obj->args['pinstance']); + $obj->rrd_vertical = 'Amount'; + $obj->rrd_format = '%5.1lf%s'; + break; + + case 'ps_cputime': + $obj->data_sources = array('user', 'syst'); + $obj->ds_names = array( + 'user' => 'User', + 'syst' => 'System', + ); + $obj->colors = array( + 'user' => '0000ff', + 'syst' => 'ff0000', + ); + $obj->rrd_title = sprintf('CPU time (%s)', $obj->args['pinstance']); + $obj->rrd_vertical = 'CPU time [s]'; + $obj->rrd_format = '%5.1lf%s'; + break; + + case 'ps_disk_octets': + $obj->data_sources = array('read', 'write'); + $obj->ds_names = array( + 'read' => 'Read', + 'write' => 'Write', + ); + $obj->colors = array( + 'read' => '0000ff', + 'write' => '00b000', + ); + $obj->rrd_title = sprintf('Disk Traffic (%s)', $obj->args['pinstance']); + $obj->rrd_vertical = 'Bytes per second'; + $obj->rrd_format = '%5.1lf%s'; + break; + + case 'ps_disk_ops': + $obj->data_sources = array('read', 'write'); + $obj->ds_names = array( + 'read' => 'Read', + 'write' => 'Write', + ); + $obj->colors = array( + 'read' => '0000ff', + 'write' => '00b000', + ); + $obj->rrd_title = sprintf('Disk Operations (%s)', $obj->args['pinstance']); + $obj->rrd_vertical = 'Ops per second'; + $obj->rrd_format = '%5.1lf%s'; + break; + + case 'ps_data': + $obj->ds_names = array( + 'value' => 'DRS', + ); + $obj->colors = array( + 'value' => '0000ff', + ); + $obj->rrd_title = sprintf('Data Resident Set (%s)', $obj->args['pinstance']); + $obj->rrd_vertical = 'Bytes'; + $obj->rrd_format = '%5.1lf%s'; + break; + + case 'ps_pagefaults': + $obj->data_sources = array('minflt', 'majflt'); + $obj->ds_names = array( + 'minflt' => 'Minor', + 'majflt' => 'Major', + ); + $obj->colors = array( + 'minflt' => 'ff0000', + 'majflt' => '0000ff', + ); + $obj->rrd_title = sprintf('PageFaults (%s)', $obj->args['pinstance']); + $obj->rrd_vertical = 'Pagefaults'; + $obj->rrd_format = '%5.1lf%s'; + break; + + case 'ps_rss': + $obj->ds_names = array( + 'value' => 'RSS', + ); + $obj->colors = array( + 'value' => '0000ff', + ); + $obj->rrd_title = sprintf('Resident Segment Size (%s)', $obj->args['pinstance']); + $obj->rrd_vertical = 'Bytes'; + $obj->rrd_format = '%5.1lf%s'; + break; + + case 'ps_stacksize': + $obj->ds_names = array( + 'value' => 'Stacksize', + ); + $obj->colors = array( + 'value' => '0000ff', + ); + $obj->rrd_title = sprintf('Stacksize (%s)', $obj->args['pinstance']); + $obj->rrd_vertical = 'Bytes'; + $obj->rrd_format = '%5.1lf%s'; + break; + + case 'ps_vm': + $obj->ds_names = array( + 'value' => 'Memory', + ); + $obj->colors = array( + 'value' => '0000ff', + ); + $obj->rrd_title = sprintf('Virtual Memory (%s)', $obj->args['pinstance']); + $obj->rrd_vertical = 'Bytes'; + $obj->rrd_format = '%5.1lf%s'; + break; + } + collectd_flush($obj->identifiers); $obj->rrd_graph(); -- cgit v1.1