mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
Tue Aug 21 10:58:00 BST 2007 Richard W.M. Jones <rjones@redhat.com>
* src/libvirt.c (virDomainBlockStats, virDomainInterfaceStats): Added block device and network interface statistics. * src/xen_internal.c: Support for stats from Xen domains. * qemud/remote.c, qemud/remote_protocol.x, qemud/remote_internal.c: Support for fetching device and network interface stats across remote connections. * src/virsh.c: Added 'virsh domblkstat' and 'virsh domifstat' commands to display stats. * docs/libvir.html, docs/hvsupport.html: Updated hvsupport documentation.
This commit is contained in:
@@ -14,6 +14,8 @@
|
||||
#ifndef __VIR_VIRLIB_H__
|
||||
#define __VIR_VIRLIB_H__
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -197,6 +199,41 @@ int virDomainSetSchedulerParameters (virDomainPtr domain,
|
||||
virSchedParameterPtr params,
|
||||
int nparams);
|
||||
|
||||
/* Block device stats for virDomainBlockStats.
|
||||
*
|
||||
* Hypervisors may return a field set to ((long long)-1) which indicates
|
||||
* that the hypervisor does not support that statistic.
|
||||
*
|
||||
* NB. Here 'long long' means 64 bit integer.
|
||||
*/
|
||||
struct _virDomainBlockStats {
|
||||
long long rd_req;
|
||||
long long rd_bytes;
|
||||
long long wr_req;
|
||||
long long wr_bytes;
|
||||
long long errs; // In Xen this returns the mysterious 'oo_req'.
|
||||
};
|
||||
typedef struct _virDomainBlockStats *virDomainBlockStatsPtr;
|
||||
|
||||
/* Network interface stats for virDomainInterfaceStats.
|
||||
*
|
||||
* Hypervisors may return a field set to ((long long)-1) which indicates
|
||||
* that the hypervisor does not support that statistic.
|
||||
*
|
||||
* NB. Here 'long long' means 64 bit integer.
|
||||
*/
|
||||
struct _virDomainInterfaceStats {
|
||||
long long rx_bytes;
|
||||
long long rx_packets;
|
||||
long long rx_errs;
|
||||
long long rx_drop;
|
||||
long long tx_bytes;
|
||||
long long tx_packets;
|
||||
long long tx_errs;
|
||||
long long tx_drop;
|
||||
};
|
||||
typedef struct _virDomainInterfaceStats *virDomainInterfaceStatsPtr;
|
||||
|
||||
/* Domain migration flags. */
|
||||
typedef enum {
|
||||
VIR_MIGRATE_LIVE = 1, /* live migration */
|
||||
@@ -379,6 +416,16 @@ int virDomainGetMaxVcpus (virDomainPtr domain);
|
||||
char * virDomainGetXMLDesc (virDomainPtr domain,
|
||||
int flags);
|
||||
|
||||
int virDomainBlockStats (virDomainPtr dom,
|
||||
const char *path,
|
||||
virDomainBlockStatsPtr stats,
|
||||
size_t size);
|
||||
int virDomainInterfaceStats (virDomainPtr dom,
|
||||
const char *path,
|
||||
virDomainInterfaceStatsPtr stats,
|
||||
size_t size);
|
||||
|
||||
|
||||
/*
|
||||
* defined but not running domains
|
||||
*/
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
#ifndef __VIR_VIRLIB_H__
|
||||
#define __VIR_VIRLIB_H__
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -197,6 +199,41 @@ int virDomainSetSchedulerParameters (virDomainPtr domain,
|
||||
virSchedParameterPtr params,
|
||||
int nparams);
|
||||
|
||||
/* Block device stats for virDomainBlockStats.
|
||||
*
|
||||
* Hypervisors may return a field set to ((long long)-1) which indicates
|
||||
* that the hypervisor does not support that statistic.
|
||||
*
|
||||
* NB. Here 'long long' means 64 bit integer.
|
||||
*/
|
||||
struct _virDomainBlockStats {
|
||||
long long rd_req;
|
||||
long long rd_bytes;
|
||||
long long wr_req;
|
||||
long long wr_bytes;
|
||||
long long errs; // In Xen this returns the mysterious 'oo_req'.
|
||||
};
|
||||
typedef struct _virDomainBlockStats *virDomainBlockStatsPtr;
|
||||
|
||||
/* Network interface stats for virDomainInterfaceStats.
|
||||
*
|
||||
* Hypervisors may return a field set to ((long long)-1) which indicates
|
||||
* that the hypervisor does not support that statistic.
|
||||
*
|
||||
* NB. Here 'long long' means 64 bit integer.
|
||||
*/
|
||||
struct _virDomainInterfaceStats {
|
||||
long long rx_bytes;
|
||||
long long rx_packets;
|
||||
long long rx_errs;
|
||||
long long rx_drop;
|
||||
long long tx_bytes;
|
||||
long long tx_packets;
|
||||
long long tx_errs;
|
||||
long long tx_drop;
|
||||
};
|
||||
typedef struct _virDomainInterfaceStats *virDomainInterfaceStatsPtr;
|
||||
|
||||
/* Domain migration flags. */
|
||||
typedef enum {
|
||||
VIR_MIGRATE_LIVE = 1, /* live migration */
|
||||
@@ -379,6 +416,16 @@ int virDomainGetMaxVcpus (virDomainPtr domain);
|
||||
char * virDomainGetXMLDesc (virDomainPtr domain,
|
||||
int flags);
|
||||
|
||||
int virDomainBlockStats (virDomainPtr dom,
|
||||
const char *path,
|
||||
virDomainBlockStatsPtr stats,
|
||||
size_t size);
|
||||
int virDomainInterfaceStats (virDomainPtr dom,
|
||||
const char *path,
|
||||
virDomainInterfaceStatsPtr stats,
|
||||
size_t size);
|
||||
|
||||
|
||||
/*
|
||||
* defined but not running domains
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user