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
# 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);
}