On 09/15/14 10:48, Francesco Romani wrote: > This patch implements the VIR_DOMAIN_STATS_INTERFACE > group of statistics. > > Signed-off-by: Francesco Romani <fromani@xxxxxxxxxx> > --- > include/libvirt/libvirt.h.in | 1 + > src/libvirt.c | 14 +++++++ > src/qemu/qemu_driver.c | 89 ++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 104 insertions(+) > > +static int > +qemuDomainGetStatsInterface(virQEMUDriverPtr driver ATTRIBUTE_UNUSED, > + virDomainObjPtr dom, > + virDomainStatsRecordPtr record, > + int *maxparams, > + unsigned int privflags ATTRIBUTE_UNUSED) > +{ > + size_t i; > + struct _virDomainInterfaceStats tmp; > + > + QEMU_ADD_COUNT_PARAM(record, maxparams, "net", dom->def->nnets); > + > + /* Check the path is one of the domain's network interfaces. */ > + for (i = 0; i < dom->def->nnets; i++) { > + memset(&tmp, 0, sizeof(tmp)); > + > + if (virNetInterfaceStats(dom->def->nets[i]->ifname, &tmp) < 0) { > + virResetLastError(); > + continue; > + } We could change the order of these two lines, so that we at least get a list of interfaces in case the stats are not available. > + > + QEMU_ADD_NAME_PARAM(record, maxparams, > + "net", i, dom->def->nets[i]->ifname); > + > + QEMU_ADD_NET_PARAM(record, maxparams, i, > + "rx.bytes", tmp.rx_bytes); > + QEMU_ADD_NET_PARAM(record, maxparams, i, > + "rx.pkts", tmp.rx_packets); > + QEMU_ADD_NET_PARAM(record, maxparams, i, > + "rx.errs", tmp.rx_errs); > + QEMU_ADD_NET_PARAM(record, maxparams, i, > + "rx.drop", tmp.rx_drop); > + QEMU_ADD_NET_PARAM(record, maxparams, i, > + "tx.bytes", tmp.tx_bytes); > + QEMU_ADD_NET_PARAM(record, maxparams, i, > + "tx.pkts", tmp.tx_packets); > + QEMU_ADD_NET_PARAM(record, maxparams, i, > + "tx.errs", tmp.tx_errs); > + QEMU_ADD_NET_PARAM(record, maxparams, i, > + "tx.drop", tmp.tx_drop); > + } > + > + return 0; > +} > + > +#undef QEMU_ADD_NET_PARAM > + > +#undef QEMU_ADD_NAME_PARAM > + > +#undef QEMU_ADD_COUNT_PARAM > > typedef int > (*qemuDomainGetStatsFunc)(virQEMUDriverPtr driver, ACK with the change, although we should add docs that state that stats groups that return "arrays" of stats may have individual elements missing in case stats are not available. Peter
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list