xenstat.plugin: check xenstat_vbd_error presence (#7103)

The xenstat_vbd_error function is going to be part of the xen 4.13
release. The workaround here is to check if the function is already
present in configuration phase and set vbd_m->error always to 0 if
xenstat_vbd_error does not exist.
This commit is contained in:
Petr Vaněk 2019-10-22 16:29:03 +02:00 committed by Vladimir Kobal
parent 509882ea3b
commit 31116639d6
2 changed files with 20 additions and 0 deletions

View File

@ -333,7 +333,11 @@ static int vbd_metrics_collect(struct domain_metrics *d, xenstat_domain *domain)
return 1;
}
#ifdef HAVE_XENSTAT_VBD_ERROR
vbd_m->error = xenstat_vbd_error(vbd);
#else
vbd_m->error = 0;
#endif
vbd_m->oo_reqs = xenstat_vbd_oo_reqs(vbd);
vbd_m->rd_reqs = xenstat_vbd_rd_reqs(vbd);
vbd_m->wr_reqs = xenstat_vbd_wr_reqs(vbd);

View File

@ -748,6 +748,22 @@ fi
AC_MSG_RESULT([${enable_plugin_xenstat}])
AM_CONDITIONAL([ENABLE_PLUGIN_XENSTAT], [test "${enable_plugin_xenstat}" = "yes"])
if test "${enable_plugin_xenstat}" == "yes"; then
AC_MSG_CHECKING([for xenstat_vbd_error in -lxenstat])
AC_TRY_LINK(
[ #include <xenstat.h> ],
[
xenstat_vbd * vbd;
int out = xenstat_vbd_error(vbd);
],
[
have_xenstat_vbd_error=yes
AC_DEFINE([HAVE_XENSTAT_VBD_ERROR], [1], [xenstat_vbd_error usability])
],
[ have_xenstat_vbd_error=no ]
)
AC_MSG_RESULT([${have_xenstat_vbd_error}])
fi
# -----------------------------------------------------------------------------
# perf.plugin