rpms/zabbix/devel zabbix-1.5.4-ifoutoctets.patch, NONE, 1.1 zabbix-1.6-cpustats.patch, NONE, 1.1 zabbix.spec, 1.26, 1.27

Jeffrey C. Ollie jcollie at fedoraproject.org
Tue Sep 30 17:39:17 UTC 2008


Author: jcollie

Update of /cvs/pkgs/rpms/zabbix/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv23927

Modified Files:
	zabbix.spec 
Added Files:
	zabbix-1.5.4-ifoutoctets.patch zabbix-1.6-cpustats.patch 
Log Message:
* Thu Sep 30 2008 Jeffrey C. Ollie <jeff at ocjtech.us> - 1.6-1
- Update to final 1.6


zabbix-1.5.4-ifoutoctets.patch:

--- NEW FILE zabbix-1.5.4-ifoutoctets.patch ---
diff --git a/src/zabbix_server/poller/checks_snmp.c b/src/zabbix_server/poller/checks_snmp.c
index 81c2f5d..be6a322 100644
--- a/src/zabbix_server/poller/checks_snmp.c
+++ b/src/zabbix_server/poller/checks_snmp.c
@@ -875,7 +875,8 @@ static ZBX_MIB_NORM mibs[]=
 	{"ifInDiscards",	"1.3.6.1.2.1.2.2.1.13"},
 	{"ifInErrors",		"1.3.6.1.2.1.2.2.1.14"},
 	{"ifInUnknownProtos",	"1.3.6.1.2.1.2.2.1.15"},
-	{"ifOutOctets",		"1.3.6.1.2.1.2.2.1.17"},
+	{"ifOutOctets",		"1.3.6.1.2.1.2.2.1.16"},
+	{"ifOutUcastPkts",	"1.3.6.1.2.1.2.2.1.17"},
 	{"ifOutNUcastPkts",	"1.3.6.1.2.1.2.2.1.18"},
 	{"ifOutDiscards",	"1.3.6.1.2.1.2.2.1.19"},
 	{"ifOutErrors",		"1.3.6.1.2.1.2.2.1.20"},

zabbix-1.6-cpustats.patch:

--- NEW FILE zabbix-1.6-cpustats.patch ---
diff --git a/src/libs/zbxsysinfo/linux/cpu.c b/src/libs/zbxsysinfo/linux/cpu.c
index d77d1e6..ac021bb 100644
--- a/src/libs/zbxsysinfo/linux/cpu.c
+++ b/src/libs/zbxsysinfo/linux/cpu.c
@@ -154,6 +154,43 @@ int	SYSTEM_CPU_UTIL(const char *cmd, const char *param, unsigned flags, AGENT_RE
 		else if( 0 == strcmp(mode,"avg15"))	SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].system15)
 		else return SYSINFO_RET_FAIL;
 	}
