summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 8c30c4c)
raw | patch | inline | side by side (parent: 8c30c4c)
author | Oleg King <king2@kaluga.ru> | |
Mon, 5 May 2008 09:40:03 +0000 (11:40 +0200) | ||
committer | Florian Forster <octo@noris.net> | |
Mon, 5 May 2008 09:40:03 +0000 (11:40 +0200) |
configure.in | patch | blob | history | |
src/Makefile.am | patch | blob | history | |
src/cpu.c | patch | blob | history |
diff --git a/configure.in b/configure.in
index e834ffd6aab5490e930cc09f4a1c96e0a5bfa4d6..7e11fc8a8d286654690d362fc0ac8e6fa5605947 100644 (file)
--- a/configure.in
+++ b/configure.in
# libstatgrab
if test "x$with_libstatgrab" = "xyes"
then
+ plugin_cpu="yes"
plugin_interface="yes"
plugin_load="yes"
plugin_memory="yes"
diff --git a/src/Makefile.am b/src/Makefile.am
index fe4af774f4a3b9614d6540c1820601936dbab24c..0ba4ab8b7ace93e5d7ba069aad344e41f244c417 100644 (file)
--- a/src/Makefile.am
+++ b/src/Makefile.am
if BUILD_WITH_LIBDEVINFO
cpu_la_LDFLAGS += -ldevinfo
endif
+if BUILD_WITH_LIBSTATGRAB
+cpu_la_CFLAGS = $(BUILD_WITH_LIBSTATGRAB_CFLAGS)
+cpu_la_LIBADD = $(BUILD_WITH_LIBSTATGRAB_LDFLAGS)
+endif
collectd_LDADD += "-dlopen" cpu.la
collectd_DEPENDENCIES += cpu.la
endif
diff --git a/src/cpu.c b/src/cpu.c
index c79c4b66bc4e01b994eb95222189592a413487d6..2165ce64e7f1182af8bc77467bafbcd499d20af5 100644 (file)
--- a/src/cpu.c
+++ b/src/cpu.c
# endif
#endif /* HAVE_SYSCTLBYNAME */
-#if !PROCESSOR_CPU_LOAD_INFO && !KERNEL_LINUX && !HAVE_LIBKSTAT && !HAVE_SYSCTLBYNAME
+#if HAVE_STATGRAB_H
+# include <statgrab.h>
+#endif
+
+#if !PROCESSOR_CPU_LOAD_INFO && !KERNEL_LINUX && !HAVE_LIBKSTAT \
+ && !HAVE_SYSCTLBYNAME && !HAVE_LIBSTATGRAB
# error "No applicable input method."
#endif
#elif defined(HAVE_SYSCTLBYNAME)
static int numcpu;
-#endif /* HAVE_SYSCTLBYNAME */
+/* #endif HAVE_SYSCTLBYNAME */
+
+#elif defined(HAVE_LIBSTATGRAB)
+/* no variables needed */
+#endif /* HAVE_LIBSTATGRAB */
static int init (void)
{
if (numcpu != 1)
NOTICE ("cpu: Only one processor supported when using `sysctlbyname' (found %i)", numcpu);
-#endif
+/* #endif HAVE_SYSCTLBYNAME */
+
+#elif defined(HAVE_LIBSTATGRAB)
+ /* nothing to initialize */
+#endif /* HAVE_LIBSTATGRAB */
return (0);
} /* int init */
submit (0, "nice", cpuinfo[CP_NICE]);
submit (0, "system", cpuinfo[CP_SYS]);
submit (0, "idle", cpuinfo[CP_IDLE]);
-#endif
+/* #endif HAVE_SYSCTLBYNAME */
+
+#elif defined(HAVE_LIBSTATGRAB)
+ sg_cpu_stats *cs;
+ if ((cs = sg_get_cpu_stats ()) == NULL)
+ return (0);
+
+ submit (0, "idle", (counter_t) cs->idle);
+ submit (0, "nice", (counter_t) cs->nice);
+ submit (0, "user", (counter_t) cs->user);
+ submit (0, "system", (counter_t) (cs->kernel+cs->swap+cs->iowait));
+#endif /* HAVE_LIBSTATGRAB */
return (0);
}