/[smecontribs]/rpms/zabbix/contribs7/zabbix-1.6.2-cpustats.patch
ViewVC logotype

Annotation of /rpms/zabbix/contribs7/zabbix-1.6.2-cpustats.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (hide annotations) (download)
Mon Mar 2 23:31:30 2009 UTC (15 years, 8 months ago) by slords
Branch: MAIN
CVS Tags: zabbix-1_6_2-3_el4_sme, zabbix-1_6_3-0_el4_sme, zabbix-1_6_2-4_el4_sme
Initial import of zabbix

1 slords 1.1 diff --git a/src/libs/zbxsysinfo/linux/cpu.c b/src/libs/zbxsysinfo/linux/cpu.c
2     index 67dd157..cdf4952 100644
3     --- a/src/libs/zbxsysinfo/linux/cpu.c
4     +++ b/src/libs/zbxsysinfo/linux/cpu.c
5     @@ -125,6 +125,36 @@ int SYSTEM_CPU_UTIL(const char *cmd, const char *param, unsigned flags, AGENT_RE
6     else if (ZBX_AVG5 == mode) SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].system5)
7     else if (ZBX_AVG15 == mode) SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].system15)
8     }
9     + else if( 0 == strcmp(type,"interrupt"))
10     + {
11     + if (ZBX_AVG1 == mode) SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].interrupt1)
12     + else if (ZBX_AVG5 == mode) SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].interrupt5)
13     + else if (ZBX_AVG15 == mode) SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].interrupt15)
14     + }
15     + else if( 0 == strcmp(type,"wait"))
16     + {
17     + if(ZBX_AVG1 == mode) SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].iowait1)
18     + else if(ZBX_AVG5 == mode) SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].iowait5)
19     + else if(ZBX_AVG15 == mode) SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].iowait15)
20     + }
21     + else if( 0 == strcmp(type,"irq"))
22     + {
23     + if(ZBX_AVG1 == mode) SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].irq1)
24     + else if(ZBX_AVG5 == mode) SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].irq5)
25     + else if(ZBX_AVG15 == mode) SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].irq15)
26     + }
27     + else if( 0 == strcmp(type,"softirq"))
28     + {
29     + if(ZBX_AVG1 == mode) SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].softirq1)
30     + else if(ZBX_AVG5 == mode) SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].softirq5)
31     + else if(ZBX_AVG5 == mode) SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].softirq15)
32     + }
33     + else if( 0 == strcmp(type,"steal"))
34     + {
35     + if(ZBX_AVG1 == mode) SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].steal1)
36     + else if(ZBX_AVG1 == mode) SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].steal5)
37     + else if(ZBX_AVG1 == mode) SET_DBL_RESULT(result, collector->cpus.cpu[cpu_num].steal15)
38     + }
39     else
40     return SYSINFO_RET_FAIL;
41    
42     diff --git a/src/zabbix_agent/cpustat.c b/src/zabbix_agent/cpustat.c
43     index 2dd2103..cccf1d2 100644
44     --- a/src/zabbix_agent/cpustat.c
45     +++ b/src/zabbix_agent/cpustat.c
46     @@ -184,7 +184,10 @@ static int get_cpustat(
47     zbx_uint64_t *cpu_nice,
48     zbx_uint64_t *cpu_idle,
49     zbx_uint64_t *cpu_interrupt,
50     - zbx_uint64_t *cpu_iowait
51     + zbx_uint64_t *cpu_iowait,
52     + zbx_uint64_t *cpu_irq,
53     + zbx_uint64_t *cpu_softirq,
54     + zbx_uint64_t *cpu_steal
55     )
56     {
57     #if defined(HAVE_PROC_STAT)
58     @@ -235,6 +238,9 @@ static int get_cpustat(
59     *cpu_user = *cpu_system = *cpu_nice = *cpu_idle = -1;
60     *cpu_interrupt = 0;
61     *cpu_iowait = 0;
62     + *cpu_irq = 0;
63     + *cpu_softirq = 0;
64     + *cpu_steal = 0;
65    
66     zbx_snprintf(cpu_name, sizeof(cpu_name), "cpu%c ", cpuid > 0 ? '0' + (cpuid - 1) : ' ');
67    
68     @@ -242,7 +248,8 @@ static int get_cpustat(
69     {
70     if(strstr(line, cpu_name) == NULL) continue;
71    
72     - sscanf(line, "%*s " ZBX_FS_UI64 " " ZBX_FS_UI64 " " ZBX_FS_UI64 " " ZBX_FS_UI64, cpu_user, cpu_nice, cpu_system, cpu_idle);
73     + 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,
74     + cpu_user, cpu_nice, cpu_system, cpu_idle, cpu_iowait, cpu_irq, cpu_softirq, cpu_steal);
75     break;
76     }
77     zbx_fclose(file);
78     @@ -389,7 +396,10 @@ static void apply_cpustat(
79     zbx_uint64_t cpu_nice,
80     zbx_uint64_t cpu_idle,
81     zbx_uint64_t cpu_interrupt,
82     - zbx_uint64_t cpu_iowait
83     + zbx_uint64_t cpu_iowait,
84     + zbx_uint64_t cpu_irq,
85     + zbx_uint64_t cpu_softirq,
86     + zbx_uint64_t cpu_steal
87     )
88     {
89     register int i = 0;
90     @@ -401,6 +411,9 @@ static void apply_cpustat(
91     idle = 0, idle1 = 0, idle5 = 0, idle15 = 0,
92     interrupt = 0, interrupt1 = 0, interrupt5 = 0, interrupt15 = 0,
93     iowait = 0, iowait1 = 0, iowait5 = 0, iowait15 = 0,
94     + irq = 0, irq1 = 0, irq5 = 0, irq15 = 0,
95     + softirq = 0, softirq1 = 0, softirq5 = 0, softirq15 = 0,
96     + steal = 0, steal1 = 0, steal5 = 0, steal15 = 0,
97     all = 0, all1 = 0, all5 = 0, all15 = 0;
98    
99     ZBX_SINGLE_CPU_STAT_DATA
100     @@ -418,8 +431,11 @@ static void apply_cpustat(
101     curr_cpu->h_idle[i] = idle = cpu_idle;
102     curr_cpu->h_interrupt[i] = interrupt = cpu_interrupt;
103     curr_cpu->h_iowait[i] = iowait = cpu_iowait;
104     + curr_cpu->h_irq[i] = irq = cpu_irq;
105     + curr_cpu->h_softirq[i] = softirq = cpu_softirq;
106     + curr_cpu->h_steal[i] = steal = cpu_steal;
107    
108     - all = cpu_user + cpu_system + cpu_nice + cpu_idle + cpu_interrupt + cpu_iowait;
109     + all = cpu_user + cpu_system + cpu_nice + cpu_idle + cpu_interrupt + cpu_iowait + cpu_irq + cpu_softirq + cpu_steal;
110     break;
111     }
112    
113     @@ -440,8 +456,11 @@ static void apply_cpustat(
114     idle ## t = curr_cpu->h_idle[i]; \
115     interrupt ## t = curr_cpu->h_interrupt[i]; \
116     iowait ## t = curr_cpu->h_iowait[i]; \
117     + irq ## t = curr_cpu->h_irq[i]; \
118     + softirq ## t = curr_cpu->h_softirq[i]; \
119     + steal ## t = curr_cpu->h_steal[i]; \
120     all ## t = user ## t + system ## t + nice ## t + idle ## t + \
121     - interrupt ## t + iowait ## t; \
122     + interrupt ## t + iowait ## t + irq ## t + softirq ## t + steal ## t; \
123     }
124    
125     SAVE_CPU_CLOCK_FOR(1);
126     @@ -483,6 +502,18 @@ static void apply_cpustat(
127     CALC_CPU_LOAD(iowait, 1);
128     CALC_CPU_LOAD(iowait, 5);
129     CALC_CPU_LOAD(iowait, 15);
130     +
131     + CALC_CPU_LOAD(irq, 1);
132     + CALC_CPU_LOAD(irq, 5);
133     + CALC_CPU_LOAD(irq, 15);
134     +
135     + CALC_CPU_LOAD(softirq, 1);
136     + CALC_CPU_LOAD(softirq, 5);
137     + CALC_CPU_LOAD(softirq, 15);
138     +
139     + CALC_CPU_LOAD(steal, 1);
140     + CALC_CPU_LOAD(steal, 5);
141     + CALC_CPU_LOAD(steal, 15);
142     }
143    
144     #endif /* not _WINDOWS */
145     @@ -602,14 +633,14 @@ void collect_cpustat(ZBX_CPUS_STAT_DATA *pcpus)
146     register int i = 0;
147     int now = 0;
148    
149     - zbx_uint64_t cpu_user, cpu_nice, cpu_system, cpu_idle, cpu_interrupt, cpu_iowait;
150     + zbx_uint64_t cpu_user, cpu_nice, cpu_system, cpu_idle, cpu_interrupt, cpu_iowait, cpu_irq, cpu_softirq, cpu_steal;
151    
152     for ( i = 0; i <= pcpus->count; i++ )
153     {
154     - if(0 != get_cpustat(i, &now, &cpu_user, &cpu_system, &cpu_nice, &cpu_idle, &cpu_interrupt, &cpu_iowait))
155     + if(0 != get_cpustat(i, &now, &cpu_user, &cpu_system, &cpu_nice, &cpu_idle, &cpu_interrupt, &cpu_iowait, &cpu_irq, &cpu_softirq, &cpu_steal))
156     continue;
157    
158     - apply_cpustat(pcpus, i, now, cpu_user, cpu_system, cpu_nice, cpu_idle, cpu_interrupt, cpu_iowait);
159     + apply_cpustat(pcpus, i, now, cpu_user, cpu_system, cpu_nice, cpu_idle, cpu_interrupt, cpu_iowait, cpu_irq, cpu_softirq, cpu_steal);
160     }
161    
162     #endif /* _WINDOWS */
163     diff --git a/src/zabbix_agent/cpustat.h b/src/zabbix_agent/cpustat.h
164     index 9551707..412e0d3 100644
165     --- a/src/zabbix_agent/cpustat.h
166     +++ b/src/zabbix_agent/cpustat.h
167     @@ -72,6 +72,9 @@
168     zbx_uint64_t h_idle[MAX_CPU_HISTORY];
169     zbx_uint64_t h_interrupt[MAX_CPU_HISTORY];
170     zbx_uint64_t h_iowait[MAX_CPU_HISTORY];
171     + zbx_uint64_t h_irq[MAX_CPU_HISTORY];
172     + zbx_uint64_t h_softirq[MAX_CPU_HISTORY];
173     + zbx_uint64_t h_steal[MAX_CPU_HISTORY];
174    
175     /* public */
176     double user1;
177     @@ -92,6 +95,15 @@
178     double iowait1;
179     double iowait5;
180     double iowait15;
181     + double irq1;
182     + double irq5;
183     + double irq15;
184     + double softirq1;
185     + double softirq5;
186     + double softirq15;
187     + double steal1;
188     + double steal5;
189     + double steal15;
190    
191     } ZBX_SINGLE_CPU_STAT_DATA;
192    

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed