Re: [PATCHv5 5/8] qemu: bulk stats: implement interface group

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]