libraried out riak-admin parts for code reuse and added --ignore-warnings switch
79a8f6df
Hari Sekhon
committed
1 changed file
check_riak_diag.pl
/check_riak_diag.pl-18+9
/check_riak_diag.pl
Add comment 17
Add comment 18 Tested on Riak 1.x, 2.0.0, 2.1.1";
Add comment 19
Add comment 20 Minus  $VERSION = "0.1";
Add comment 20 Plus  $VERSION = "0.2";
Add comment 21
Add comment 22 use strict;
Add comment 23 use warnings;
Add comment 26 use lib dirname(__FILE__) . "/lib";
Add comment 27 }
Add comment 28 use HariSekhonUtils;
Add comment 29 Plus  use HariSekhon::Riak;
Add comment 29 30
Add comment 30 Minus  # This is the default install path for riak-admin from packages
Add comment 31 Minus  $ENV{"PATH"} .= ":/usr/sbin";
Add comment 32 Minus  
Add comment 33 Minus  my $path = "";
Add comment 34 Minus  
Add comment 35 31 my $cmd = "riak-admin diag";
Add comment 36 32
Add comment 37 33 my @diags = qw/critical warning notice/;
Add comment 40 36 $diags{$_} = 0;
Add comment 41 37 }
Add comment 42 38
Add comment 39 Plus  my $ignore_warnings;
Add comment 43 40
Add comment 44 41 %options = (
Add comment 45 Minus   "riak-admin-path=s" => [ \$path, "Path to directory containing riak-admin command if differing from the default /usr/sbin" ],
Add comment 42 Plus   %riak_admin_path_option,
Add comment 43 Plus   "ignore-warnings" => [ \$ignore_warnings, "Ignore warnings and return OK, only raise alert on critical issues" ],
Add comment 46 44 );
Add comment 45 Plus  @usage_order = qw/riak-admin-path ignore-warnings/;
Add comment 47 46
Add comment 48 47 get_options();
Add comment 49 48
Add comment 50 Minus  if($path){
Add comment 51 Minus   if(grep {$_ eq $path } split(":", $ENV{"PATH"})){
Add comment 52 Minus   usage "$path already in \$PATH ($ENV{PATH})";
Add comment 53 Minus   }
Add comment 54 Minus   $path = validate_directory($path, undef, "riak-admin PATH", "no vlog");
Add comment 55 Minus   $ENV{"PATH"} = "$path:$ENV{PATH}";
Add comment 56 Minus   vlog2 "\$PATH for riak-admin:", $ENV{"PATH"};
Add comment 57 Minus   vlog2;
Add comment 58 Minus  }
Add comment 49 Plus  set_timeout();
Add comment 59 50
Add comment 60 Minus  set_timeout();
Add comment 51 Plus  get_riak_admin_path();
Add comment 61 52
Add comment 62 53 $status = "OK";
Add comment 63 54
Add comment 70 61 if(/^\s*\[$status\]\s*/){
Add comment 71 62 $diags{$status}++;
Add comment 72 63 critical if $status eq "critical";
Add comment 73 Minus   warning if $status eq "warning";
Add comment 64 Plus   warning if $status eq "warning" and not $ignore_warnings;
Add comment 74 65 next;
Add comment 75 66 }
Add comment 76 67 }