Smokeping::matchers::base3
Base class for implementing smokeping matchers
Overview
This is the base class for writing SmokePing matchers. Every matcher must inherit from the base class and provide it's own methods for the 'business' logic.
Note that the actual matchers must have at least one capital letter in their name, to differentiate them from the base class(es).
Overview
Every matcher must provide the following methods:
new
The new method expects hash elements as an argument eg new({x=>'\d+',y=>'\d+'},x=>1,y=>2). The first part is a syntax rule for the arguments it should expect and the second part are the arguments itself. The first part will be supplied by the child class as it calls the parent method.
Length
The Length method returns the number of values the matcher will expect from SmokePing. This method must be overridden by the children of the base class.
Desc
Simply return the description of the function. This method must be overwritten by a children of the base class.
Test
Run the matcher and return true or false. The Test method is called with a hash containing two arrays giving it access to both rtt and loss values.
my $data=shift;my @rtt = @{$data->{rtt}};my @loss = @{$data->{loss}};
The arrays are ordered from old to new.
@rdd[old..new]
There may be more than the expected number of elements in this array. Address them with $x[-1] to $x[-max].
There's also a key called 'prevmatch' in the hash. It contains the value returned by the previous call of the 'Test' method. This allows for somewhat more intelligent alerting due to state awareness.
my $prevmatch = $data->{prevmatch};
Releases
3 releases since Debian 4.0 (Etch); the text changed 2 times.