Hi all,
In our Linux, Java environment, we use CPU load to monitor how stressful an app server is. Is there a way to set up such monitoring page in dynaTrace?
Thanks!
-Ronald
Answer by Paul K. ·
Hello all,
I wrote a plugin that queries for processes consuming the most CPU Time and/or Resident/WorkingSet memory and stores them as dynamic measures.
Windows measures are collected through Powershell, executing the following command:
powershell invoke-command -computer "{get-process | fl ProcessName, ID, Handles, NPM, PM, WS, VM, CPU}"
Windows measure collections are only available for Collectors running on Windows, since it uses powershell. Make sure powershell´s remote execution is enabled on the remote machine by executing:
powershell enable-psremoting -force
*Nix measures are queried through SSH by executing command:
"top -n 1 -b"
The amount of collected processes can be configured through Plugin properties topMemory + topCPU. Values 5, 5 could bring up 10 dynamic measures since most consuming memory processes are not necessarily most cpu consuming. If only interested in top memory consuming, define topCPU=0.
The name of the dynamic measure contains only the name of the process. When creating a chart for a measure, select measure splitting 'processname' and filter the chart dashlet for the specific host or it will show processes from all monitored hosts.
Feel free to send any comments/questions.
Regards,
Paul
Answer by Viveks J. ·
HI,
I have issue on production where CPU reached more than 80% and slow down my system, I was able to see same information from host agent and confirmed that it was not my JMV which caused CPU up, it was some other process on server which caused this, is there any way I can find out which process on server captured the high CPU?
There is no automatic way in the moment to monitor all other processes on a machine. What our Host Monitoring feature provides is the overall CPU Usage of the Host and the CPU Usage of the invidvidual processes that have an Agent injected. If these numbers dont add up you know that some other process on that host consumes CPU
You can use our Windows and Unix Monitors to monitor CPU Usage of specific processes. But - you need to know which processes to monitor.
Another approach is to connect to these machines remotely and see which processes are running and consuming CPU. Depending on the OS you can use the OS specific CPU Monitoring Tools to figure this out
Andi
Answer by Andreas G. ·
Hi Ronald
Starting with dynaTrace 4.2 you automatically get Host Healt Information for every machine where you have a dynaTrace Agent, e.g: Java Agent installed. Host Health includes CPU Load which you can see in the new Host Health Dashboards or that you can put on a custom chart. The measures can be found under "System Monitoring -> Host Performance".
If you are not yet on dynaTrace 4.2 you will get CPU Load of the Java Process in case you have a dynaTrace Agent in that application. You can create a chart and add the measure such as "Current CPU Load"
If you need to monitor CPU of the host machine you can setup a Monitor that queries CPU data from one or more machines on a scheduled interval.
More information on monitoring can be found here:
Monitoring your System
JANUARY 15, 3:00 PM GMT / 10:00 AM ET