diff options
Diffstat (limited to 'lib/Nagios/Plugin/Performance.pm')
| -rw-r--r-- | lib/Nagios/Plugin/Performance.pm | 25 |
1 files changed, 19 insertions, 6 deletions
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 | ||
| 71 | sub rrdlabel { | 71 | sub 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 | |||
| 78 | sub 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 | |||
| 212 | an RRD i.e. munges label to be 1-19 characters long with only characters | 216 | an 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 | ||
| 219 | This calls $self->clean_label and then truncates to 19 characters. | ||
| 220 | |||
| 215 | There is no guarantee that multiple N:P:Performance objects will have unique | 221 | There is no guarantee that multiple N:P:Performance objects will have unique |
| 216 | rrdlabels. | 222 | rrdlabels. |
| 217 | 223 | ||
| 224 | =item clean_label | ||
| 225 | |||
| 226 | Returns a "clean" label for use as a dataset name in RRD, ie, it converts | ||
| 227 | characters that are not [a-zA-Z0-9_] to _. | ||
| 228 | |||
| 229 | It also converts "/" to "root" and "/{name}" to "{name}". | ||
| 230 | |||
| 218 | =item perfoutput | 231 | =item perfoutput |
| 219 | 232 | ||
| 220 | Outputs the data in Nagios::Plugin perfdata format i.e. | 233 | Outputs the data in Nagios::Plugin perfdata format i.e. |
