// Some Common Performance Monitoring Scenarios
//
// Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
// 
// This program is free software; you can redistribute it and/or modify it
// under the terms of version 2 of the GNU General Public License as
// published by the Free Software Foundation.
// 
// This program is distributed in the hope that it would be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// 
// Further, this software is distributed without any warranty that it is
// free of the rightful claim of any third person regarding infringement
// or the like.  Any license provided herein, whether implied or
// otherwise, applies only to this software file.  Patent licenses, if
// any, provided herein do not apply to combinations of this program with
// other software, or any other product whatsoever.
// 
// You should have received a copy of the GNU General Public License along
// with this program; if not, write the Free Software Foundation, Inc., 59
// Temple Place - Suite 330, Boston MA 02111-1307, USA.
// 
// Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
// Mountain View, CA  94043, or:
// 
// http://www.sgi.com 
// 
// For further information regarding this notice, see: 
// 
// http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
//
//
// The File System Group
//

// common prefixes
//
fsys	= "filesys";


// Either the /tmp or the /usr filesystem being
//
// Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
// 
// This program is free software; you can redistribute it and/or modify it
// under the terms of version 2 of the GNU General Public License as
// published by the Free Software Foundation.
// 
// This program is distributed in the hope that it would be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// 
// Further, this software is distributed without any warranty that it is
// free of the rightful claim of any third person regarding infringement
// or the like.  Any license provided herein, whether implied or
// otherwise, applies only to this software file.  Patent licenses, if
// any, provided herein do not apply to combinations of this program with
// other software, or any other product whatsoever.
// 
// You should have received a copy of the GNU General Public License along
// with this program; if not, write the Free Software Foundation, Inc., 59
// Temple Place - Suite 330, Boston MA 02111-1307, USA.
// 
// Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
// Mountain View, CA  94043, or:
// 
// http://www.sgi.com 
// 
// For further information regarding this notice, see: 
// 
// http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
//
// more than 95% full
//

delta = 5 mins;		// often enough for file system fullness?

tmp_full =
    $fsys.free #'/dev/root' / $fsys.capacity #'/dev/root' < 0.05
    -> syslog "/dev/root filesystem (almost) full";

usr_full =
    $fsys.free #'/dev/usr' / $fsys.capacity #'/dev/usr' < 0.05
    -> syslog "/dev/usr filesystem (almost) full";

// Some read activity through the buffer cache and the cache read
//
// Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
// 
// This program is free software; you can redistribute it and/or modify it
// under the terms of version 2 of the GNU General Public License as
// published by the Free Software Foundation.
// 
// This program is distributed in the hope that it would be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// 
// Further, this software is distributed without any warranty that it is
// free of the rightful claim of any third person regarding infringement
// or the like.  Any license provided herein, whether implied or
// otherwise, applies only to this software file.  Patent licenses, if
// any, provided herein do not apply to combinations of this program with
// other software, or any other product whatsoever.
// 
// You should have received a copy of the GNU General Public License along
// with this program; if not, write the Free Software Foundation, Inc., 59
// Temple Place - Suite 330, Boston MA 02111-1307, USA.
// 
// Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
// Mountain View, CA  94043, or:
// 
// http://www.sgi.com 
// 
// For further information regarding this notice, see: 
// 
// http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
//
// hit ratio is less than 80%
// (lots of file system reads causing physical I/O)
//

delta = 1 min;			// check every minute

blkio = "kernel.all.io";
poor_read_hits =
    (($blkio.lread - $blkio.bread) / $blkio.lread) < 0.8 && $blkio.lread > 100
	-> alarm 20 min "poor buffer cache read hit ratio (%v)";
	    // Note:	%v in alarm string is bound to the left most
	    //		expression in the predicate

// at least $threshold full and at the current rate of growth will fill
//
// Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
// 
// This program is free software; you can redistribute it and/or modify it
// under the terms of version 2 of the GNU General Public License as
// published by the Free Software Foundation.
// 
// This program is distributed in the hope that it would be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// 
// Further, this software is distributed without any warranty that it is
// free of the rightful claim of any third person regarding infringement
// or the like.  Any license provided herein, whether implied or
// otherwise, applies only to this software file.  Patent licenses, if
// any, provided herein do not apply to combinations of this program with
// other software, or any other product whatsoever.
// 
// You should have received a copy of the GNU General Public License along
// with this program; if not, write the Free Software Foundation, Inc., 59
// Temple Place - Suite 330, Boston MA 02111-1307, USA.
// 
// Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
// Mountain View, CA  94043, or:
// 
// http://www.sgi.com 
// 
// For further information regarding this notice, see: 
// 
// http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
//
// the file system in less than $lead_time
// ie. used + $lead_time * growth-rate > capacity

delta = 1 min;		// check every minute
threshold = 40;		// must be at least this full now (percentage)
lead_time = "15min";	// lead time before the filesystem will be full

some_inst (
  100 * filesys.used / filesys.capacity > $threshold &&
  filesys.used + $lead_time * ( rate filesys.used ) >
	filesys.capacity 
) -> print "filesystem will be full within $lead_time:" " %i";

