aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxen
diff options
context:
space:
mode:
authorEwan Mellor <ewan@xensource.com>2007-03-23 13:27:29 +0000
committerEwan Mellor <ewan@xensource.com>2007-03-23 13:27:29 +0000
commitf38e3b431b2f8562218758044c4486fe8da0e6dd (patch)
tree7a6c782bebc16221fb3d345b06c596eab5cd5e3c /tools/libxen
parent6dcfe86140cefa9d91a55a9412f44b87fadb3b39 (diff)
downloadxen-f38e3b431b2f8562218758044c4486fe8da0e6dd.tar.gz
xen-f38e3b431b2f8562218758044c4486fe8da0e6dd.tar.bz2
xen-f38e3b431b2f8562218758044c4486fe8da0e6dd.zip
Add a last_updated field to every metrics class.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
Diffstat (limited to 'tools/libxen')
-rw-r--r--tools/libxen/include/xen_host_metrics.h8
-rw-r--r--tools/libxen/include/xen_pif_metrics.h8
-rw-r--r--tools/libxen/include/xen_vbd_metrics.h8
-rw-r--r--tools/libxen/include/xen_vif_metrics.h8
-rw-r--r--tools/libxen/include/xen_vm_guest_metrics.h8
-rw-r--r--tools/libxen/include/xen_vm_metrics.h8
-rw-r--r--tools/libxen/src/xen_host_metrics.c21
-rw-r--r--tools/libxen/src/xen_pif_metrics.c21
-rw-r--r--tools/libxen/src/xen_vbd_metrics.c21
-rw-r--r--tools/libxen/src/xen_vif_metrics.c21
-rw-r--r--tools/libxen/src/xen_vm_guest_metrics.c21
-rw-r--r--tools/libxen/src/xen_vm_metrics.c21
-rw-r--r--tools/libxen/test/test_bindings.c5
13 files changed, 173 insertions, 6 deletions
diff --git a/tools/libxen/include/xen_host_metrics.h b/tools/libxen/include/xen_host_metrics.h
index 31f3123364..84121332c7 100644
--- a/tools/libxen/include/xen_host_metrics.h
+++ b/tools/libxen/include/xen_host_metrics.h
@@ -64,6 +64,7 @@ typedef struct xen_host_metrics_record
char *uuid;
int64_t memory_total;
int64_t memory_free;
+ time_t last_updated;
} xen_host_metrics_record;
/**
@@ -182,6 +183,13 @@ xen_host_metrics_get_memory_free(xen_session *session, int64_t *result, xen_host
/**
+ * Get the last_updated field of the given host_metrics.
+ */
+extern bool
+xen_host_metrics_get_last_updated(xen_session *session, time_t *result, xen_host_metrics host_metrics);
+
+
+/**
* Return a list of all the host_metrics instances known to the system.
*/
extern bool
diff --git a/tools/libxen/include/xen_pif_metrics.h b/tools/libxen/include/xen_pif_metrics.h
index b8dad22afa..970700feb1 100644
--- a/tools/libxen/include/xen_pif_metrics.h
+++ b/tools/libxen/include/xen_pif_metrics.h
@@ -64,6 +64,7 @@ typedef struct xen_pif_metrics_record
char *uuid;
double io_read_kbs;
double io_write_kbs;
+ time_t last_updated;
} xen_pif_metrics_record;
/**
@@ -181,6 +182,13 @@ xen_pif_metrics_get_io_write_kbs(xen_session *session, double *result, xen_pif_m
/**
+ * Get the last_updated field of the given PIF_metrics.
+ */
+extern bool
+xen_pif_metrics_get_last_updated(xen_session *session, time_t *result, xen_pif_metrics pif_metrics);
+
+
+/**
* Return a list of all the PIF_metrics instances known to the system.
*/
extern bool
diff --git a/tools/libxen/include/xen_vbd_metrics.h b/tools/libxen/include/xen_vbd_metrics.h
index 3cd507b31e..f1aa420a34 100644
--- a/tools/libxen/include/xen_vbd_metrics.h
+++ b/tools/libxen/include/xen_vbd_metrics.h
@@ -64,6 +64,7 @@ typedef struct xen_vbd_metrics_record
char *uuid;
double io_read_kbs;
double io_write_kbs;
+ time_t last_updated;
} xen_vbd_metrics_record;
/**
@@ -181,6 +182,13 @@ xen_vbd_metrics_get_io_write_kbs(xen_session *session, double *result, xen_vbd_m
/**
+ * Get the last_updated field of the given VBD_metrics.
+ */
+extern bool
+xen_vbd_metrics_get_last_updated(xen_session *session, time_t *result, xen_vbd_metrics vbd_metrics);
+
+
+/**
* Return a list of all the VBD_metrics instances known to the system.
*/
extern bool
diff --git a/tools/libxen/include/xen_vif_metrics.h b/tools/libxen/include/xen_vif_metrics.h
index b5a26f25c6..2febab468d 100644
--- a/tools/libxen/include/xen_vif_metrics.h
+++ b/tools/libxen/include/xen_vif_metrics.h
@@ -64,6 +64,7 @@ typedef struct xen_vif_metrics_record
char *uuid;
double io_read_kbs;
double io_write_kbs;
+ time_t last_updated;
} xen_vif_metrics_record;
/**
@@ -181,6 +182,13 @@ xen_vif_metrics_get_io_write_kbs(xen_session *session, double *result, xen_vif_m
/**
+ * Get the last_updated field of the given VIF_metrics.
+ */
+extern bool
+xen_vif_metrics_get_last_updated(xen_session *session, time_t *result, xen_vif_metrics vif_metrics);
+
+
+/**
* Return a list of all the VIF_metrics instances known to the system.
*/
extern bool
diff --git a/tools/libxen/include/xen_vm_guest_metrics.h b/tools/libxen/include/xen_vm_guest_metrics.h
index 61b8b5b2b7..2734764526 100644
--- a/tools/libxen/include/xen_vm_guest_metrics.h
+++ b/tools/libxen/include/xen_vm_guest_metrics.h
@@ -69,6 +69,7 @@ typedef struct xen_vm_guest_metrics_record
xen_string_string_map *disks;
xen_string_string_map *networks;
xen_string_string_map *other;
+ time_t last_updated;
} xen_vm_guest_metrics_record;
/**
@@ -216,6 +217,13 @@ xen_vm_guest_metrics_get_other(xen_session *session, xen_string_string_map **res
/**
+ * Get the last_updated field of the given VM_guest_metrics.
+ */
+extern bool
+xen_vm_guest_metrics_get_last_updated(xen_session *session, time_t *result, xen_vm_guest_metrics vm_guest_metrics);
+
+
+/**
* Return a list of all the VM_guest_metrics instances known to the
* system.
*/
diff --git a/tools/libxen/include/xen_vm_metrics.h b/tools/libxen/include/xen_vm_metrics.h
index b03c4d4e3c..d686a7c99f 100644
--- a/tools/libxen/include/xen_vm_metrics.h
+++ b/tools/libxen/include/xen_vm_metrics.h
@@ -66,6 +66,7 @@ typedef struct xen_vm_metrics_record
int64_t memory_actual;
int64_t vcpus_number;
xen_int_float_map *vcpus_utilisation;
+ time_t last_updated;
} xen_vm_metrics_record;
/**
@@ -190,6 +191,13 @@ xen_vm_metrics_get_vcpus_utilisation(xen_session *session, xen_int_float_map **r
/**
+ * Get the last_updated field of the given VM_metrics.
+ */
+extern bool
+xen_vm_metrics_get_last_updated(xen_session *session, time_t *result, xen_vm_metrics vm_metrics);
+
+
+/**
* Return a list of all the VM_metrics instances known to the system.
*/
extern bool
diff --git a/tools/libxen/src/xen_host_metrics.c b/tools/libxen/src/xen_host_metrics.c
index d82994dfd0..bc621fbaae 100644
--- a/tools/libxen/src/xen_host_metrics.c
+++ b/tools/libxen/src/xen_host_metrics.c
@@ -44,7 +44,10 @@ static const struct_member xen_host_metrics_record_struct_members[] =
.offset = offsetof(xen_host_metrics_record, memory_total) },
{ .key = "memory_free",
.type = &abstract_type_int,
- .offset = offsetof(xen_host_metrics_record, memory_free) }
+ .offset = offsetof(xen_host_metrics_record, memory_free) },
+ { .key = "last_updated",
+ .type = &abstract_type_datetime,
+ .offset = offsetof(xen_host_metrics_record, last_updated) }
};
const abstract_type xen_host_metrics_record_abstract_type_ =
@@ -143,6 +146,22 @@ xen_host_metrics_get_memory_free(xen_session *session, int64_t *result, xen_host
bool
+xen_host_metrics_get_last_updated(xen_session *session, time_t *result, xen_host_metrics host_metrics)
+{
+ abstract_value param_values[] =
+ {
+ { .type = &abstract_type_string,
+ .u.string_val = host_metrics }
+ };
+
+ abstract_type result_type = abstract_type_datetime;
+
+ XEN_CALL_("host_metrics.get_last_updated");
+ return session->ok;
+}
+
+
+bool
xen_host_metrics_get_all(xen_session *session, struct xen_host_metrics_set **result)
{
diff --git a/tools/libxen/src/xen_pif_metrics.c b/tools/libxen/src/xen_pif_metrics.c
index 65e3e22f3b..5826001731 100644
--- a/tools/libxen/src/xen_pif_metrics.c
+++ b/tools/libxen/src/xen_pif_metrics.c
@@ -44,7 +44,10 @@ static const struct_member xen_pif_metrics_record_struct_members[] =
.offset = offsetof(xen_pif_metrics_record, io_read_kbs) },
{ .key = "io_write_kbs",
.type = &abstract_type_float,
- .offset = offsetof(xen_pif_metrics_record, io_write_kbs) }
+ .offset = offsetof(xen_pif_metrics_record, io_write_kbs) },
+ { .key = "last_updated",
+ .type = &abstract_type_datetime,
+ .offset = offsetof(xen_pif_metrics_record, last_updated) }
};
const abstract_type xen_pif_metrics_record_abstract_type_ =
@@ -143,6 +146,22 @@ xen_pif_metrics_get_io_write_kbs(xen_session *session, double *result, xen_pif_m
bool
+xen_pif_metrics_get_last_updated(xen_session *session, time_t *result, xen_pif_metrics pif_metrics)
+{
+ abstract_value param_values[] =
+ {
+ { .type = &abstract_type_string,
+ .u.string_val = pif_metrics }
+ };
+
+ abstract_type result_type = abstract_type_datetime;
+
+ XEN_CALL_("PIF_metrics.get_last_updated");
+ return session->ok;
+}
+
+
+bool
xen_pif_metrics_get_all(xen_session *session, struct xen_pif_metrics_set **result)
{
diff --git a/tools/libxen/src/xen_vbd_metrics.c b/tools/libxen/src/xen_vbd_metrics.c
index 985553d5a0..f0b221f65e 100644
--- a/tools/libxen/src/xen_vbd_metrics.c
+++ b/tools/libxen/src/xen_vbd_metrics.c
@@ -44,7 +44,10 @@ static const struct_member xen_vbd_metrics_record_struct_members[] =
.offset = offsetof(xen_vbd_metrics_record, io_read_kbs) },
{ .key = "io_write_kbs",
.type = &abstract_type_float,
- .offset = offsetof(xen_vbd_metrics_record, io_write_kbs) }
+ .offset = offsetof(xen_vbd_metrics_record, io_write_kbs) },
+ { .key = "last_updated",
+ .type = &abstract_type_datetime,
+ .offset = offsetof(xen_vbd_metrics_record, last_updated) }
};
const abstract_type xen_vbd_metrics_record_abstract_type_ =
@@ -143,6 +146,22 @@ xen_vbd_metrics_get_io_write_kbs(xen_session *session, double *result, xen_vbd_m
bool
+xen_vbd_metrics_get_last_updated(xen_session *session, time_t *result, xen_vbd_metrics vbd_metrics)
+{
+ abstract_value param_values[] =
+ {
+ { .type = &abstract_type_string,
+ .u.string_val = vbd_metrics }
+ };
+
+ abstract_type result_type = abstract_type_datetime;
+
+ XEN_CALL_("VBD_metrics.get_last_updated");
+ return session->ok;
+}
+
+
+bool
xen_vbd_metrics_get_all(xen_session *session, struct xen_vbd_metrics_set **result)
{
diff --git a/tools/libxen/src/xen_vif_metrics.c b/tools/libxen/src/xen_vif_metrics.c
index 78707b36f5..b3b2a79f59 100644
--- a/tools/libxen/src/xen_vif_metrics.c
+++ b/tools/libxen/src/xen_vif_metrics.c
@@ -44,7 +44,10 @@ static const struct_member xen_vif_metrics_record_struct_members[] =
.offset = offsetof(xen_vif_metrics_record, io_read_kbs) },
{ .key = "io_write_kbs",
.type = &abstract_type_float,
- .offset = offsetof(xen_vif_metrics_record, io_write_kbs) }
+ .offset = offsetof(xen_vif_metrics_record, io_write_kbs) },
+ { .key = "last_updated",
+ .type = &abstract_type_datetime,
+ .offset = offsetof(xen_vif_metrics_record, last_updated) }
};
const abstract_type xen_vif_metrics_record_abstract_type_ =
@@ -143,6 +146,22 @@ xen_vif_metrics_get_io_write_kbs(xen_session *session, double *result, xen_vif_m
bool
+xen_vif_metrics_get_last_updated(xen_session *session, time_t *result, xen_vif_metrics vif_metrics)
+{
+ abstract_value param_values[] =
+ {
+ { .type = &abstract_type_string,
+ .u.string_val = vif_metrics }
+ };
+
+ abstract_type result_type = abstract_type_datetime;
+
+ XEN_CALL_("VIF_metrics.get_last_updated");
+ return session->ok;
+}
+
+
+bool
xen_vif_metrics_get_all(xen_session *session, struct xen_vif_metrics_set **result)
{
diff --git a/tools/libxen/src/xen_vm_guest_metrics.c b/tools/libxen/src/xen_vm_guest_metrics.c
index dd464c4806..f18966c46a 100644
--- a/tools/libxen/src/xen_vm_guest_metrics.c
+++ b/tools/libxen/src/xen_vm_guest_metrics.c
@@ -57,7 +57,10 @@ static const struct_member xen_vm_guest_metrics_record_struct_members[] =
.offset = offsetof(xen_vm_guest_metrics_record, networks) },
{ .key = "other",
.type = &abstract_type_string_string_map,
- .offset = offsetof(xen_vm_guest_metrics_record, other) }
+ .offset = offsetof(xen_vm_guest_metrics_record, other) },
+ { .key = "last_updated",
+ .type = &abstract_type_datetime,
+ .offset = offsetof(xen_vm_guest_metrics_record, last_updated) }
};
const abstract_type xen_vm_guest_metrics_record_abstract_type_ =
@@ -232,6 +235,22 @@ xen_vm_guest_metrics_get_other(xen_session *session, xen_string_string_map **res
bool
+xen_vm_guest_metrics_get_last_updated(xen_session *session, time_t *result, xen_vm_guest_metrics vm_guest_metrics)
+{
+ abstract_value param_values[] =
+ {
+ { .type = &abstract_type_string,
+ .u.string_val = vm_guest_metrics }
+ };
+
+ abstract_type result_type = abstract_type_datetime;
+
+ XEN_CALL_("VM_guest_metrics.get_last_updated");
+ return session->ok;
+}
+
+
+bool
xen_vm_guest_metrics_get_all(xen_session *session, struct xen_vm_guest_metrics_set **result)
{
diff --git a/tools/libxen/src/xen_vm_metrics.c b/tools/libxen/src/xen_vm_metrics.c
index 9bafa83aa0..ae20899e06 100644
--- a/tools/libxen/src/xen_vm_metrics.c
+++ b/tools/libxen/src/xen_vm_metrics.c
@@ -48,7 +48,10 @@ static const struct_member xen_vm_metrics_record_struct_members[] =
.offset = offsetof(xen_vm_metrics_record, vcpus_number) },
{ .key = "VCPUs_utilisation",
.type = &abstract_type_int_float_map,
- .offset = offsetof(xen_vm_metrics_record, vcpus_utilisation) }
+ .offset = offsetof(xen_vm_metrics_record, vcpus_utilisation) },
+ { .key = "last_updated",
+ .type = &abstract_type_datetime,
+ .offset = offsetof(xen_vm_metrics_record, last_updated) }
};
const abstract_type xen_vm_metrics_record_abstract_type_ =
@@ -165,6 +168,22 @@ xen_vm_metrics_get_vcpus_utilisation(xen_session *session, xen_int_float_map **r
bool
+xen_vm_metrics_get_last_updated(xen_session *session, time_t *result, xen_vm_metrics vm_metrics)
+{
+ abstract_value param_values[] =
+ {
+ { .type = &abstract_type_string,
+ .u.string_val = vm_metrics }
+ };
+
+ abstract_type result_type = abstract_type_datetime;
+
+ XEN_CALL_("VM_metrics.get_last_updated");
+ return session->ok;
+}
+
+
+bool
xen_vm_metrics_get_all(xen_session *session, struct xen_vm_metrics_set **result)
{
diff --git a/tools/libxen/test/test_bindings.c b/tools/libxen/test/test_bindings.c
index 1471814d81..c709e64867 100644
--- a/tools/libxen/test/test_bindings.c
+++ b/tools/libxen/test/test_bindings.c
@@ -592,6 +592,11 @@ static void print_vm_metrics(xen_session *session, xen_vm vm)
return;
}
+ char time[256];
+ struct tm *tm = localtime(&vm_metrics_record->last_updated);
+ strftime(time, 256, "Metrics updated at %c, local time.\n", tm);
+ printf(time);
+
for (size_t i = 0; i < vm_metrics_record->vcpus_utilisation->size; i++)
{
printf("%"PRId64" -> %lf.\n",