forked from lix-project/hydra
hydra-send-stats: add a --once option for testing
This commit is contained in:
parent
6bb180a0f2
commit
425c7ff17f
|
@ -6,6 +6,7 @@ use Hydra::Helper::Nix;
|
||||||
use Net::Statsd;
|
use Net::Statsd;
|
||||||
use File::Slurp;
|
use File::Slurp;
|
||||||
use JSON;
|
use JSON;
|
||||||
|
use Getopt::Long qw(:config gnu_getopt);
|
||||||
|
|
||||||
STDERR->autoflush(1);
|
STDERR->autoflush(1);
|
||||||
binmode STDERR, ":encoding(utf8)";
|
binmode STDERR, ":encoding(utf8)";
|
||||||
|
@ -65,6 +66,26 @@ sub sendQueueRunnerStats {
|
||||||
gauge("hydra.queue.machines.in_use", scalar(grep { $_->{currentJobs} > 0 } (values %{$json->{machines}})));
|
gauge("hydra.queue.machines.in_use", scalar(grep { $_->{currentJobs} > 0 } (values %{$json->{machines}})));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub showHelp {
|
||||||
|
print <<EOF;
|
||||||
|
Usage: $0 [--once]
|
||||||
|
|
||||||
|
Send stats to statsd. The --once flag can be used to send one round
|
||||||
|
of stats and then exit.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
\$ $0 --once
|
||||||
|
EOF
|
||||||
|
exit 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
my $once = 0;
|
||||||
|
|
||||||
|
GetOptions("once" => \$once,
|
||||||
|
"help" => sub { showHelp() }
|
||||||
|
) or exit 1;
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
eval {
|
eval {
|
||||||
sendQueueRunnerStats();
|
sendQueueRunnerStats();
|
||||||
|
@ -78,5 +99,8 @@ while (1) {
|
||||||
gauge("hydra.mem.dirty", $dirty);
|
gauge("hydra.mem.dirty", $dirty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($once) {
|
||||||
|
last;
|
||||||
|
}
|
||||||
sleep(30);
|
sleep(30);
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ use Test2::V0;
|
||||||
my $db = Hydra::Model::DB->new;
|
my $db = Hydra::Model::DB->new;
|
||||||
hydra_setup($db);
|
hydra_setup($db);
|
||||||
|
|
||||||
my ($res, $stdout, $stderr) = captureStdoutStderr(60, ("hydra-send-stats"));
|
my ($res, $stdout, $stderr) = captureStdoutStderr(60, ("hydra-send-stats", "--once"));
|
||||||
is($stdout, "", "hydra-send-stats stdout should be empty");
|
is($stdout, "", "hydra-send-stats stdout should be empty");
|
||||||
is($stderr, "", "hydra-send-stats stderr should be empty");
|
is($stderr, "", "hydra-send-stats stderr should be empty");
|
||||||
is($res, 0, "hydra-send-stats --once should exit zero");
|
is($res, 0, "hydra-send-stats --once should exit zero");
|
||||||
|
|
Loading…
Reference in a new issue