NAME

RRD::Threshold - Check for thresholds exceeding values in RRD files data

DESCRIPTION

This Perl module is capable of extracting some RRD information and to detect if the current value of a datasource is exeeding some thresholds using different algorithms and the help of past values of the same or other datasource.

CONSTRUCTOR

The constructor takes no arguments.

METHODS

boundaries

($value, $bool) = boundaries($rrdfile, $ds, min => $min, max => $max)

This threshold takes too optional values, a minimum and a maximum value. If the data source strays outside of this interval, it returns false.

rrdfile

The path to the RRD file

ds

The name of the data source

min

If current value is lower than this argument, the function returns false.

max

If current value is greater than this argument, the function returns false.

Throws:

Error::InvalidArgument

If min is greater than max

Error::RRDs

on RRDs library error

Error::RRD::isNaN

if fetched value is Not a Number

Error::RRD::NoSuchDS

if the given datasource can't be found in the RRD file

exact

($value, $bool) = exact($rrdfile, $ds, $exact)

This threshold allows you to monitor a datasource for an exact match. This is useful in cases where an enumerated (or boolean) SNMP object instruments a condition where a transition to a specific state requires attention. For example, a datasource might return either true(1) or false(2), depending on whether or not a power supply has failed.

rrdfile

The path to the RRD file

ds

The name of the data source

exact

If the current value is different than this argument, the function will return false.

Throws:

Error::InvalidArgument

if exact argument isn't given

Error::RRDs

on RRDs library error

Error::RRD::isNaN

if fetched value is Not a Number

Error::RRD::NoSuchDS

if the given datasource can't be found in the RRD file

relation

($value, $bool) = relation($rrdfile, $ds, $threshold, %args,
                           cmp_rrdfile => $cmp_rrdfile,
                           cmp_ds      => $cmp_ds,
                           cmp_timp    => $cmp_time);

A relation threshold considers the difference between two data sources (possibly from different RRD files), or alternatively, the difference between two temporally distinct values for the same data source. The difference can be expressed as absolute value, or as a percentage of the second data source (comparison) value. This difference is compared to a threshold argument with either the greater than (>) or lesser than (<) operator. The criteria fails when the expression (<absolute or relative difference> <either greater-than or less-than> <threshold>) evaluates to false.

rrdfile

The path of the base RRD file.

ds

The name of the base data source. The data source must belong to the $rrdfile.

threadhold

The threshold number, optionally preceded by the greater than (>) or less than (<) symbol, and optionally followed by the symbol percent (%). If omitted, greater than is used by default and the expression, difference > threshold, is evaluated. "<10%", ">1000", "50%", and "500" are all examples of valid thresholds.

cmp_rrdfile

The path of the comparison RRD file. This argument is optional and if omitted the first RRD file is also taken as the comparison target.

cmp_ds

The name of the comparison data source. This data source must belong to the comparison RRD file. This argument is optional and if omitted the first data source name is also taken as the comparison data source name. If the value is a number, the value is considered as a fix value and is taked for the comparison

cmp_time

The temporal offset to go back in the RRD file that is being fetched from for comparison from the current value. Note that a data source value must exist in the RRD file for that exact offset. If This argument is optional and if omitted, it is set to 0.

Throws:

Error::InvalidArgument

on argument error

Error::RRDs

on RRDs library error

Error::RRD::isNaN

if fetched value is Not a Number

Error::RRD::NoSuchDS

if the given datasource can't be found in the RRD file

quotient

($value, $bool) = quotient($rrdfile, $ds, $threshold, %args,
                           cmp_rrdfile => $cmp_rrdfile,
                           cmp_ds      => $cmp_ds,
                           cmp_timp    => $cmp_time);

Quotient thresholds are similar to relation thresholds, except that they consider the quotient of two data sources, or alternatively, the same data source at two different time points. For a quotient monitor threshold, the value of the first data source is computed as a percentage of the second data source value (such as 10 (first datasource) is 50% of 20 (second datasource)). This percentage is then compared to a threshold argument with either the greater than (>) or less than (<) operator. The criteria fails when the expression (<percentage> <either greater-than or less-than> <threshold>) evaluates to false.

rrdfile

The path of the base RRD file.

ds

The name of the base data source. The data source must belong to the $rrdfile.

threadhold

The threshold number, optionally preceded by the greater than (>) or less than (<) symbol and followed by the symbol percent (%). If omitted, greater than is used by default and the expression, difference > threshold, is evaluated. "<10%" and "50%" are examples of valid thresholds.

cmp_rrdfile

The path of the comparison RRD file. This argument is optional and if omitted the first RRD file is also taken as the comparison target.

cmp_ds

The name of the comparison data source. This data source must belong to the comparison RRD file. This argument is optional and if omitted the monitor threshold data source name is also taken as the comparison data source name. If the value is a number, the value is taken as-is to do the comparison.

cmp_time

The temporal offset to go back in the RRD file that is being fetched from for comparison from the current value. Note that a data source value must exist in the RRD file for that exact offset. If This argument is optional and if omitted, it is set to 0.

Throws:

Error::InvalidArgument

on argument error

Error::RRDs

on RRDs library error

Error::RRD::isNaN

if fetched value is Not a Number

Error::RRD::NoSuchDS

if the given datasource can't be found in the RRD file

hunt

($value, $bool) = hunt($rrdfile, $ds, $roll,
                       cmp_rrdfile => $cmp_rrdfile,
                       cmp_ds      => $cmp_ds)

The hunt threshold is designed for the situation where the data source serves as an overflow for another data source; that is, if one data source (the parent) is at or near capacity, then traffic will begin to appear on this (the monitored) data source. One application of hunt monitor thresholds is to identify premature rollover in a set of modem banks configured to hunt from one to the next. Specifically, the criteria of the hunt monitor threshold fails if the value of the monitored data source is non-zero and the current value of the parent data source falls below a specified capacity threshold.

rrdfile

The path of the base RRD file.

ds

The name of the base data source. The data source must belong to the $rrdfile.

roll

The threshold of the parent data source. Generally this should be slightly less than the maximum capacity of the target.

cmp_rrdfile

The path of the parent RRD file. This argument is optional and if omitted the base RRD file is also taken as the parent.

cmp_ds

The name of the parent data source. This data source must belong to the parent RRD file. This argument is optional and if omitted the base data source name is also take as the comparison data source name.

Throws:

Error::InvalidArgument

if roll argument isn't given

Error::RRDs

on RRDs library error

Error::RRD::isNaN

if fetched value is Not a Number

Error::RRD::NoSuchDS

if the given datasource can't be found in the RRD file

failure

Aberrant Behavior Detection failure detection.

not yet implemented

EXCEPTIONS CLASSES

Error::InvalidArgument

AUTHOR

Olivier Poitrey <rs@rhapsodyk.net>

LICENCE

RRD::Threshold, checks for thresholds exceeding values in RRD files data. Copyright (C) 2004 Olivier Poitrey

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

SEE ALSO

RRDs, rrdgraph, RRD::Query, Error

1 POD Error

The following errors were encountered while parsing the POD:

Around line 564:

Non-ASCII character seen before =encoding in 'source. One'. Assuming CP1252