add cpu.wait metric
This commit is contained in:
parent
921a4ce41c
commit
46ba56bc17
|
@ -203,6 +203,7 @@ namespace Hyperic.Sigar {
|
|||
public readonly ulong Sys;
|
||||
private readonly ulong NA_Nice;
|
||||
public readonly ulong Idle;
|
||||
private readonly ulong NA_Wait;
|
||||
public readonly ulong Total;
|
||||
|
||||
[DllImport(Sigar.LIBSIGAR)]
|
||||
|
|
|
@ -194,6 +194,11 @@ my %classes = (
|
|||
desc => 'Total system cpu idle time',
|
||||
plat => '*'
|
||||
},
|
||||
{
|
||||
name => 'wait', type => 'Long',
|
||||
desc => 'Total system cpu io wait time',
|
||||
plat => 'ALHS'
|
||||
},
|
||||
{
|
||||
name => 'total', type => 'Long',
|
||||
desc => 'Total system cpu time',
|
||||
|
|
|
@ -21,6 +21,9 @@ public class TestCpu extends SigarTestCase {
|
|||
traceln("Idle=" + cpu.getIdle());
|
||||
assertTrue(cpu.getIdle() >= 0);
|
||||
|
||||
traceln("Wait=" + cpu.getWait());
|
||||
assertTrue(cpu.getWait() >= 0);
|
||||
|
||||
traceln("Total=" + cpu.getTotal());
|
||||
assertTrue(cpu.getTotal() >= 0);
|
||||
}
|
||||
|
|
|
@ -96,6 +96,7 @@ typedef struct {
|
|||
sys,
|
||||
nice,
|
||||
idle,
|
||||
wait,
|
||||
total;
|
||||
} sigar_cpu_t;
|
||||
|
||||
|
|
|
@ -579,7 +579,8 @@ int sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu)
|
|||
cpu->nice = -1; /* N/A */
|
||||
cpu->sys = cpu_data.sys;
|
||||
cpu->idle = cpu_data.idle;
|
||||
cpu->total = cpu->user + cpu->sys + cpu->idle + cpu_data.wait;
|
||||
cpu->wait = cpu_data.wait;
|
||||
cpu->total = cpu->user + cpu->sys + cpu->idle + cpu->wait;
|
||||
return SIGAR_OK;
|
||||
}
|
||||
}
|
||||
|
@ -702,7 +703,8 @@ static int sigar_cpu_list_get_pstat(sigar_t *sigar, sigar_cpu_list_t *cpulist)
|
|||
cpu->nice = -1; /* N/A */
|
||||
cpu->sys = data.sys;
|
||||
cpu->idle = data.idle;
|
||||
cpu->total = cpu->user + cpu->sys + cpu->idle + data.wait;
|
||||
cpu->wait = data.wait;
|
||||
cpu->total = cpu->user + cpu->sys + cpu->idle + cpu->wait;
|
||||
}
|
||||
else {
|
||||
sigar_log_printf(sigar, SIGAR_LOG_ERROR,
|
||||
|
|
|
@ -220,7 +220,7 @@ int sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu)
|
|||
cpu->sys = cpuload.cpu_ticks[CPU_STATE_SYSTEM];
|
||||
cpu->idle = cpuload.cpu_ticks[CPU_STATE_IDLE];
|
||||
cpu->nice = cpuload.cpu_ticks[CPU_STATE_NICE];
|
||||
|
||||
cpu->wait = 0; /*N/A*/
|
||||
cpu->total = cpu->user + cpu->nice + cpu->sys + cpu->idle;
|
||||
|
||||
#else
|
||||
|
@ -229,7 +229,7 @@ int sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu)
|
|||
cpu->nice = 0;
|
||||
cpu->sys = 0;
|
||||
cpu->idle = 0;
|
||||
|
||||
cpu->wait = 0; /*N/A*/
|
||||
cpu->total = cpu->user + cpu->nice + cpu->sys + cpu->idle;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -98,6 +98,7 @@ int sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu)
|
|||
cpu->sys = stats.psd_cpu_time[CP_SYS] + stats.psd_cpu_time[CP_SSYS];
|
||||
cpu->nice = stats.psd_cpu_time[CP_NICE];
|
||||
cpu->idle = stats.psd_cpu_time[CP_IDLE];
|
||||
cpu->wait = stats.psd_cpu_time[CP_WAIT];
|
||||
|
||||
cpu->total = 0;
|
||||
|
||||
|
@ -136,6 +137,7 @@ int sigar_cpu_list_get(sigar_t *sigar, sigar_cpu_list_t *cpulist)
|
|||
cpu->sys = proc.psp_cpu_time[CP_SYS] + proc.psp_cpu_time[CP_SSYS];
|
||||
cpu->nice = proc.psp_cpu_time[CP_NICE];
|
||||
cpu->idle = proc.psp_cpu_time[CP_IDLE];
|
||||
cpu->wait = proc.psp_cpu_time[CP_WAIT];
|
||||
|
||||
cpu->total = 0;
|
||||
|
||||
|
|
|
@ -292,8 +292,8 @@ static void get_cpu_metrics(sigar_cpu_t *cpu, char *line)
|
|||
cpu->nice += sigar_strtoul(ptr);
|
||||
cpu->sys += sigar_strtoul(ptr);
|
||||
cpu->idle += sigar_strtoul(ptr);
|
||||
|
||||
cpu->total += cpu->user + cpu->nice + cpu->sys + cpu->idle;
|
||||
cpu->wait = 0; /*XXX*/
|
||||
cpu->total += cpu->user + cpu->nice + cpu->sys + cpu->idle + cpu->wait;
|
||||
}
|
||||
|
||||
int sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu)
|
||||
|
|
|
@ -85,8 +85,8 @@ int sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu)
|
|||
cpu->nice = sysinfo.si_nice;
|
||||
cpu->sys = sysinfo.si_sys;
|
||||
cpu->idle = sysinfo.si_idle;
|
||||
|
||||
cpu->total = cpu->user + cpu->nice + cpu->sys + cpu->idle;
|
||||
cpu->wait = 0; /*N/A?*/
|
||||
cpu->total = cpu->user + cpu->nice + cpu->sys + cpu->idle + cpu->wait;
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
|
|
@ -291,6 +291,7 @@ int sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu)
|
|||
cpu->sys += xcpu->sys;
|
||||
cpu->idle += xcpu->idle;
|
||||
cpu->nice += xcpu->nice;
|
||||
cpu->wait += xcpu->wait;
|
||||
cpu->total += xcpu->total;
|
||||
}
|
||||
|
||||
|
@ -358,6 +359,7 @@ int sigar_cpu_list_get(sigar_t *sigar, sigar_cpu_list_t *cpulist)
|
|||
cpu->user = cpuinfo[CPU_USER];
|
||||
cpu->sys = cpuinfo[CPU_KERNEL];
|
||||
cpu->idle = cpuinfo[CPU_IDLE];
|
||||
cpu->wait = cpuinfo[CPU_WAIT];
|
||||
cpu->nice = 0; /* no cpu->nice */
|
||||
cpu->total = 0;
|
||||
|
||||
|
|
|
@ -48,6 +48,7 @@ int sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu)
|
|||
cpu->nice = -1;
|
||||
cpu->sys = -1;
|
||||
cpu->idle = -1;
|
||||
cpu->wait = -1;
|
||||
|
||||
cpu->total = cpu->user + cpu->nice + cpu->sys + cpu->idle;
|
||||
|
||||
|
|
|
@ -413,8 +413,8 @@ SIGAR_DECLARE(int) sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu)
|
|||
cpu->user = PERF_VAL(PERF_IX_CPU_USER);
|
||||
status = get_idle_cpu(sigar, cpu, -1, counter_block, perf_offsets);
|
||||
cpu->nice = 0; /* no nice here */
|
||||
|
||||
cpu->total = cpu->sys + cpu->user + cpu->idle;
|
||||
cpu->wait = 0; /*N/A?*/
|
||||
cpu->total = cpu->sys + cpu->user + cpu->idle + cpu->wait;
|
||||
|
||||
if (status != SIGAR_OK) {
|
||||
sigar_log_printf(sigar, SIGAR_LOG_WARN,
|
||||
|
|
Loading…
Reference in New Issue