summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2001-04-10 16:54:06 +0000
committerhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2001-04-10 16:54:06 +0000
commit45f8bc270bd1358df622978d30b6023baab46a7a (patch)
tree9fc1d575c35342b811738192b7150cb5e5379380 /src
parentcacb88ba547ff4cedd094097e9849f26c27fa2fa (diff)
downloadzabbix-45f8bc270bd1358df622978d30b6023baab46a7a.tar.gz
zabbix-45f8bc270bd1358df622978d30b6023baab46a7a.tar.xz
zabbix-45f8bc270bd1358df622978d30b6023baab46a7a.zip
Added platform OpenBSD. Support for processor load (zabbix_agent) for BSD systems.
git-svn-id: svn://svn.zabbix.com/trunk@34 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src')
-rw-r--r--src/zabbix_agent/configure.in1
-rw-r--r--src/zabbix_agent/sysinfo.c40
2 files changed, 41 insertions, 0 deletions
diff --git a/src/zabbix_agent/configure.in b/src/zabbix_agent/configure.in
index 276046a8..972c17ae 100644
--- a/src/zabbix_agent/configure.in
+++ b/src/zabbix_agent/configure.in
@@ -20,6 +20,7 @@ AC_TYPE_PID_T
dnl Checks for library functions.
AC_TYPE_SIGNAL
+AC_FUNC_GETLOADAVG
AC_CHECK_FUNCS(socket strtod)
AC_CONFIG_HEADER(config.h)
diff --git a/src/zabbix_agent/sysinfo.c b/src/zabbix_agent/sysinfo.c
index 6729ff03..d0ebba54 100644
--- a/src/zabbix_agent/sysinfo.c
+++ b/src/zabbix_agent/sysinfo.c
@@ -1,6 +1,7 @@
#include "config.h"
#include <stdio.h>
+#include <stdlib.h>
/* #include <mntent.h> */
#include <sys/stat.h>
/* Linux */
@@ -160,17 +161,56 @@ float PING(void)
float PROCLOAD(void)
{
+#ifdef HAVE_GETLOADAVG
+ double load[3];
+
+ if(getloadavg(load, 3))
+ {
+ return load[0];
+ }
+ else
+ {
+ return FAIL;
+ }
+#else
return getPROC("/proc/loadavg",1,1);
+#endif
}
float PROCLOAD5(void)
{
+#ifdef HAVE_GETLOADAVG
+ double load[3];
+
+ if(getloadavg(load, 3))
+ {
+ return load[1];
+ }
+ else
+ {
+ return FAIL;
+ }
+#else
return getPROC("/proc/loadavg",1,2);
+#endif
}
float PROCLOAD15(void)
{
+#ifdef HAVE_GETLOADAVG
+ double load[3];
+
+ if(getloadavg(load, 3))
+ {
+ return load[2];
+ }
+ else
+ {
+ return FAIL;
+ }
+#else
return getPROC("/proc/loadavg",1,3);
+#endif
}
float SWAPFREE(void)