Hi:
I found the data collected by system.cpu.usage parameter of HPUX subagents inconsistent with the other performance tools like glance,top,vmstat and so on.
I tried to trace the CpuUsageCollector function in src/agent/subagent/HPUX/system.cpp and found the reason:
The HPUX subagent counts the cpu wait statment as cpu usage:
m_cpuUsage[m_currentSlot++] = 100 - ((float)((psd.psd_cpu_time[CP_IDLE] - m_idle) * 100) / delta);
but other performace tools counts the cpu wait statment as cpu idle.
I modified the souce code like this:
m_cpuUsage[m_currentSlot++] = ((float)(((psd.psd_cpu_time[CP_USER] - m_user) + (psd.psd_cpu_time[CP_SYS] - m_sys) ) * 100) / delta) (mybe adds the CPU nice statment is better);
As a result this metric was consistent with other performance tools.
I wonder which way calculates the CPU usage is more helpful.