From 9ac283852f89280413516eaba6fce7ef61679619 Mon Sep 17 00:00:00 2001 From: Oleg King Date: Mon, 5 May 2008 11:40:03 +0200 Subject: [PATCH] cpu plugin: Add support for the statgrab library. --- configure.in | 1 + src/Makefile.am | 4 ++++ src/cpu.c | 32 ++++++++++++++++++++++++++++---- 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/configure.in b/configure.in index e834ffd6..7e11fc8a 100644 --- a/configure.in +++ b/configure.in @@ -2331,6 +2331,7 @@ fi # 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 fe4af774..0ba4ab8b 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -152,6 +152,10 @@ endif 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 c79c4b66..2165ce64 100644 --- a/src/cpu.c +++ b/src/cpu.c @@ -68,7 +68,12 @@ # endif #endif /* HAVE_SYSCTLBYNAME */ -#if !PROCESSOR_CPU_LOAD_INFO && !KERNEL_LINUX && !HAVE_LIBKSTAT && !HAVE_SYSCTLBYNAME +#if HAVE_STATGRAB_H +# include +#endif + +#if !PROCESSOR_CPU_LOAD_INFO && !KERNEL_LINUX && !HAVE_LIBKSTAT \ + && !HAVE_SYSCTLBYNAME && !HAVE_LIBSTATGRAB # error "No applicable input method." #endif @@ -98,7 +103,11 @@ static int numcpu; #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) { @@ -152,7 +161,11 @@ 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 */ @@ -370,7 +383,18 @@ static int cpu_read (void) 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); } -- 2.30.2