summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 5f69889)
raw | patch | inline | side by side (parent: 5f69889)
author | Manuel Sanmartin (no email) <collectd@verplant.org> | |
Mon, 23 Nov 2009 21:09:15 +0000 (22:09 +0100) | ||
committer | Florian Forster <octo@leeloo.lan.home.verplant.org> | |
Mon, 23 Nov 2009 21:23:17 +0000 (22:23 +0100) |
src/load.c | patch | blob | history |
diff --git a/src/load.c b/src/load.c
index cf5221b278a425688845df5e9ff75b30b6e05501..76d60524307e06e921aed32b50e1d3681cd1defd 100644 (file)
--- a/src/load.c
+++ b/src/load.c
/**
* collectd - src/load.c
* Copyright (C) 2005-2008 Florian octo Forster
+ * Copyright (C) 2009 Manuel Sanmartin
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
*
* Authors:
* Florian octo Forster <octo at verplant.org>
+ * Manuel Sanmartin
**/
#define _BSD_SOURCE
#endif
#endif /* defined(HAVE_GETLOADAVG) */
+#ifdef HAVE_PERFSTAT
+# include <sys/proc.h> /* AIX 5 */
+# include <sys/protosw.h>
+# include <libperfstat.h>
+#endif /* HAVE_PERFSTAT */
+
static void load_submit (gauge_t snum, gauge_t mnum, gauge_t lnum)
{
value_t values[3];
load_submit (snum, mnum, lnum);
/* #endif HAVE_LIBSTATGRAB */
+#elif HAVE_PERFSTAT
+ gauge_t snum, mnum, lnum;
+ perfstat_cpu_total_t cputotal;
+
+ if (perfstat_cpu_total(NULL, &cputotal, sizeof(perfstat_cpu_total_t), 1) < 0)
+ {
+ char errbuf[1024];
+ WARNING ("load: perfstat_cpu : %s",
+ sstrerror (errno, errbuf, sizeof (errbuf)));
+ return (-1);
+ }
+
+ snum = (float)cputotal.loadavg[0]/(float)(1<<SBITS);
+ mnum = (float)cputotal.loadavg[1]/(float)(1<<SBITS);
+ lnum = (float)cputotal.loadavg[2]/(float)(1<<SBITS);
+
+ load_submit (snum, mnum, lnum);
+/* #endif HAVE_PERFSTAT */
+
#else
# error "No applicable input method."
#endif