6 my $DEBUG = $ENV{DEBUG} || 0;
7 my $INFLUX = 'http://10.60.0.89:8186/write';
9 my $hostname = `hostname -s`;
13 sub XXX { $DEBUG ? warn "XXX ",Data::Dump::dump( @_ ) : {} };
17 foreach my $glob ( glob '/var/run/ganeti/instance-disks/*' ) {
18 my ( $instance, $disk ) = split(/:/,$glob,2);
19 my $dev = readlink $glob;
20 $instance =~ s{^.*/}{};
22 $stat->{$instance}->{disk}->[$disk]->{dev} = $dev;
23 open( my $fh, '<', "/sys/class/block/$dev/stat" );
24 my $v = <$fh>; chomp $v; $v =~ s/^\s+//;
25 my @s = split(/\s+/, $v );
26 # https://www.kernel.org/doc/Documentation/block/stat.txt
27 $stat->{$instance}->{disk}->[$disk]->{read_io} = $s[0];
28 $stat->{$instance}->{disk}->[$disk]->{read_bytes} = $s[2] * 512;
29 $stat->{$instance}->{disk}->[$disk]->{read_wait} = $s[3];
30 $stat->{$instance}->{disk}->[$disk]->{write_io} = $s[4];
31 $stat->{$instance}->{disk}->[$disk]->{write_bytes} = $s[6] * 512;
32 $stat->{$instance}->{disk}->[$disk]->{write_wait} = $s[7];
35 foreach my $instance ( glob '/var/run/ganeti/kvm-hypervisor/nic/*' ) {
36 foreach my $nic ( glob "$instance/*" ) {
37 open(my $fh, '<', "$nic");
41 $instance =~ s{^.*/}{};
42 $stat->{$instance}->{nic}->[$nic]->{dev} = $dev;
43 my $vlan = readlink "/sys/class/net/$dev/master";
45 $stat->{$instance}->{nic}->[$nic]->{vlan} = $vlan;
46 foreach my $f (qw( rx_bytes tx_bytes rx_packets tx_packets )) {
47 open( my $fh, '<', "/sys/class/net/$dev/statistics/$f" );
48 my $v = <$fh>; chomp $v;
49 $stat->{$instance}->{nic}->[$nic]->{$f} = $v;