37 lines
793 B
Perl
37 lines
793 B
Perl
#!/usr/bin/env perl
|
|
use strict;
|
|
use warnings;
|
|
|
|
my $cmd = "apt-get --just-print dist-upgrade";
|
|
my %metrics;
|
|
|
|
open(my $fh, '-|', $cmd) or die $!;
|
|
while(my $line = <$fh>) {
|
|
if ($line =~ /Inst \S+ \S+ \(\S+ (.+) \[(\S+)\]\)/) {
|
|
my $k = sprintf("apt_upgrades_pending{origin=\"%s\", arch=\"%s\"}", $1, $2);
|
|
if (!exists $metrics{$k}) {
|
|
$metrics{$k} = 1;
|
|
} else {
|
|
$metrics{$k}++;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (%metrics) {
|
|
# print apt metrics
|
|
while(my($k, $v) = each %metrics) {
|
|
printf("%s %d\n", $k, $v)
|
|
}
|
|
}
|
|
else {
|
|
print("apt_upgrades_pending{origin=\"\",arch=\"\"} 0\n");
|
|
}
|
|
|
|
# print reboot required metric
|
|
if (-e "/var/run/reboot-required") {
|
|
print("node_reboot_required 1\n")
|
|
}
|
|
else {
|
|
print("node_reboot_required 0\n")
|
|
}
|