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

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



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 redhat com>
> ---
>  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


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