+	else if( 0 == strcmp(type,"idle"))
+	{
+		if( 0 == strcmp(mode,"avg1"))		SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].idle1)
+		else if( 0 == strcmp(mode,"avg5"))	SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].idle5)
+		else if( 0 == strcmp(mode,"avg15"))	SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].idle15)
+		else return SYSINFO_RET_FAIL;
+
+	}
+//	else if( 0 == strcmp(type,"iowait"))
+	else if( 0 == strcmp(type,"wait"))
+	{
+		if( 0 == strcmp(mode,"avg1")) 		SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].iowait1)
+		else if( 0 == strcmp(mode,"avg5")) 	SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].iowait5)
+		else if( 0 == strcmp(mode,"avg15"))	SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].iowait15)
+		else return SYSINFO_RET_FAIL;
+	}
+	else if( 0 == strcmp(type,"irq"))
+	{
+		if( 0 == strcmp(mode,"avg1")) 		SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].irq1)
+		else if( 0 == strcmp(mode,"avg5")) 	SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].irq5)
+		else if( 0 == strcmp(mode,"avg15"))	SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].irq15)
+		else return SYSINFO_RET_FAIL;
+	}
+	else if( 0 == strcmp(type,"softirq"))
+	{
+		if( 0 == strcmp(mode,"avg1")) 		SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].softirq1)
+		else if( 0 == strcmp(mode,"avg5")) 	SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].softirq5)
+		else if( 0 == strcmp(mode,"avg15"))	SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].softirq15)
+		else return SYSINFO_RET_FAIL;
+	}
+	else if( 0 == strcmp(type,"steal"))
+	{
+		if( 0 == strcmp(mode,"avg1")) 		SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].steal1)
+		else if( 0 == strcmp(mode,"avg5")) 	SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].steal5)
+		else if( 0 == strcmp(mode,"avg15"))	SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].steal15)
+		else return SYSINFO_RET_FAIL;
+	}
 	else
 	{
 		return SYSINFO_RET_FAIL;
diff --git a/src/zabbix_agent/cpustat.c b/src/zabbix_agent/cpustat.c
index 61b9b95..b34d919 100644
--- a/src/zabbix_agent/cpustat.c
+++ b/src/zabbix_agent/cpustat.c
@@ -180,10 +180,14 @@ static int	get_cpustat(
 		int cpuid,
 		int *now,
 		zbx_uint64_t *cpu_user,
-		zbx_uint64_t *cpu_system,
 		zbx_uint64_t *cpu_nice,
+		zbx_uint64_t *cpu_system,
 		zbx_uint64_t *cpu_idle,
-		zbx_uint64_t *cpu_interrupt
+		zbx_uint64_t *cpu_interrupt,
+		zbx_uint64_t *cpu_iowait,
+		zbx_uint64_t *cpu_irq,
+		zbx_uint64_t *cpu_softirq,
+		zbx_uint64_t *cpu_steal
 	)
 {
     #if defined(HAVE_PROC_STAT)
@@ -218,7 +222,7 @@ static int	get_cpustat(
 		return 1;
 	}
 
-	*cpu_user = *cpu_system = *cpu_nice = *cpu_idle = -1;
+	*cpu_user = *cpu_nice = *cpu_system = *cpu_idle = *cpu_iowait = *cpu_irq = *cpu_softirq = *cpu_steal = 0;
 	*cpu_interrupt	= 0;
 
 	zbx_snprintf(cpu_name, sizeof(cpu_name), "cpu%c ", cpuid > 0 ? '0' + (cpuid - 1) : ' ');
@@ -227,7 +231,8 @@ static int	get_cpustat(
 	{
 		if(strstr(line, cpu_name) == NULL) continue;
 
-		sscanf(line, "%*s " ZBX_FS_UI64 " " ZBX_FS_UI64 " " ZBX_FS_UI64 " " ZBX_FS_UI64, cpu_user, cpu_nice, cpu_system, cpu_idle);
+		sscanf(line, "%*s " ZBX_FS_UI64 " " ZBX_FS_UI64 " " ZBX_FS_UI64 " " ZBX_FS_UI64 " " ZBX_FS_UI64 " " ZBX_FS_UI64 " " ZBX_FS_UI64 " " ZBX_FS_UI64,
+		    cpu_user, cpu_nice, cpu_system, cpu_idle, cpu_iowait, cpu_irq, cpu_softirq, cpu_steal);
 		break;
 	}
 	zbx_fclose(file);
@@ -290,10 +295,14 @@ static void	apply_cpustat(
 	int cpuid,
 	int now, 
 	zbx_uint64_t cpu_user, 
-	zbx_uint64_t cpu_system,
 	zbx_uint64_t cpu_nice,
+	zbx_uint64_t cpu_system,
 	zbx_uint64_t cpu_idle,
-	zbx_uint64_t cpu_interrupt
+	zbx_uint64_t cpu_interrupt,
+	zbx_uint64_t cpu_iowait,
+	zbx_uint64_t cpu_irq,
+	zbx_uint64_t cpu_softirq,
+	zbx_uint64_t cpu_steal
 	)
 {
 	register int	i	= 0;
@@ -304,8 +313,13 @@ static void	apply_cpustat(
 			nice = 0, nice1 = 0, nice5 = 0, nice15 = 0,
 			idle = 0, idle1 = 0, idle5 = 0, idle15 = 0,
 			interrupt = 0, interrupt1 = 0, interrupt5 = 0, interrupt15 = 0,
+		iowait	= 0, iowait1	= 0, iowait5	= 0, iowait15= 0,
+			irq	= 0, irq1	= 0, irq5	= 0, irq15	= 0,
+			softirq		= 0,	softirq1	= 0, softirq5	= 0, softirq15	= 0,
+			steal	= 0, steal1	= 0, steal5	= 0, steal15	= 0,
 			all = 0, all1 = 0, all5 = 0, all15 = 0;
 
+
 	ZBX_SINGLE_CPU_STAT_DATA
 			*curr_cpu = &pcpus->cpu[cpuid];
 
@@ -320,8 +334,12 @@ static void	apply_cpustat(
 		curr_cpu->h_nice[i] = nice = cpu_nice;
 		curr_cpu->h_idle[i] = idle = cpu_idle;
 		curr_cpu->h_interrupt[i] = interrupt = cpu_interrupt;
+		curr_cpu->h_iowait[i] = iowait = cpu_iowait;
+    curr_cpu->h_irq[i]	= irq = cpu_irq;
+    curr_cpu->h_softirq[i] =  softirq = cpu_softirq;
+    curr_cpu->h_steal[i] = steal	= cpu_steal;
 
-		all = cpu_user + cpu_system + cpu_nice + cpu_idle + cpu_interrupt;
+		all = cpu_user + cpu_system + cpu_nice + cpu_idle + cpu_interrupt + cpu_iowait + cpu_irq + cpu_softirq + cpu_steal;
 		break;
 	}
 
@@ -331,6 +349,11 @@ static void	apply_cpustat(
 	{
 		if (0 == curr_cpu->clock[i])
 			continue;
+			iowait	= curr_cpu->h_iowait[i];
+			irq	= curr_cpu->h_irq[i];
+			softirq	= curr_cpu->h_softirq[i];
+			steal	= curr_cpu->h_steal[i];
+			all	= user + nice + system +  idle + iowait + irq + softirq + steal;
 
 #define SAVE_CPU_CLOCK_FOR(t)											\
 		if ((curr_cpu->clock[i] >= (now - (t * 60))) && (time ## t > curr_cpu->clock[i]))		\
@@ -341,7 +364,11 @@ static void	apply_cpustat(
 			nice ## t	= curr_cpu->h_nice[i];							\
 			idle ## t	= curr_cpu->h_idle[i];							\
 			interrupt ## t	= curr_cpu->h_interrupt[i];						\
-			all ## t	= user ## t + system ## t + nice ## t + idle ## t + interrupt ## t;	\
+	iowait ## t = curr_cpu->h_iowait[i];	\
+	irq ## t = curr_cpu->h_irq[i];	\
+	softirq ## t	= curr_cpu->h_softirq[i];					\
+			steal ## t	= curr_cpu->h_steal[i];						\
+			all ## t	= user ## t + nice ## t + system ## t + idle ## t + iowait ## t + irq ## t + softirq ## t + steal ##t;	\
 		}
 
 		SAVE_CPU_CLOCK_FOR(1);
@@ -364,6 +391,7 @@ static void	apply_cpustat(
 	CALC_CPU_LOAD(user, 5);
 	CALC_CPU_LOAD(user, 15);
 
+
 	CALC_CPU_LOAD(system, 1);
 	CALC_CPU_LOAD(system, 5);
 	CALC_CPU_LOAD(system, 15);
@@ -379,7 +407,22 @@ static void	apply_cpustat(
 	CALC_CPU_LOAD(interrupt, 1);
 	CALC_CPU_LOAD(interrupt, 5);
 	CALC_CPU_LOAD(interrupt, 15);
-}
+
+	CALC_CPU_LOAD(iowait, 1);
+	CALC_CPU_LOAD(iowait, 5);
+	CALC_CPU_LOAD(iowait, 15);
+
+	CALC_CPU_LOAD(irq, 1);
+	CALC_CPU_LOAD(irq, 5);
+	CALC_CPU_LOAD(irq, 15);
+
+	CALC_CPU_LOAD(softirq, 1);
+	CALC_CPU_LOAD(softirq, 5);
+	CALC_CPU_LOAD(softirq, 15);
+
+	CALC_CPU_LOAD(steal, 1);
+	CALC_CPU_LOAD(steal, 5);
+	CALC_CPU_LOAD(steal, 15);}
 
 #endif /* not _WINDOWS */
 
@@ -499,14 +542,14 @@ void	collect_cpustat(ZBX_CPUS_STAT_DATA *pcpus)
 	register int i = 0;
 	int	now = 0;
 
-	zbx_uint64_t cpu_user, cpu_nice, cpu_system, cpu_idle, cpu_interrupt;
+	zbx_uint64_t cpu_user, cpu_nice, cpu_system, cpu_idle, cpu_iowait, cpu_irq, cpu_softirq, cpu_steal, cpu_interrupt;
 
 	for ( i = 0; i <= pcpus->count; i++ )
 	{
-		if(0 != get_cpustat(i, &now, &cpu_user, &cpu_system, &cpu_nice, &cpu_idle, &cpu_interrupt))
+		if(0 != get_cpustat(i, &now, &cpu_user, &cpu_nice, &cpu_system, &cpu_idle, &cpu_iowait, &cpu_irq, &cpu_softirq, &cpu_steal, &cpu_interrupt))
 			continue;
 
-		apply_cpustat(pcpus, i, now, cpu_user, cpu_system, cpu_nice, cpu_idle, cpu_interrupt);
+		apply_cpustat(pcpus, i, now, cpu_user, cpu_nice, cpu_system, cpu_idle, cpu_iowait, cpu_irq, cpu_softirq, cpu_steal, cpu_interrupt);
 	}
 
 #endif /* _WINDOWS */
diff --git a/src/zabbix_agent/cpustat.h b/src/zabbix_agent/cpustat.h
index 7cf2cb4..9521d02 100644
--- a/src/zabbix_agent/cpustat.h
+++ b/src/zabbix_agent/cpustat.h
@@ -67,27 +67,43 @@
 		/* private */
 		int	clock[MAX_CPU_HISTORY];
 		zbx_uint64_t	h_user[MAX_CPU_HISTORY];
-		zbx_uint64_t	h_system[MAX_CPU_HISTORY];
 		zbx_uint64_t	h_nice[MAX_CPU_HISTORY];
+		zbx_uint64_t	h_system[MAX_CPU_HISTORY];
 		zbx_uint64_t	h_idle[MAX_CPU_HISTORY];
+		zbx_uint64_t	h_iowait[MAX_CPU_HISTORY];
 		zbx_uint64_t	h_interrupt[MAX_CPU_HISTORY];
+		zbx_uint64_t	h_irq[MAX_CPU_HISTORY];
+		zbx_uint64_t	h_softirq[MAX_CPU_HISTORY];
+		zbx_uint64_t	h_steal[MAX_CPU_HISTORY];
 
 		/* public */
 		double	user1;
 		double	user5;
 		double	user15;
-		double	system1;
-		double	system5;
-		double	system15;
 		double	nice1;
 		double	nice5;
 		double	nice15;
+		double	system1;
+		double	system5;
+		double	system15;
 		double	idle1;
 		double	idle5;
 		double	idle15;
 		double	interrupt1;
 		double	interrupt5;
 		double	interrupt15;
+		double	iowait1;
+		double	iowait5;
+		double	iowait15;
+		double	irq1;
+		double	irq5;
+		double	irq15;
+		double	softirq1;
+		double	softirq5;
+		double	softirq15;
+		double	steal1;
+		double	steal5;
+		double	steal15;
 
 	} ZBX_SINGLE_CPU_STAT_DATA;
 


Index: zabbix.spec
===================================================================
RCS file: /cvs/pkgs/rpms/zabbix/devel/zabbix.spec,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- zabbix.spec	30 Sep 2008 17:36:49 -0000	1.26
+++ zabbix.spec	30 Sep 2008 17:38:47 -0000	1.27
@@ -1,6 +1,6 @@
 Name:           zabbix
 Version:        1.6
-Release:        0.2%{?dist}
+Release:        1%{?dist}
 Summary:        Open-source monitoring solution for your IT infrastructure
 
 Group:          Applications/Internet




More information about the fedora-extras-commits mailing list