Getting Data In

Is there a problem with splunk getting data from the Perfmon Process counter?

gregbo
Communicator

Someone is telling me that Splunk doesn't grab Perfmon data properly...they are getting %Processor Time from both the Process and Processor counters. They say that if they grab the data from Process for each process and add them up, they don't get the same value as the value from the Processor counter (even taking the number of CPUs/Cores/Hyperthreading into account). They say they asked Splunk for updates and got some updates and they still don't work.

1 Solution

DavidHourani
Super Champion

Hi @gregbo,

It's true, perfmon has a lot of limitations when it comes to monitoring processes. Did some research and some of the limitations are :

  • Perfmon doesn't collect null values for CPU usage.
  • For multi-core Perfmon max CPU is 100% if the option useWinApiProcStats is not set. This option is best practice is case of multi-core systems as it uses theGetProcessTime function to build multi core CPU and Processor KPIs.
  • Window perf monitor only reads cooked data, so if you want more precise results you can follow the steps described here on this blog :https://robertlabrie.wordpress.com/2016/01/06/windows-cpu-monitoring-with-splunk/

Any limitations you are mentioning in your questions would be the same limitations for GetProcessTime() if you've activated useWinApiProcStats (which you should have since you're on a multi-core host 😞
https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-getproce...

Let me know if that helps.

Cheers,
David

View solution in original post

DavidHourani
Super Champion

Hi @gregbo,

It's true, perfmon has a lot of limitations when it comes to monitoring processes. Did some research and some of the limitations are :

  • Perfmon doesn't collect null values for CPU usage.
  • For multi-core Perfmon max CPU is 100% if the option useWinApiProcStats is not set. This option is best practice is case of multi-core systems as it uses theGetProcessTime function to build multi core CPU and Processor KPIs.
  • Window perf monitor only reads cooked data, so if you want more precise results you can follow the steps described here on this blog :https://robertlabrie.wordpress.com/2016/01/06/windows-cpu-monitoring-with-splunk/

Any limitations you are mentioning in your questions would be the same limitations for GetProcessTime() if you've activated useWinApiProcStats (which you should have since you're on a multi-core host 😞
https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-getproce...

Let me know if that helps.

Cheers,
David

Get Updates on the Splunk Community!

Join Us for Splunk University and Get Your Bootcamp Game On!

If you know, you know! Splunk University is the vibe this summer so register today for bootcamps galore ...

.conf24 | Learning Tracks for Security, Observability, Platform, and Developers!

.conf24 is taking place at The Venetian in Las Vegas from June 11 - 14. Continue reading to learn about the ...

Announcing Scheduled Export GA for Dashboard Studio

We're excited to announce the general availability of Scheduled Export for Dashboard Studio. Starting in ...