summaryrefslogtreecommitdiffstats
path: root/lib/Nagios/Plugin
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Nagios/Plugin')
-rw-r--r--lib/Nagios/Plugin/Functions.pm2
-rw-r--r--lib/Nagios/Plugin/Performance.pm25
2 files changed, 20 insertions, 7 deletions
diff --git a/lib/Nagios/Plugin/Functions.pm b/lib/Nagios/Plugin/Functions.pm
index 74a7c6b..ffa23f0 100644
--- a/lib/Nagios/Plugin/Functions.pm
+++ b/lib/Nagios/Plugin/Functions.pm
@@ -12,7 +12,7 @@ use Params::Validate qw(:types validate);
12use Math::Calc::Units; 12use Math::Calc::Units;
13 13
14# Remember to update Nagios::Plugins as well 14# Remember to update Nagios::Plugins as well
15our $VERSION = "0.28"; 15our $VERSION = "0.29";
16 16
17our @STATUS_CODES = qw(OK WARNING CRITICAL UNKNOWN DEPENDENT); 17our @STATUS_CODES = qw(OK WARNING CRITICAL UNKNOWN DEPENDENT);
18 18
diff --git a/lib/Nagios/Plugin/Performance.pm b/lib/Nagios/Plugin/Performance.pm
index a7655fc..a9f9198 100644
--- a/lib/Nagios/Plugin/Performance.pm
+++ b/lib/Nagios/Plugin/Performance.pm
@@ -70,18 +70,22 @@ sub parse_perfstring {
70 70
71sub rrdlabel { 71sub rrdlabel {
72 my $self = shift; 72 my $self = shift;
73 my $name = $self->clean_label;
74 # Shorten
75 return substr( $name, 0, 19 );
76}
77
78sub clean_label {
79 my $self = shift;
73 my $name = $self->label; 80 my $name = $self->label;
74 if ($name eq "/") { 81 if ($name eq "/") {
75 $name = "root"; 82 $name = "root";
76 } 83 } elsif ( $name =~ s/^\/// ) {
77 # If filesystem name, remove initial / and convert subsequent "/" to "_"
78 elsif ($name =~ s/^\///) {
79 $name =~ s/\//_/g; 84 $name =~ s/\//_/g;
80 } 85 }
81 # Convert bad chars 86 # Convert all other characters
82 $name =~ s/\W/_/g; 87 $name =~ s/\W/_/g;
83 # Shorten 88 return $name;
84 return substr( $name, 0, 19 );
85} 89}
86 90
87# Backward compatibility: create a threshold object on the fly as requested 91# Backward compatibility: create a threshold object on the fly as requested
@@ -212,9 +216,18 @@ Returns a string based on 'label' that is suitable for use as dataset name of
212an RRD i.e. munges label to be 1-19 characters long with only characters 216an RRD i.e. munges label to be 1-19 characters long with only characters
213[a-zA-Z0-9_]. 217[a-zA-Z0-9_].
214 218
219This calls $self->clean_label and then truncates to 19 characters.
220
215There is no guarantee that multiple N:P:Performance objects will have unique 221There is no guarantee that multiple N:P:Performance objects will have unique
216rrdlabels. 222rrdlabels.
217 223
224=item clean_label
225
226Returns a "clean" label for use as a dataset name in RRD, ie, it converts
227characters that are not [a-zA-Z0-9_] to _.
228
229It also converts "/" to "root" and "/{name}" to "{name}".
230
218=item perfoutput 231=item perfoutput
219 232
220Outputs the data in Nagios::Plugin perfdata format i.e. 233Outputs the data in Nagios::Plugin perfdata format i.e.