VIR_CONNECT_GET_ALL_DOMAINS_STATS_SHUTOFF = VIR_CONNECT_LIST_DOMAINS_SHUTOFF,
VIR_CONNECT_GET_ALL_DOMAINS_STATS_OTHER = VIR_CONNECT_LIST_DOMAINS_OTHER,
+ VIR_CONNECT_GET_ALL_DOMAINS_STATS_BACKING = 1 << 30, /* include backing chain for block stats */
VIR_CONNECT_GET_ALL_DOMAINS_STATS_ENFORCE_STATS = 1 << 31, /* enforce requested stats */
} virConnectGetAllDomainStatsFlags;
* "net.<num>.tx.errs" - transmission errors as unsigned long long.
* "net.<num>.tx.drop" - transmit packets dropped as unsigned long long.
*
- * VIR_DOMAIN_STATS_BLOCK: Return block devices statistics.
+ * VIR_DOMAIN_STATS_BLOCK: Return block devices statistics. By default,
+ * this information is limited to the active layer of each <disk> of the
+ * domain (where block.count is equal to the number of disks), but adding
+ * VIR_CONNECT_GET_ALL_DOMAINS_STATS_BACKING to @flags will expand the
+ * array to cover backing chains (block.count corresponds to the number
+ * of host resources used together to provide the guest disks).
* The typed parameter keys are in this format:
- * "block.count" - number of block devices on this domain
+ * "block.count" - number of block devices in the subsequent list,
* as unsigned int.
* "block.<num>.name" - name of the block device <num> as string.
* matches the target name (vda/sda/hda) of the
- * block device.
+ * block device. If the backing chain is listed,
+ * this name is the same for all host resources tied
+ * to the same guest device.
+ * "block.<num>.backingIndex" - unsigned int giving the <backingStore> index,
+ * only used when backing images are listed.
* "block.<num>.path" - string describing the source of block device <num>,
* if it is a file or block device (omitted for network
* sources and drives with no media inserted).
.type = VSH_OT_BOOL,
.help = N_("enforce requested stats parameters"),
},
+ {.name = "backing",
+ .type = VSH_OT_BOOL,
+ .help = N_("add backing chain information to block stats"),
+ },
{.name = "domain",
.type = VSH_OT_ARGV,
.flags = VSH_OFLAG_NONE,
if (vshCommandOptBool(cmd, "enforce"))
flags |= VIR_CONNECT_GET_ALL_DOMAINS_STATS_ENFORCE_STATS;
+ if (vshCommandOptBool(cmd, "backing"))
+ flags |= VIR_CONNECT_GET_ALL_DOMAINS_STATS_BACKING;
+
if (vshCommandOptBool(cmd, "domain")) {
if (VIR_ALLOC_N(domlist, 1) < 0)
goto cleanup;
I<snapshot-create> for disk snapshots) will accept either target
or unique source names printed by this command.
-=item B<domstats> [I<--raw>] [I<--enforce>] [I<--state>]
+=item B<domstats> [I<--raw>] [I<--enforce>] [I<--backing>] [I<--state>]
[I<--cpu-total>] [I<--balloon>] [I<--vcpu>] [I<--interface>] [I<--block>]
[[I<--list-active>] [I<--list-inactive>] [I<--list-persistent>]
[I<--list-transient>] [I<--list-running>] [I<--list-paused>]
"net.<num>.tx.errs" - number of transmission errors,
"net.<num>.tx.drop" - number of transmit packets dropped
-I<--block> returns:
-"block.count" - number of block devices on this domain,
-"block.<num>.name" - name of the target of the block device <num>,
+I<--block> returns information about disks associated with each
+domain. Using the I<--backing> flag extends this information to
+cover all resources in the backing chain, rather than the default
+of limiting information to the active layer for each guest disk.
+Information listed includes:
+"block.count" - number of block devices being listed,
+"block.<num>.name" - name of the target of the block device <num> (the
+same name for multiple entries if I<--backing> is present),
+"block.<num>.backingIndex" - when I<--backing> is present, matches up
+with the <backingStore> index listed in domain XML for backing files,
"block.<num>.path" - file source of block device <num>, if it is a
local file or block device,
"block.<num>.rd.reqs" - number of read requests,