[pve-devel] [PATCH] qemuserver : vm_status : add extended stats (disks, nics, memory) V2

Alexandre Derumier aderumier at odiso.com
Tue Jun 16 11:18:33 CEST 2015


Add extended stats results for each nics,disks and memory on full stats mode only.

Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
 PVE/QemuServer.pm | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index e89308c..892b051 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -2347,6 +2347,12 @@ sub vmstatus {
 
 	$d->{netout} += $netdev->{$dev}->{receive};
 	$d->{netin} += $netdev->{$dev}->{transmit};
+
+	if ($full) {
+	    $res->{$vmid}->{nics}->{$dev}->{netout} = $netdev->{$dev}->{receive};
+	    $res->{$vmid}->{nics}->{$dev}->{netin} = $netdev->{$dev}->{transmit};
+	}
+
     }
 
     my $ctime = gettimeofday;
@@ -2415,6 +2421,7 @@ sub vmstatus {
 	    $d->{freemem} = $info->{free_mem};
 	}
 
+	$d->{ballooninfo} = $info;
     };
 
     my $blockstatscb = sub {
@@ -2422,9 +2429,24 @@ sub vmstatus {
 	my $data = $resp->{'return'} || [];
 	my $totalrdbytes = 0;
 	my $totalwrbytes = 0;
+
+	my $cfspath = cfs_config_path($vmid);
+	my $conf = PVE::Cluster::cfs_read_file($cfspath);
+	my $storecfg = PVE::Storage::config();
+
 	for my $blockstat (@$data) {
 	    $totalrdbytes = $totalrdbytes + $blockstat->{stats}->{rd_bytes};
 	    $totalwrbytes = $totalwrbytes + $blockstat->{stats}->{wr_bytes};
+
+	    $blockstat->{device} =~ s/drive-//;
+	    my $drive = parse_drive($blockstat->{device}, $conf->{$blockstat->{device}});
+	    next if PVE::QemuServer::drive_is_cdrom($drive);
+	    my $volid = $drive->{file};
+	    my ($storeid, $volname) = PVE::Storage::parse_volume_id($volid);
+	    my ($vtype, $name, $owner) = PVE::Storage::parse_volname($storecfg, $volid);
+
+	    $res->{$vmid}->{blockstat}->{$storeid}->{$name} = $blockstat->{stats};
+
 	}
 	$res->{$vmid}->{diskread} = $totalrdbytes;
 	$res->{$vmid}->{diskwrite} = $totalwrbytes;
-- 
2.1.4




More information about the pve-devel mailing list