diff --git a/apps/apache/serverstatus/mode/libconnect.pm b/apps/apache/serverstatus/mode/libconnect.pm deleted file mode 100644 index 786321481..000000000 --- a/apps/apache/serverstatus/mode/libconnect.pm +++ /dev/null @@ -1,83 +0,0 @@ -############################################################################### -# Copyright 2005-2013 MERETHIS -# Centreon is developped by : Julien Mathis and Romain Le Merlus under -# GPL Licence 2.0. -# -# This program is free software; you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free Software -# Foundation ; either version 2 of the License. -# -# This program 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License along with -# this program; if not, see . -# -# Linking this program statically or dynamically with other modules is making a -# combined work based on this program. Thus, the terms and conditions of the GNU -# General Public License cover the whole combination. -# -# As a special exception, the copyright holders of this program give MERETHIS -# permission to link this program with independent modules to produce an timeelapsedutable, -# regardless of the license terms of these independent modules, and to copy and -# distribute the resulting timeelapsedutable under terms of MERETHIS choice, provided that -# MERETHIS also meet, for each linked independent module, the terms and conditions -# of the license of that module. An independent module is a module which is not -# derived from this program. If you modify this program, you may extend this -# exception to your version of the program, but you are not obliged to do so. If you -# do not wish to do so, delete this exception statement from your version. -# -# For more information : contact@centreon.com -# Author : Simon BOMM -# -# Based on De Bodt Lieven plugin -#################################################################################### - -package apps::apache::serverstatus::mode::libconnect; - -use strict; -use warnings; -use LWP::UserAgent; - -sub connect { - my ($self, %options) = @_; - my $ua = LWP::UserAgent->new( protocols_allowed => ['http','https'], timeout => $self->{option_results}->{timeout}); - - my $response; - my $content; - - if (defined $self->{option_results}->{credentials}) { - $ua->credentials($self->{option_results}->{hostname}.':'.$self->{option_results}->{port},$self->{option_results}->{username},$self->{option_results}->{password}); - } - - if ($self->{option_results}->{proto} eq "https") { - if (defined $self->{option_results}->{proxyurl}) { - $ua->proxy(['https'], $self->{option_results}->{proxyurl}); - $response = $ua->get('https://'.$self->{option_results}->{hostname}.':'.$self->{option_results}->{port}.'/server-status'); - } else { - $response = $ua->get('https://'.$self->{option_results}->{hostname}.':'.$self->{option_results}->{port}.'/server-status'); - } - } else { - if (defined $self->{option_results}->{proxyurl}) { - $ua->proxy(['http'], $self->{option_results}->{proxyurl}); - $response = $ua->get($self->{option_results}->{proto}."://" .$self->{option_results}->{hostname}.'/server-status'); - } else { - $response = $ua->get('http://'.$self->{option_results}->{hostname}.':'.$self->{option_results}->{port}.'/server-status'); - } - } - - if ($response->is_success) { - $content = $response->content; - return $content; - } else { - $self->{output}->output_add(severity => 'CRITICAL', - short_msg => $response->status_line); - $self->{output}->display(); - $self->{output}->exit(); - } - -} - -1; - diff --git a/apps/apache/serverstatus/mode/requests.pm b/apps/apache/serverstatus/mode/requests.pm deleted file mode 100644 index 65484778a..000000000 --- a/apps/apache/serverstatus/mode/requests.pm +++ /dev/null @@ -1,210 +0,0 @@ -############################################################################### -# Copyright 2005-2013 MERETHIS -# Centreon is developped by : Julien Mathis and Romain Le Merlus under -# GPL Licence 2.0. -# -# This program is free software; you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free Software -# Foundation ; either version 2 of the License. -# -# This program 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License along with -# this program; if not, see . -# -# Linking this program statically or dynamically with other modules is making a -# combined work based on this program. Thus, the terms and conditions of the GNU -# General Public License cover the whole combination. -# -# As a special exception, the copyright holders of this program give MERETHIS -# permission to link this program with independent modules to produce an timeelapsedutable, -# regardless of the license terms of these independent modules, and to copy and -# distribute the resulting timeelapsedutable under terms of MERETHIS choice, provided that -# MERETHIS also meet, for each linked independent module, the terms and conditions -# of the license of that module. An independent module is a module which is not -# derived from this program. If you modify this program, you may extend this -# exception to your version of the program, but you are not obliged to do so. If you -# do not wish to do so, delete this exception statement from your version. -# -# For more information : contact@centreon.com -# Author : Simon BOMM -# -# Based on De Bodt Lieven plugin -#################################################################################### - -package apps::apache::serverstatus::mode::requests; - -use base qw(centreon::plugins::mode); - -use strict; -use warnings; -use apps::apache::serverstatus::mode::libconnect; - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options(arguments => - { - "hostname:s" => { name => 'hostname' }, - "port:s" => { name => 'port' }, - "proto:s" => { name => 'proto', default => "http" }, - "credentials" => { name => 'credentials' }, - "username:s" => { name => 'username' }, - "password:s" => { name => 'password' }, - "proxyurl:s" => { name => 'proxyurl' }, - "warning:s" => { name => 'warning' }, - "critical:s" => { name => 'critical' }, - "warning-bytes:s" => { name => 'warning_bytes' }, - "critical-bytes:s" => { name => 'critical_bytes' }, - "timeout:s" => { name => 'timeout', default => '3' }, - }); - return $self; -} - -sub check_options { - - my ($self, %options) = @_; - $self->SUPER::init(%options); - - if (($self->{perfdata}->threshold_validate(label => 'warning', value => $self->{option_results}->{warning})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning threshold '" . $self->{option_results}->{warning} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'critical', value => $self->{option_results}->{critical})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical threshold '" . $self->{option_results}->{critical} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'warning-bytes', value => $self->{option_results}->{warning_bytes})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning-bytes threshold '" . $self->{option_results}->{warning_bytes} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'critical-bytes', value => $self->{option_results}->{critical_bytes})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical-bytes threshold '" . $self->{option_results}->{critical_bytes} . "'."); - $self->{output}->option_exit(); - } - if (!defined($self->{option_results}->{hostname})) { - $self->{output}->add_option_msg(short_msg => "Please set the hostname option"); - $self->{output}->option_exit(); - } - - if (defined($self->{option_results}->{credentials} && (!defined($self->{option_results}->{username}) || !defined($self->{option_results}->{password})))) { - $self->{output}->add_option_msg(short_msg => "You need to set --username= and --password= options when --credentials is used"); - $self->{output}->option_exit(); - } - -} - -sub run { - - my ($self, %options) = @_; - - my $webcontent = apps::apache::serverstatus::mode::libconnect::connect($self); - - my @webcontentarr = split("\n", $webcontent); - my $i = 0; - my ($rPerSec, $rPerSecSfx, $bPerSec, $bPerSecSfx, $bPerReq, $bPerReqSfx); - - while (($i < @webcontentarr) && ((!defined($rPerSec)) || (!defined($bPerSec)) || (!defined($bPerReq)))) { - if ($webcontentarr[$i] =~ /([0-9]*\.?[0-9]+)\s([A-Za-z]+)\/sec\s-\s([0-9]*\.?[0-9]+)\s([A-Za-z]+)\/second\s-\s([0-9]*\.?[0-9]+)\s([A-Za-z]+)\/request/) { - ($rPerSec, $rPerSecSfx, $bPerSec, $bPerSecSfx, $bPerReq, $bPerReqSfx) = ($webcontentarr[$i] =~ /([0-9]*\.?[0-9]+)\s([A-Za-z]+)\/sec\s-\s([0-9]*\.?[0-9]+)\s([A-Za-z]+)\/second\s-\s([0-9]*\.?[0-9]+)\s([A-Za-z]+)\/request/); - } - $i++; - } - - if ($bPerReqSfx eq 'kB') { - $bPerReq = $bPerReq * 1024; - } elsif ($bPerReqSfx eq 'mB') { - $bPerReq = $bPerReq * 1024 * 1024; - } elsif ($bPerReqSfx eq 'gB') { - $bPerReq = $bPerReq * 1024 * 1024 * 1024; - } - - if ($bPerSecSfx eq 'kB') { - $bPerSec = $bPerSec * 1024; - } elsif ($bPerSecSfx eq 'mB') { - $bPerSec = $bPerSec * 1024 * 1024; - } elsif ($bPerSecSfx eq 'gB') { - $bPerSec = $bPerSec * 1024 * 1024 * 1024; - } - - my $exit1 = $self->{perfdata}->threshold_check(value => $rPerSec, threshold => [ { label => 'critical', 'exit_litteral' => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]); - my $exit2 = $self->{perfdata}->threshold_check(value => $bPerReq, threshold => [ { label => 'critical-bytes', 'exit_litteral' => 'critical' }, { label => 'warning-bytes', exit_litteral => 'warning' } ]); - - my $exit = $self->{output}->get_most_critical(status => [ $exit1, $exit2 ]); - - $self->{output}->output_add(severity => $exit, - short_msg => sprintf("RequestPerSec: %f BytesPerSecond: %d BytesPerRequest: %d", $rPerSec, $bPerSec, $bPerReq)); - $self->{output}->perfdata_add(label => "requestPerSec", - value => $rPerSec, - unit => $rPerSecSfx, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical') - ); - $self->{output}->perfdata_add(label => "bytesPerSec", - value => $bPerSec, - unit => 'B'); - $self->{output}->perfdata_add(label => "bytesPerRequest", - value => $bPerReq, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-bytes'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-bytes'), - unit => 'B'); - - $self->{output}->display(); - $self->{output}->exit(); - -} - -1; - -__END__ - -=head1 MODE - -Check Apache WebServer Request statistics - -=over 8 - -=item B<--hostname> - -IP Addr/FQDN of the webserver host - -=item B<--port> - -Port used by Apache - -=item B<--proxyurl> - -Proxy URL if any - -=item B<--proto> - -Specify https if needed - -=item B<--timeout> - -Threshold for HTTP timeout - -=item B<--warning> - -Warning Threshold for Request per seconds - -=item B<--critical> - -Critical Threshold for Request per seconds - -=item B<--warning-bytes> - -Warning Threshold for Bytes Per Request - -=item B<--critical-bytes> - -Critical Threshold for Bytes Per Request - -=back - -=cut diff --git a/apps/apache/serverstatus/mode/responsetime.pm b/apps/apache/serverstatus/mode/responsetime.pm deleted file mode 100644 index 3d61cff2f..000000000 --- a/apps/apache/serverstatus/mode/responsetime.pm +++ /dev/null @@ -1,181 +0,0 @@ -############################################################################### -# Copyright 2005-2013 MERETHIS -# Centreon is developped by : Julien Mathis and Romain Le Merlus under -# GPL Licence 2.0. -# -# This program is free software; you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free Software -# Foundation ; either version 2 of the License. -# -# This program 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License along with -# this program; if not, see . -# -# Linking this program statically or dynamically with other modules is making a -# combined work based on this program. Thus, the terms and conditions of the GNU -# General Public License cover the whole combination. -# -# As a special exception, the copyright holders of this program give MERETHIS -# permission to link this program with independent modules to produce an timeelapsedutable, -# regardless of the license terms of these independent modules, and to copy and -# distribute the resulting timeelapsedutable under terms of MERETHIS choice, provided that -# MERETHIS also meet, for each linked independent module, the terms and conditions -# of the license of that module. An independent module is a module which is not -# derived from this program. If you modify this program, you may extend this -# exception to your version of the program, but you are not obliged to do so. If you -# do not wish to do so, delete this exception statement from your version. -# -# For more information : contact@centreon.com -# Author : Simon BOMM -# -# Based on De Bodt Lieven plugin -#################################################################################### - -package apps::apache::serverstatus::mode::responsetime; - -use base qw(centreon::plugins::mode); - -use strict; -use warnings; -use Time::HiRes qw(gettimeofday tv_interval); -use apps::apache::serverstatus::mode::libconnect; - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options(arguments => - { - "hostname:s" => { name => 'hostname' }, - "port:s" => { name => 'port' }, - "proto:s" => { name => 'proto', default => "http" }, - "credentials" => { name => 'credentials' }, - "username:s" => { name => 'username' }, - "password:s" => { name => 'password' }, - "proxyurl:s" => { name => 'proxyurl' }, - "warning:s" => { name => 'warning' }, - "critical:s" => { name => 'critical' }, - "timeout:s" => { name => 'timeout', default => '3' }, - }); - return $self; -} - -sub check_options { - my ($self, %options) = @_; - $self->SUPER::init(%options); - - if (($self->{perfdata}->threshold_validate(label => 'warning', value => $self->{option_results}->{warning})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning threshold '" . $self->{option_results}->{warning} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'critical', value => $self->{option_results}->{critical})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical threshold '" . $self->{option_results}->{critical} . "'."); - $self->{output}->option_exit(); - } - - if (($self->{option_results}->{proto} ne 'http') && ($self->{option_results}->{proto} ne 'https')) { - $self->{output}->add_option_msg(short_msg => "Unsupported protocol specified '" . $self->{option_results}->{proto} . "'."); - $self->{output}->option_exit(); - } - - if (!defined($self->{option_results}->{hostname})) { - $self->{output}->add_option_msg(short_msg => "Please set the hostname option"); - $self->{output}->option_exit(); - } - - if (defined($self->{option_results}->{credentials} && (!defined($self->{option_results}->{username}) || !defined($self->{option_results}->{password})))) { - $self->{output}->add_option_msg(short_msg => "You need to set --username= and --password= options when --credentials is used"); - $self->{output}->option_exit(); - } -} - -sub run { - my ($self, %options) = @_; - - my $timing0 = [gettimeofday]; - - my $webcontent = apps::apache::serverstatus::mode::libconnect::connect($self); - - my $timeelapsed = tv_interval ($timing0, [gettimeofday]); - - if (defined $webcontent) { - my @webcontentarr = split("\n", $webcontent); - my $i = 0; - my $ScoreBoard = ""; - my $PosPreBegin = undef; - my $PosPreEnd = undef; - while (($i < @webcontentarr) && ((!defined($PosPreBegin)) || (!defined($PosPreEnd)))) { - if (!defined($PosPreBegin)) { - if ($webcontentarr[$i] =~ m/
/i) {
-                    $PosPreBegin = $i;
-                }
-            }
-            if (defined($PosPreBegin)) {
-                if ($webcontentarr[$i] =~ m/<\/pre>/i) {
-                    $PosPreEnd = $i;
-                }
-            }
-            $i++;
-        }
-        for ($i = $PosPreBegin; $i <= $PosPreEnd; $i++) {
-           $ScoreBoard = $ScoreBoard . $webcontentarr[$i];
-        }
-        $ScoreBoard =~ s/^.*<[Pp][Rr][Ee]>//;
-        $ScoreBoard =~ s/<\/[Pp][Rr][Ee].*>//;
-        my $CountOpenSlots = ($ScoreBoard =~ tr/\.//);
-        my $exit = $self->{perfdata}->threshold_check(value => $timeelapsed,
-                                                      threshold => [ { label => 'critical', 'exit_litteral' => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]);
-        $self->{output}->output_add(severity => $exit,
-                                    short_msg => sprintf("Response time %fs ", $timeelapsed));
-        $self->{output}->perfdata_add(label => "time",
-                                      value => $timeelapsed,
-                                      warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'),
-                                      critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'));
-     }
-
-       $self->{output}->display();
-       $self->{output}->exit();
-}
-
-1;
-
-__END__
-
-=head1 MODE
-
-Check Apache WebServer statistics informations
-
-=over 8
-
-=item B<--hostname>
-
-IP Addr/FQDN of the webserver host
-
-=item B<--port>
-
-Port used by Apache
-
-=item B<--proxyurl>
-
-Proxy URL if any
-
-=item B<--timeout>
-
-Threshold for HTTP timeout
-
-=item B<--warning>
-
-Threshold warning in seconds (server-status page response time)
-
-=item B<--critical>
-
-Threshold critical in seconds (server-status page response time)
-
-=back
-
-=cut
diff --git a/apps/apache/serverstatus/mode/slotstates.pm b/apps/apache/serverstatus/mode/slotstates.pm
deleted file mode 100644
index c10ecf3da..000000000
--- a/apps/apache/serverstatus/mode/slotstates.pm
+++ /dev/null
@@ -1,203 +0,0 @@
-###############################################################################
-# Copyright 2005-2013 MERETHIS
-# Centreon is developped by : Julien Mathis and Romain Le Merlus under
-# GPL Licence 2.0.
-# 
-# This program is free software; you can redistribute it and/or modify it under 
-# the terms of the GNU General Public License as published by the Free Software 
-# Foundation ; either version 2 of the License.
-# 
-# This program 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 General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License along with 
-# this program; if not, see .
-# 
-# Linking this program statically or dynamically with other modules is making a 
-# combined work based on this program. Thus, the terms and conditions of the GNU 
-# General Public License cover the whole combination.
-# 
-# As a special exception, the copyright holders of this program give MERETHIS 
-# permission to link this program with independent modules to produce an timeelapsedutable, 
-# regardless of the license terms of these independent modules, and to copy and 
-# distribute the resulting timeelapsedutable under terms of MERETHIS choice, provided that 
-# MERETHIS also meet, for each linked independent module, the terms  and conditions 
-# of the license of that module. An independent module is a module which is not 
-# derived from this program. If you modify this program, you may extend this 
-# exception to your version of the program, but you are not obliged to do so. If you
-# do not wish to do so, delete this exception statement from your version.
-# 
-# For more information : contact@centreon.com
-# Author : Simon BOMM 
-#
-# Based on De Bodt Lieven plugin
-####################################################################################
-
-package apps::apache::serverstatus::mode::slotstates;
-
-use base qw(centreon::plugins::mode);
-
-use strict;
-use warnings;
-use apps::apache::serverstatus::mode::libconnect;
-
-sub new {
-    my ($class, %options) = @_;
-    my $self = $class->SUPER::new(package => __PACKAGE__, %options);
-    bless $self, $class;
-
-    $self->{version} = '1.0';
-    $options{options}->add_options(arguments =>
-            {
-            "hostname:s"    => { name => 'hostname' },
-            "port:s"        => { name => 'port' },
-            "proto:s"       => { name => 'proto', default => "http" },
-            "credentials"   => { name => 'credentials' },
-            "username:s"    => { name => 'username' },
-            "password:s"    => { name => 'password' },
-            "proxyurl:s"    => { name => 'proxyurl' },
-            "warning:s"     => { name => 'warning' },
-            "critical:s"    => { name => 'critical' },
-            "timeout:s"     => { name => 'timeout', default => '3' },
-            });
-    return $self;
-}
-
-sub check_options {
-
-    my ($self, %options) = @_;
-    $self->SUPER::init(%options);
-
-    if (($self->{perfdata}->threshold_validate(label => 'warning', value => $self->{option_results}->{warning})) == 0) {
-        $self->{output}->add_option_msg(short_msg => "Wrong warning threshold '" . $self->{option_results}->{warning} . "'.");
-        $self->{output}->option_exit();
-    }
-    if (($self->{perfdata}->threshold_validate(label => 'critical', value => $self->{option_results}->{critical})) == 0) {
-        $self->{output}->add_option_msg(short_msg => "Wrong critical threshold '" . $self->{option_results}->{critical} . "'.");
-        $self->{output}->option_exit();
-    }
-    
-    if (($self->{option_results}->{proto} ne 'http') && ($self->{option_results}->{proto} ne 'https')) {
-        $self->{output}->add_option_msg(short_msg => "Unsupported protocol specified '" . $self->{option_results}->{proto} . "'.");
-        $self->{output}->option_exit();
-    }
-    if (!defined($self->{option_results}->{hostname})) {
-        $self->{output}->add_option_msg(short_msg => "Please set the hostname option");
-        $self->{output}->option_exit();
-    }
-
-    if (defined($self->{option_results}->{credentials} && (!defined($self->{option_results}->{username}) || !defined($self->{option_results}->{password})))) {
-        $self->{output}->add_option_msg(short_msg => "You need to set --username= and --password= options when --credentials is used");
-        $self->{output}->option_exit();
-    }
-
-}
-
-sub run {
-    my ($self, %options) = @_;
-    
-    my $webcontent = apps::apache::serverstatus::mode::libconnect::connect($self);
-    my @webcontentarr = split("\n", $webcontent);
-    my $i = 0;
-    my $ScoreBoard = "";
-    my $PosPreBegin = undef;
-    my $PosPreEnd = undef;
-    
-    while (($i < @webcontentarr) && ((!defined($PosPreBegin)) || (!defined($PosPreEnd)))) {
-        if (!defined($PosPreBegin)) {
-            if ( $webcontentarr[$i] =~ m/
/i ) {
-                $PosPreBegin = $i;
-        }
-        if (defined($PosPreBegin)) {
-            if ( $webcontentarr[$i] =~ m/<\/pre>/i ) {
-                $PosPreEnd = $i;
-            }
-        }
-        $i++;
-    }
-
-    for ($i = $PosPreBegin; $i <= $PosPreEnd; $i++) {
-        $ScoreBoard = $ScoreBoard . $webcontentarr[$i];
-    }
-  
-    $ScoreBoard =~ s/^.*<[Pp][Rr][Ee]>//;
-    $ScoreBoard =~ s/<\/[Pp][Rr][Ee].*>//;
-
-    my $CountOpenSlots = ($ScoreBoard =~ tr/\.//);
-
-    my $exit = $self->{perfdata}->threshold_check(value => $CountOpenSlots,
-                                                 threshold => [ { label => 'critical', 'exit_litteral' => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]);
-
-    $self->{output}->output_add(severity => $exit,
-                                short_msg => sprintf("Free slots: %d", $CountOpenSlots));
-    $self->{output}->perfdata_add(label => "freeSlots",
-                                  value => $CountOpenSlots,
-                                  warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'),
-                                  critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'));
-    $self->{output}->perfdata_add(label => "waiting",
-            value => ($ScoreBoard =~ tr/\_//));
-    $self->{output}->perfdata_add(label => "starting",
-            value => ($ScoreBoard =~ tr/S//));
-    $self->{output}->perfdata_add(label => "reading",
-            value => ($ScoreBoard =~ tr/R//));
-    $self->{output}->perfdata_add(label => "sending",
-            value => ($ScoreBoard =~ tr/W//));
-    $self->{output}->perfdata_add(label => "keepalive",
-            value => ($ScoreBoard =~ tr/K//));
-    $self->{output}->perfdata_add(label => "dns_lookup",
-            value => ($ScoreBoard =~ tr/D//));
-    $self->{output}->perfdata_add(label => "closing",
-            value => ($ScoreBoard =~ tr/C//));
-    $self->{output}->perfdata_add(label => "logging",
-            value => ($ScoreBoard =~ tr/L//));
-    $self->{output}->perfdata_add(label => "gracefuly_finished",
-            value => ($ScoreBoard =~ tr/G//));
-    $self->{output}->perfdata_add(label => "idle_cleanup_worker",
-            value => ($ScoreBoard =~ tr/I//));
-
-    $self->{output}->display();
-    $self->{output}->exit();
-}
-
-1;
-
-__END__
-
-=head1 MODE
-
-Check Apache WebServer Slots informations
-
-=over 8
-
-=item B<--hostname>
-
-IP Address or FQDN of the webserver host
-
-=item B<--port>
-
-Port used by Apache
-
-=item B<--proxyurl>
-
-Proxy URL if any
-
-=item B<--proto>
-
-Protocol used http or https
-
-=item B<--timeout>
-
-Threshold for HTTP timeout
-
-=item B<--warning>
-
-Warning Threshold on remaining free slot
-
-=item B<--critical>
-
-Critical Threshold on remaining free slot
-
-=back
-
-=cut
diff --git a/apps/apache/serverstatus/mode/workers.pm b/apps/apache/serverstatus/mode/workers.pm
deleted file mode 100644
index 9ed7d700c..000000000
--- a/apps/apache/serverstatus/mode/workers.pm
+++ /dev/null
@@ -1,195 +0,0 @@
-###############################################################################
-# Copyright 2005-2013 MERETHIS
-# Centreon is developped by : Julien Mathis and Romain Le Merlus under
-# GPL Licence 2.0.
-# 
-# This program is free software; you can redistribute it and/or modify it under 
-# the terms of the GNU General Public License as published by the Free Software 
-# Foundation ; either version 2 of the License.
-# 
-# This program 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 General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License along with 
-# this program; if not, see .
-# 
-# Linking this program statically or dynamically with other modules is making a 
-# combined work based on this program. Thus, the terms and conditions of the GNU 
-# General Public License cover the whole combination.
-# 
-# As a special exception, the copyright holders of this program give MERETHIS 
-# permission to link this program with independent modules to produce an timeelapsedutable, 
-# regardless of the license terms of these independent modules, and to copy and 
-# distribute the resulting timeelapsedutable under terms of MERETHIS choice, provided that 
-# MERETHIS also meet, for each linked independent module, the terms  and conditions 
-# of the license of that module. An independent module is a module which is not 
-# derived from this program. If you modify this program, you may extend this 
-# exception to your version of the program, but you are not obliged to do so. If you
-# do not wish to do so, delete this exception statement from your version.
-# 
-# For more information : contact@centreon.com
-# Author : Simon BOMM 
-#
-# Based on De Bodt Lieven plugin
-####################################################################################
-
-package apps::apache::serverstatus::mode::workers;
-
-use base qw(centreon::plugins::mode);
-
-use strict;
-use warnings;
-use LWP::UserAgent;
-use apps::apache::serverstatus::mode::libconnect;
-
-sub new {
-    my ($class, %options) = @_;
-    my $self = $class->SUPER::new(package => __PACKAGE__, %options);
-    bless $self, $class;
-
-    $self->{version} = '1.0';
-    $options{options}->add_options(arguments =>
-            {
-            "hostname:s"    => { name => 'hostname' },
-            "port:s"        => { name => 'port' },
-            "proto:s"       => { name => 'proto', default => "http" },
-            "proxyurl:s"    => { name => 'proxyurl' },
-            "warning:s"     => { name => 'warning' },
-            "critical:s"    => { name => 'critical' },
-            "timeout:s"     => { name => 'timeout', default => '3' },
-            });
-    return $self;
-}
-
-sub check_options {
-    my ($self, %options) = @_;
-    $self->SUPER::init(%options);
-
-    if (($self->{perfdata}->threshold_validate(label => 'warning', value => $self->{option_results}->{warning})) == 0) {
-        $self->{output}->add_option_msg(short_msg => "Wrong warning threshold '" . $self->{option_results}->{warning} . "'.");
-        $self->{output}->option_exit();
-    }
-    if (($self->{perfdata}->threshold_validate(label => 'critical', value => $self->{option_results}->{critical})) == 0) {
-        $self->{output}->add_option_msg(short_msg => "Wrong critical threshold '" . $self->{option_results}->{critical} . "'.");
-        $self->{output}->option_exit();
-    }
-    if (($self->{option_results}->{proto} ne 'http') && ($self->{option_results}->{proto} ne 'https')) {
-        $self->{output}->add_option_msg(short_msg => "Unsupported protocol specified '" . $self->{option_results}->{proto} . "'.");
-        $self->{output}->option_exit();
-    }
-    if (!defined($self->{option_results}->{hostname})) {
-        $self->{output}->add_option_msg(short_msg => "Please set the hostname option");
-        $self->{output}->option_exit();
-    }
-}
-
-sub run {
-    my ($self, %options) = @_;
-        
-    my $webcontent = apps::apache::serverstatus::mode::libconnect::connect($self);
-    my @webcontentarr = split("\n", $webcontent);
-    my $i = 0;
-    my $ScoreBoard = "";
-    my $PosPreBegin = undef;
-    my $PosPreEnd = undef;
-    my $BusyWorkers;
-    my $IdleWorkers;
-    my $prct_busy;    
-    
-    while ($i < @webcontentarr) {
-        if ($webcontentarr[$i] =~ /(\d+)\s+requests\s+currently\s+being\s+processed,\s+(\d+)\s+idle\s+....ers/) {
-            ($BusyWorkers, $IdleWorkers) = ($webcontentarr[$i] =~ /(\d+)\s+requests\s+currently\s+being\s+processed,\s+(\d+)\s+idle\s+....ers/);
-        }
-            $i++;
-    }
-
-    $i = 0;
-
-    while (($i < @webcontentarr) && ((!defined($PosPreBegin)) || (!defined($PosPreEnd)))) {
-        if (!defined($PosPreBegin)) {
-            if ( $webcontentarr[$i] =~ m/
/i ) {
-                $PosPreBegin = $i;
-            }
-        }
-        if (defined($PosPreBegin)) {
-            if ( $webcontentarr[$i] =~ m/<\/pre>/i ) {
-                $PosPreEnd = $i;
-            }
-        }
-        $i++;
-    }
-    
-    for ($i = $PosPreBegin; $i <= $PosPreEnd; $i++) {
-        $ScoreBoard = $ScoreBoard . $webcontentarr[$i];
-    }
-
-    $ScoreBoard =~ s/^.*<[Pp][Rr][Ee]>//;
-    $ScoreBoard =~ s/<\/[Pp][Rr][Ee].*>//;
-
-    my $srvLimit = length($ScoreBoard);
-	
-    $prct_busy = $BusyWorkers / $srvLimit * 100;
-    
-    my $exit = $self->{perfdata}->threshold_check(value => $prct_busy,
-                                                 threshold => [ { label => 'critical', 'exit_litteral' => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]);
-    $self->{output}->output_add(severity => $exit,
-                                short_msg => sprintf("Busy workers: %d Idle workers: %d ( %d %% )", $BusyWorkers, $IdleWorkers, $prct_busy));
-    $self->{output}->perfdata_add(label => "idle_workers",
-                                  value => $IdleWorkers,
-                                  min => 0,
-                                  max => $srvLimit);
-    $self->{output}->perfdata_add(label => "busy_workers",
-                                  value => $BusyWorkers,
-                                  warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'),
-                                  critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'),
-                                  min => 0,
-                                  max => $srvLimit);
-
-    $self->{output}->display();
-    $self->{output}->exit();
-}
-
-
-1;
-
-
-__END__
-
-=head1 MODE
-
-Check Apache WebServer busy processes. Graph Busy and Idle. Compute percentage over ServerLimit apache config file directive.
-
-=over 8
-
-=item B<--hostname>
-
-IP Addr/FQDN of the webserver host
-
-=item B<--port>
-
-Port used by Apache
-
-=item B<--proxyurl>
-
-Proxy URL if any
-
-=item B<--proto>
-
-Protocol to use http or https, http is default
-
-=item B<--timeout>
-
-Threshold for HTTP timeout
-
-=item B<--warning>
-
-Warning Threshold (%) of busy workers
-
-=item B<--critical>
-
-Critical Threshold (%) of busy workers
-
-=back
-
-=cut