summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2004-11-22 20:26:56 +0000
committerhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2004-11-22 20:26:56 +0000
commit592b3ec5fad8e288c16fbbd6b5d181b8690aa685 (patch)
tree53fc22654b02ed27af3cc3d33bd2b780e9e29613
parent8ad13f4e06e51cf9a16eed370328ad34c44a9cb0 (diff)
downloadzabbix-592b3ec5fad8e288c16fbbd6b5d181b8690aa685.tar.gz
zabbix-592b3ec5fad8e288c16fbbd6b5d181b8690aa685.tar.xz
zabbix-592b3ec5fad8e288c16fbbd6b5d181b8690aa685.zip
Fixed for CPU stats.
git-svn-id: svn://svn.zabbix.com/trunk@1512 97f52cf1-0a1b-0410-bd0e-c28be96e8082
-rw-r--r--src/zabbix_agent/cpustat.c36
-rw-r--r--src/zabbix_agent/sysinfo.c75
-rw-r--r--src/zabbix_agent/sysinfo.h14
3 files changed, 111 insertions, 14 deletions
diff --git a/src/zabbix_agent/cpustat.c b/src/zabbix_agent/cpustat.c
index 964de5ad..0579fd33 100644
--- a/src/zabbix_agent/cpustat.c
+++ b/src/zabbix_agent/cpustat.c
@@ -90,7 +90,11 @@ void report_stats_cpustat(FILE *file, int now)
cpu_nice=0,
cpu_nice1=0,
cpu_nice5=0,
- cpu_nice15=0;
+ cpu_nice15=0,
+ cpu_sum=0,
+ cpu_sum1=0,
+ cpu_sum5=0,
+ cpu_sum15=0;
int i;
@@ -129,6 +133,7 @@ void report_stats_cpustat(FILE *file, int now)
cpu_user=cpustat.cpu_user[i];
cpu_nice=cpustat.cpu_nice[i];
cpu_system=cpustat.cpu_system[i];
+ cpu_sum=cpu_idle+cpu_user+cpu_nice+cpu_system;
}
if(cpustat.clock[i]==time1)
{
@@ -136,6 +141,7 @@ void report_stats_cpustat(FILE *file, int now)
cpu_user1=cpustat.cpu_user[i];
cpu_nice1=cpustat.cpu_nice[i];
cpu_system1=cpustat.cpu_system[i];
+ cpu_sum1=cpu_idle1+cpu_user1+cpu_nice1+cpu_system1;
}
if(cpustat.clock[i]==time5)
{
@@ -143,6 +149,7 @@ void report_stats_cpustat(FILE *file, int now)
cpu_user5=cpustat.cpu_user[i];
cpu_nice5=cpustat.cpu_nice[i];
cpu_system5=cpustat.cpu_system[i];
+ cpu_sum5=cpu_idle5+cpu_user5+cpu_nice5+cpu_system5;
}
if(cpustat.clock[i]==time15)
{
@@ -150,11 +157,12 @@ void report_stats_cpustat(FILE *file, int now)
cpu_user15=cpustat.cpu_user[i];
cpu_nice15=cpustat.cpu_nice[i];
cpu_system15=cpustat.cpu_system[i];
+ cpu_sum15=cpu_idle15+cpu_user15+cpu_nice15+cpu_system15;
}
}
if((cpu_idle!=0)&&(cpu_idle1!=0))
{
- fprintf(file,"cpu[idle1] %f\n", (float)((cpu_idle-cpu_idle1)/(now-time1)));
+ fprintf(file,"cpu[idle1] %f\n", 100*(float)((cpu_idle-cpu_idle1)/(cpu_sum-cpu_sum1)));
}
else
{
@@ -162,7 +170,7 @@ void report_stats_cpustat(FILE *file, int now)
}
if((cpu_idle!=0)&&(cpu_idle5!=0))
{
- fprintf(file,"cpu[idle5] %f\n",(float)((cpu_idle-cpu_idle5)/(now-time5)));
+ fprintf(file,"cpu[idle5] %f\n",100*(float)((cpu_idle-cpu_idle5)/(cpu_sum-cpu_sum5)));
}
else
{
@@ -170,7 +178,7 @@ void report_stats_cpustat(FILE *file, int now)
}
if((cpu_idle!=0)&&(cpu_idle15!=0))
{
- fprintf(file,"cpu[idle15] %f\n", (float)((cpu_idle-cpu_idle15)/(now-time15)));
+ fprintf(file,"cpu[idle15] %f\n", 100*(float)((cpu_idle-cpu_idle15)/((cpu_sum-cpu_sum15))));
}
else
{
@@ -179,7 +187,7 @@ void report_stats_cpustat(FILE *file, int now)
if((cpu_user!=0)&&(cpu_user1!=0))
{
- fprintf(file,"cpu[user1] %f\n", (float)((cpu_user-cpu_user1)/(now-time1)));
+ fprintf(file,"cpu[user1] %f\n", 100*(float)((cpu_user-cpu_user1)/((cpu_sum-cpu_sum1))));
}
else
{
@@ -187,7 +195,7 @@ void report_stats_cpustat(FILE *file, int now)
}
if((cpu_user!=0)&&(cpu_user5!=0))
{
- fprintf(file,"cpu[user5] %f\n", (float)((cpu_user-cpu_user5)/(now-time5)));
+ fprintf(file,"cpu[user5] %f\n", 100*(float)((cpu_user-cpu_user5)/((cpu_sum-cpu_sum5))));
}
else
{
@@ -195,7 +203,7 @@ void report_stats_cpustat(FILE *file, int now)
}
if((cpu_user!=0)&&(cpu_user15!=0))
{
- fprintf(file,"cpu[user15] %f\n", (float)((cpu_user-cpu_user15)/(now-time15)));
+ fprintf(file,"cpu[user15] %f\n", 100*(float)((cpu_user-cpu_user15)/((cpu_sum-cpu_sum15))));
}
else
{
@@ -204,7 +212,7 @@ void report_stats_cpustat(FILE *file, int now)
if((cpu_nice!=0)&&(cpu_nice1!=0))
{
- fprintf(file,"cpu[nice1] %f\n", (float)((cpu_nice-cpu_nice1)/(now-time1)));
+ fprintf(file,"cpu[nice1] %f\n", 100*(float)((cpu_nice-cpu_nice1)/((cpu_sum-cpu_sum1))));
}
else
{
@@ -212,7 +220,7 @@ void report_stats_cpustat(FILE *file, int now)
}
if((cpu_nice!=0)&&(cpu_nice5!=0))
{
- fprintf(file,"cpu[nice5] %f\n", (float)((cpu_nice-cpu_nice5)/(now-time5)));
+ fprintf(file,"cpu[nice5] %f\n", 100*(float)((cpu_nice-cpu_nice5)/((cpu_sum-cpu_sum5))));
}
else
{
@@ -220,7 +228,7 @@ void report_stats_cpustat(FILE *file, int now)
}
if((cpu_nice!=0)&&(cpu_nice15!=0))
{
- fprintf(file,"cpu[nice15] %f\n", (float)((cpu_nice-cpu_nice15)/(now-time15)));
+ fprintf(file,"cpu[nice15] %f\n", 100*(float)((cpu_nice-cpu_nice15)/((cpu_sum-cpu_sum15))));
}
else
{
@@ -229,7 +237,7 @@ void report_stats_cpustat(FILE *file, int now)
if((cpu_system!=0)&&(cpu_system1!=0))
{
- fprintf(file,"cpu[system1] %f\n", (float)((cpu_system-cpu_system1)/(now-time1)));
+ fprintf(file,"cpu[system1] %f\n", 100*(float)((cpu_system-cpu_system1)/((cpu_sum-cpu_sum1))));
}
else
{
@@ -237,7 +245,7 @@ void report_stats_cpustat(FILE *file, int now)
}
if((cpu_system!=0)&&(cpu_system5!=0))
{
- fprintf(file,"cpu[system5] %f\n", (float)((cpu_system-cpu_system5)/(now-time5)));
+ fprintf(file,"cpu[system5] %f\n", 100*(float)((cpu_system-cpu_system5)/((cpu_sum-cpu_sum5))));
}
else
{
@@ -245,7 +253,7 @@ void report_stats_cpustat(FILE *file, int now)
}
if((cpu_system!=0)&&(cpu_system15!=0))
{
- fprintf(file,"cpu[system15] %f\n", (float)((cpu_system-cpu_system15)/(now-time15)));
+ fprintf(file,"cpu[system15] %f\n", 100*(float)((cpu_system-cpu_system15)/((cpu_sum-cpu_sum15))));
}
else
{
@@ -309,7 +317,7 @@ void collect_stats_cpustat(FILE *outfile)
s=line;
- sscanf(s,"%f %f %f %f",&cpu_user, &cpu_nice, &cpu_system, &cpu_idle);
+ sscanf(s,"cpu %f %f %f %f",&cpu_user, &cpu_nice, &cpu_system, &cpu_idle);
add_values_cpustat(now,cpu_user, cpu_system, cpu_nice, cpu_idle);
break;
}
diff --git a/src/zabbix_agent/sysinfo.c b/src/zabbix_agent/sysinfo.c
index 246aa11c..41c1e37b 100644
--- a/src/zabbix_agent/sysinfo.c
+++ b/src/zabbix_agent/sysinfo.c
@@ -162,6 +162,22 @@ COMMAND commands[AGENT_MAX_USER_COMMANDS]=
{"filesize[*]" ,FILESIZE, 0, "/etc/passwd"},
+ {"cpu[idle1]" ,CPUIDLE1, 0, 0},
+ {"cpu[idle5]" ,CPUIDLE5, 0, 0},
+ {"cpu[idle15]" ,CPUIDLE15, 0, 0},
+
+ {"cpu[nice1]" ,CPUNICE1, 0, 0},
+ {"cpu[nice5]" ,CPUNICE5, 0, 0},
+ {"cpu[nice15]" ,CPUNICE15, 0, 0},
+
+ {"cpu[user1]" ,CPUUSER1, 0, 0},
+ {"cpu[user5]" ,CPUUSER5, 0, 0},
+ {"cpu[user15]" ,CPUUSER15, 0, 0},
+
+ {"cpu[system1]" ,CPUSYSTEM1, 0, 0},
+ {"cpu[system5]" ,CPUSYSTEM5, 0, 0},
+ {"cpu[system15]" ,CPUSYSTEM15, 0, 0},
+
{"netloadin1[*]" ,NETLOADIN1, 0, "lo"},
{"netloadin5[*]" ,NETLOADIN5, 0, "lo"},
{"netloadin15[*]" ,NETLOADIN15, 0, "lo"},
@@ -1154,6 +1170,65 @@ int DISKWRITEBLKS15(const char *cmd, const char *device,double *value)
return get_stat(key,value);
}
+int CPUIDLE1(const char *cmd, const char *param,double *value)
+{
+ return get_stat("cpu[idle1]",value);
+}
+
+int CPUIDLE5(const char *cmd, const char *param,double *value)
+{
+ return get_stat("cpu[idle5]",value);
+}
+
+int CPUIDLE15(const char *cmd, const char *param,double *value)
+{
+ return get_stat("cpu[idle15]",value);
+}
+
+int CPUNICE1(const char *cmd, const char *param,double *value)
+{
+ return get_stat("cpu[nice1]",value);
+}
+
+int CPUNICE5(const char *cmd, const char *param,double *value)
+{
+ return get_stat("cpu[nice5]",value);
+}
+int CPUNICE15(const char *cmd, const char *param,double *value)
+{
+ return get_stat("cpu[nice15]",value);
+}
+
+int CPUUSER1(const char *cmd, const char *param,double *value)
+{
+ return get_stat("cpu[user1]",value);
+}
+
+int CPUUSER5(const char *cmd, const char *param,double *value)
+{
+ return get_stat("cpu[user5]",value);
+}
+
+int CPUUSER15(const char *cmd, const char *param,double *value)
+{
+ return get_stat("cpu[user15]",value);
+}
+
+int CPUSYSTEM1(const char *cmd, const char *param,double *value)
+{
+ return get_stat("cpu[system1]",value);
+}
+
+int CPUSYSTEM5(const char *cmd, const char *param,double *value)
+{
+ return get_stat("cpu[system5]",value);
+}
+
+int CPUSYSTEM15(const char *cmd, const char *param,double *value)
+{
+ return get_stat("cpu[system15]",value);
+}
+
int NETLOADIN1(const char *cmd, const char *interface,double *value)
{
char key[MAX_STRING_LEN];
diff --git a/src/zabbix_agent/sysinfo.h b/src/zabbix_agent/sysinfo.h
index e563a2d6..470e01d1 100644
--- a/src/zabbix_agent/sysinfo.h
+++ b/src/zabbix_agent/sysinfo.h
@@ -36,6 +36,20 @@ int getPROC(char *file,int lineno,int fieldno, double *value);
int BUFFERSMEM(const char *cmd, const char *parameter,double *value);
int CACHEDMEM(const char *cmd, const char *parameter,double *value);
int CKSUM(const char *cmd, const char *filename,double *value);
+
+int CPUIDLE1(const char *cmd, const char *parameter,double *value);
+int CPUIDLE5(const char *cmd, const char *parameter,double *value);
+int CPUIDLE15(const char *cmd, const char *parameter,double *value);
+int CPUUSER1(const char *cmd, const char *parameter,double *value);
+int CPUUSER5(const char *cmd, const char *parameter,double *value);
+int CPUUSER15(const char *cmd, const char *parameter,double *value);
+int CPUNICE1(const char *cmd, const char *parameter,double *value);
+int CPUNICE5(const char *cmd, const char *parameter,double *value);
+int CPUNICE15(const char *cmd, const char *parameter,double *value);
+int CPUSYSTEM1(const char *cmd, const char *parameter,double *value);
+int CPUSYSTEM5(const char *cmd, const char *parameter,double *value);
+int CPUSYSTEM15(const char *cmd, const char *parameter,double *value);
+
int FILESIZE(const char *cmd, const char *filename,double *value);
int DISKTOTAL(const char *cmd, const char *mountPoint,double *value);
int DISKFREE(const char *cmd, const char *mountPoint,double *value);