projects
/
gnt-info
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
9c0610c
)
skip non-existing or stopped instances
author
Dobrica Pavlinusic
<dpavlin@rot13.org>
Wed, 7 Dec 2016 14:34:10 +0000
(15:34 +0100)
committer
Dobrica Pavlinusic
<dpavlin@rot13.org>
Wed, 7 Dec 2016 14:34:10 +0000
(15:34 +0100)
gnt-monitor
patch
|
blob
|
history
diff --git
a/gnt-monitor
b/gnt-monitor
index
01e6104
..
0be36c6
100755
(executable)
--- a/
gnt-monitor
+++ b/
gnt-monitor
@@
-19,6
+19,8
@@
my $last;
while(1) {
while(1) {
+my $skip;
+
foreach my $instance ( glob '/var/run/ganeti/kvm-hypervisor/pid/*' ) {
open(my $fh, '<', $instance);
foreach my $instance ( glob '/var/run/ganeti/kvm-hypervisor/pid/*' ) {
open(my $fh, '<', $instance);
@@
-26,6
+28,12
@@
foreach my $instance ( glob '/var/run/ganeti/kvm-hypervisor/pid/*' ) {
$instance =~ s{^.*/}{};
$instance =~ s{^.*/}{};
+ if ( ! -d "/proc/$pid" ) {
+ $skip->{$instance}++;
+ XXX $skip;
+ next;
+ }
+
my $vcpu = $last->{$instance}->{vcpu};
if ( ! $vcpu ) {
my $vcpu = $last->{$instance}->{vcpu};
if ( ! $vcpu ) {
@@
-54,9
+62,19
@@
foreach my $instance ( glob '/var/run/ganeti/kvm-hypervisor/pid/*' ) {
foreach my $glob ( glob '/var/run/ganeti/instance-disks/*' ) {
my ( $instance, $disk ) = split(/:/,$glob,2);
foreach my $glob ( glob '/var/run/ganeti/instance-disks/*' ) {
my ( $instance, $disk ) = split(/:/,$glob,2);
- my $dev = readlink $glob;
$instance =~ s{^.*/}{};
$instance =~ s{^.*/}{};
+
+ next unless exists $stat->{$instance};
+
+ my $dev = readlink $glob;
$dev =~ s{^.*dev/}{};
$dev =~ s{^.*dev/}{};
+
+ if ( ! -e "/sys/class/block/$dev" ) {
+ $skip->{$instance}++;
+ XXX $skip;
+ next;
+ }
+
open( my $fh, '<', "/sys/class/block/$dev/stat" );
my $v = <$fh>; chomp $v; $v =~ s/^\s+//;
my @s = split(/\s+/, $v );
open( my $fh, '<', "/sys/class/block/$dev/stat" );
my $v = <$fh>; chomp $v; $v =~ s/^\s+//;
my @s = split(/\s+/, $v );
@@
-80,14
+98,18
@@
foreach my $glob ( glob '/var/run/ganeti/instance-disks/*' ) {
}
}
-foreach my $instance ( glob '/var/run/ganeti/kvm-hypervisor/nic/*' ) {
- foreach my $nic ( glob "$instance/*" ) {
+foreach my $full_instance ( glob '/var/run/ganeti/kvm-hypervisor/nic/*' ) {
+ my $instance = $full_instance;
+ $instance =~ s{^.*/}{};
+ next unless exists $stat->{$instance};
+
+ foreach my $nic ( glob "$full_instance/*" ) {
open(my $fh, '<', $nic);
my $dev = <$fh>;
open(my $fh, '<', $nic);
my $dev = <$fh>;
+
+ next unless -e "/sys/class/net/$dev";
+
$nic =~ s{^.*/}{};
$nic =~ s{^.*/}{};
- $instance =~ s{^.*/}{};
- my $vlan = readlink "/sys/class/net/$dev/master";
- $vlan =~ s/^.*br/br/;
my $d;
my $d;
@@
-99,7
+121,11
@@
foreach my $instance ( glob '/var/run/ganeti/kvm-hypervisor/nic/*' ) {
if ( my $l = $last->{$instance}->{nic}->[$nic] ) {
$stat->{$instance}->{nic}->[$nic]->{$_} = $d->{$_} - $l->{$_} foreach keys %$d;
$stat->{$instance}->{nic}->[$nic]->{dev} = $dev;
if ( my $l = $last->{$instance}->{nic}->[$nic] ) {
$stat->{$instance}->{nic}->[$nic]->{$_} = $d->{$_} - $l->{$_} foreach keys %$d;
$stat->{$instance}->{nic}->[$nic]->{dev} = $dev;
- $stat->{$instance}->{nic}->[$nic]->{vlan} = $vlan;
+ if ( -e "/sys/class/net/$dev/master" ) {
+ my $vlan = readlink "/sys/class/net/$dev/master";
+ $vlan =~ s/^.*br/br/;
+ $stat->{$instance}->{nic}->[$nic]->{vlan} = $vlan;
+ }
}
$last->{$instance}->{nic}->[$nic] = $d;
}
$last->{$instance}->{nic}->[$nic] = $d;
@@
-122,6
+148,9
@@
sub dump4influx {
}
foreach my $instance ( keys %$stat ) {
}
foreach my $instance ( keys %$stat ) {
+
+ next if $skip->{$instance};
+
print $fh qq{cpu,node="$node",instance="$instance" cpu=}, $stat->{$instance}->{cpu}, "\n";
foreach my $disk ( @{ $stat->{$instance}->{disk} } ) {
print $fh qq{cpu,node="$node",instance="$instance" cpu=}, $stat->{$instance}->{cpu}, "\n";
foreach my $disk ( @{ $stat->{$instance}->{disk} } ) {