Skip to content

Commit

Permalink
add qudo job count and exception_log agent.
Browse files Browse the repository at this point in the history
  • Loading branch information
nekokak committed Jun 4, 2010
1 parent 329b1d9 commit 3687735
Show file tree
Hide file tree
Showing 2 changed files with 147 additions and 0 deletions.
71 changes: 71 additions & 0 deletions lib/App/MadEye/Plugin/Agent/Qudo/ExceptionLog.pm
@@ -0,0 +1,71 @@
package App::MadEye::Plugin::Agent::Qudo::ExceptionLog;
use strict;
use warnings;
use App::MadEye::Plugin::Agent::Base;

use Qudo;

sub is_dead {
my ($self, $dsn) = @_;

my $conf = $self->config->{config};
my $user = $conf->{user} or die "missing user";
my $password = $conf->{password} or die "missing password";

my $qudo = Qudo->new(
databases => [+{
dsn => $dsn,
username => $user,
password => $password,
}],
);

my $exceptions = $qudo->exception_list;
if (scalar(@{$exceptions->{$dsn}}) >= 1) {
return 'qudo has exceptions...';
} else {
return; # alive.
}
}

1;
__END__
=head1 NAME
App::MadEye::Plugin::Agent::Qudo::ExceptionLog - monitoring exception count of Qudo
=head1 SYNOPSIS
- module: Agent::Qudo::ExceptionLog
config:
target:
- DBI:mysql:database=foo
user: root
password: ~
=head1 SCHEMA
type: map
mapping:
target:
type: seq
required: yes
sequence:
- type: str
user:
required: yes
type: str
password:
required: yes
type: str
=head1 AUTHORS
Atsushi Kobayashi
=head1 SEE ALSO
L<Qudo>, L<App::MadEye>
76 changes: 76 additions & 0 deletions lib/App/MadEye/Plugin/Agent/Qudo/Job.pm
@@ -0,0 +1,76 @@
package App::MadEye::Plugin::Agent::Qudo::Job;
use strict;
use warnings;
use App::MadEye::Plugin::Agent::Base;

use Qudo;

sub is_dead {
my ($self, $dsn) = @_;

my $conf = $self->config->{config};
my $user = $conf->{user} or die "missing user";
my $password = $conf->{password} or die "missing password";
my $threshold = $conf->{threshold} or die "missing threshold";

my $qudo = Qudo->new(
databases => [+{
dsn => $dsn,
username => $user,
password => $password,
}],
);

my $job_count = $qudo->job_count;
if ($job_count->{$dsn} >= $threshold) {
return sprintf(q{qudo has many job '%s': %s count.}, $dsn, $job_count->{$dsn});
} else {
return; # alive.
}
}

1;
__END__
=head1 NAME
App::MadEye::Plugin::Agent::Qudo::Job - monitoring job count of Qudo
=head1 SYNOPSIS
- module: Agent::Qudo::Job
config:
target:
- DBI:mysql:database=foo
user: root
password: ~
threshold: 1000
=head1 SCHEMA
type: map
mapping:
target:
type: seq
required: yes
sequence:
- type: str
user:
required: yes
type: str
password:
required: yes
type: str
threshold:
required: yes
type: int
=head1 AUTHORS
Atsushi Kobayashi
=head1 SEE ALSO
L<Qudo>, L<App::MadEye>

0 comments on commit 3687735

Please sign in to comment.