Icon

Comments have been closed on this page. Please use AppMon & UEM Plugins forum for questions about this plugin.

Overview

The Top Process Monitor plugin enables monitoring processes consuming the most CPU Time and/or Resident/WorkingSet memory and stores the process name as a dynamic measure.

Windows measures are collected through Powershell, so these measures must be executed from a Windows Collector.

Linux measures are collected through SSH, and can be collected from both Windows or Linux collectors.

Plugin Details

Plug-In Files

dynaTrace 5.0+:

Top Monitor Plugin 1.0.2
Top Plugin Monitor Dashboard - Windows
Top Plugin Monitor Dashboard - Linux

Author

Paul Kuit

dynaTrace Versions

4.2, 5.x

License

dynaTrace BSD

Support

Not Supported

Known Problems

 

Release History

2013-21-05 1.0.0 Initial Release
2013-22-05 1.0.1 Number Format fix

2013-12-09 1.0.2 Gigabyte fix

Provided Measures

Both Windows and Unix:

  • CPUTime (s)
  • Resident/Workingset memory (kB)
  • Virtual Memory (kB)

Linux only:

  • CPU (%)
  • Memory (%)
  • Shared Memory (kB)

Windows only:

  • Handles (occ)
  • Non Pageable Memory - NPM (kB)
  • Pageable Memory - PM (kB)

DO NOT SUBSCRTIBE LINUX SPECIFIC MEASURES TO A MONITOR CONFIGURED FOR WINDOWS HOSTS OR WINDOWS SPECIFIC MEASURES TO A MONITOR FOR LINUX HOST. THE PLUGIN WILL VERIFY THIS AND FAIL TO SETUP.

Configuration Top Monitor

The monitor requires the following configuration settings:

  • ssh-username: (Linux only) The username used to logon through SSH
  • ssh-password: (Linux only) The password used to logon through SSH
  • operatingSystem: Select (Windows/Linux) the operating system of the monitored hosts within this monitor. Create different monitors for Unix and Windows destination hosts.
  • topMemory: The amount of processes to collect consuming most Resident (or Working set) memory. Should be less then the total amount of processes running on the host.
  • topCPU: The amount of processes to collect consuming top CPU Time.

Values topCPU=5, topMemory=5 could bring up 10 dynamic measures for each host since most consuming memory processes are not necessarily most CPU consuming. If only interested in top memory consuming, define topCPU=0 and vice versa.

Installation

Import the Plugin into the dynaTrace Server via the dynaTrace Server Settings menu -> Plugins -> Install Plugin. For details how to do this please refer to the dynaTrace documentation.

To use the provided dashboards please open the Dashboard and set the Data Source accordingly.

Access Requirements

Windows

Windows measure collections are only available for Collectors running on Windows, since it uses the following command:

Make sure powershell´s remote execution is enabled on the remote machine by executing:

Troubleshooting

Powershell permissions are managed by the underlying Windows OS. Please execute the following command manually in a dos prompt from the Collector machine, logged on with the same user as the collector process to verify if powershell is enabled correctly:

powershell invoke-command -computer localhost "{get-process | fl ProcessName, ID, Handles, NPM, PM, WS, VM, CPU}"
* substitute localhost with your destination host
In case of powershell remote invoke-command difficulties please consult Microsoft Technet:

Linux

Linux measures are queried through SSH by executing command:

Make sure SSH is installed on the Linux destination machine and the ssh-username have access rights.

Usage Notes

The name of the dynamic measure contains only the name of the process. When creating a chart for a specific measure, select measure splitting 'processname' and filter the chart dashlet for the specific host or it will show processes from all monitored hosts within the monitor instance.

  1. Anonymous (login to see details)

    Nice one!! Thanks Paul!

  2. Anonymous (login to see details)

    Hi Paul,

    Great job!
    I get the following error when executing the monitor:

    Problem collecting processInfo: java.lang.RuntimeException: java.lang.NumberFormatException: For input string: "8,2056526"

    Can this have something to do with location settings?
    Maye you are expecting a . instead of a ,

    Kind regards,

    Chris

    1. Anonymous (login to see details)

      Hi Chris,

      Yes, looks like a number format issue with different locale setting.

      Are you collecting Linux or Windows measures? Could you send me a stacktrace to find out which measure is causing this?

      Regards,

      Paul

      1. Anonymous (login to see details)

        Never mind. must be the Windows measure. In 1 minute I´m uploading a correction.

        1. Anonymous (login to see details)

          Hi Paul,

          Thes are windows measures. See below the output of the powershell invoke-command:

          ProcessName : ZeroConfigService
          Id : 3528
          Handles : 263
          NPM : 21448
          PM : 11468800
          WS : 11100160
          VM : 109670400
          CPU : 3,3228213

          Here you can see the , as well. A windows with English as a language will report with a . I think.

          1. Anonymous (login to see details)

            Ok, version 1.0.1 corrected the NumberFormatException. Thanks for your feedback!

            1. Anonymous (login to see details)

              Hi Paul,

              It works now. Great plugin!
              For others who want to use the dashboard. I had to remove and readd the measures in the dashlets.

              Thanks,

              Chris

  3. Anonymous (login to see details)

    Does it work for ver 4.2

    1. Anonymous (login to see details)

      Yes, works also on dT 4.2.

  4. Anonymous (login to see details)

    We've been trying to get this plug-in to work, but it doesn't seem to understand the 'ps' output on our boxes. Specifically, here's the output from the 'ps' command:

    bash-3.2$ top -n 1 -b top - 13:54:46 up 264 days, 12:06,  5 users,  load average: 3.13, 3.48, 3.58 Tasks: 344 total,   1 running, 341 sleeping,   0 stopped,   2 zombie Cpu(s): 15.9%us,  0.4%sy,  0.0%ni, 83.5%id,  0.0%wa,  0.0%hi,  0.1%si,  0.0%st Mem:  49191824k total, 49053808k used,   138016k free,   516452k buffers Swap: 14319608k total,      316k used, 14319292k free, 19594552k cached

      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                           30303 dyntadmn  21   0 13.0g  10g  20m S 285.7 22.5 591:15.56 java                                 1 root      15   0 10368  632  536 S  0.0  0.0   0:41.76 init                                  2 root      RT  -5     0    0    0 S  0.0  0.0   0:39.17 migration/0                           3 root      34  19     0    0    0 S  0.0  0.0  22:46.34 ksoftirqd/0                           4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.16 watchdog/0                            5 root      RT  -5     0    0    0 S  0.0  0.0   0:26.44 migration/1                           6 root      34  19     0    0    0 S  0.0  0.0   0:03.37 ksoftirqd/1                           7 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/1                            8 root      RT  -5     0    0    0 S  0.0  0.0   0:09.55 migration/2  

     

     Essentially, the 13.0g value coming in doesn't parse. We don't seem to have a single box that the top process plug-in can actually pull stats from. The error is in java.lang.NumberFormatException.

     

     

     

     

    1. Anonymous (login to see details)

      Hi Jim,

      Was expecting only KB and MB results. Attached the corrected version 1.0.2.

      Thank you!

  5. Anonymous (login to see details)

    hi, the link Top Monitor Plugin 1.0.2  doesn't work (sad)

    1. Anonymous (login to see details)

      Hi Pierre. We've seen this in the past that sometimes these links dont work for certain browsers. Can you try the following

      a) try this link: https://community.compuwareapm.com/community/download/attachments/121340701/br.com.compuware.topplugin_1.0.2.jar

      b) click on Tools->Attachments and get it from there

      Andi

  6. Anonymous (login to see details)

    Hi Andreas,

    your solution works.

    In fact when I click on Top Monitor Plugin 1.0., I've got a not permitted operation message.

    1. Anonymous (login to see details)

      Thanks for letting us know. I looked up your PurePaths in our dynaTrace Monitoring Instance where we monitor the community. All requests came through fine - but - we have heard from others that when downloading attachements including the version specific GET parameters that confluence puts on the automatically generated download links that this could lead to problems. We havent figured out why that it.

      But good to know that you at least got the file. Andi

  7. Anonymous (login to see details)

    Hi guys,

    Does this plugin work for DT6.1?

  8. Anonymous (login to see details)

    Does this work with v6.2?  Working with a customer to get this working on Linux and having issues.  Command works via SSH

    1. Anonymous (login to see details)

      Log file has the data, but monitor says it failed.  I will open a ticket.  

       

      1. Anonymous (login to see details)

        Hi Brian. This is a community plugin and therefore our tech support team might not be able to help here as this is not dynatrace code.

        If you post the log data we might be able to identfiy the issue together as a community.

        In general plugins that worked in previous versions should still work as the interfaces havent changed

  9. Anonymous (login to see details)

    Top Plugin[1].supportarchive.zip

     - if you look at the plugin log or collector log you can see the metrics, but on the monitors tab the job status says it failed and there is no data.  If you need a session file you can get that on the case I opened (which I have since closed).  https://support.compuwareapm.com/supportportal/browse/EAP-90

    1. Anonymous (login to see details)

      Hi Brian, 

      Did you ever find a solution to this? Having the same issue..

       

      Thanks

      1. Anonymous (login to see details)

        Chirag,

         

        No, but this issue is over a year old and several releases of Dynatrace ago so it may be ok now?  

         

        Brien

      2. Anonymous (login to see details)

        NVM - figured it out. We are collecting from Linux and had to manually remove the Windows measures.

  10. Anonymous (login to see details)

    watching

     

  11. Anonymous (login to see details)

    Installed and setup a monitor.   It says that I am subscribed to Linux measures on a Windows host.   I have selected windows in the plugin and I do not have a userid or password in the monitor setup.

     

    I am trying to get measures from a windows system, everything involved at this point is windows.  No Linux.

    Ideas?

     BTW... DT 6.1

  12. Anonymous (login to see details)

    I figured it out...had to DESELECT the linux measures in the monitor measures tab.

    Still getting an error but I will work on that tomorrow.   Thanks anyway!

     

  13. Anonymous (login to see details)

    I have this working but I am getting alot more than the top 5 I have requested.   Any ideas?   Dt 6.1 on Win7 client.

     

    1. Anonymous (login to see details)

      Hi Sam,

      I am getting similar results as well. It seems to get all of the procesess consuming resources.

      -Eric

  14. Anonymous (login to see details)

    I have it monitoring two servers.  Both windows servers.  I have over 400 processes being collected.

  15. Anonymous (login to see details)

    This is how the get-process command is returning the list of processses, I would have expected a table I guess.  This is just a few of the results to save time and typing!

     

    PS C:\Users\xxxxxxx> powershell invoke-command -computer server1.com "{get-process | fl ProcessName, ID, Han dles, NPM, PM, WS, VM, CPU}"

    ProcessName : ALM

    Id              : 1748

    Handles    : 1519

    NPM         : 67224

    PM           : 506982400

    WS          : 2020835328

    VM          : 860876800

    CPU         : 8423.2115946

    ProcessName : ALMTrayIcon

    Id          : 4832

    Handles     : 208

    NPM         : 18144

    PM          : 278798336

    WS          : 48140288

    VM          : -1781235712

    CPU         : 1.9032122

    ProcessName : BESClient

    Id          : 3672

    Handles     : 271

    NPM         : 25960 

    PM          : 24068096

    WS          : 13447168

    VM          : 108511232

    CPU         : 19767.6199147

    ProcessName : BESClientUI

    Id          : 4680

    Handles     : 189

    NPM         : 15608

    PM          : 5029888

    WS          : 1089536

    VM          : 111390720

    CPU         : 1.0296066

     and so on...

  16. Anonymous (login to see details)

    Hello,

    When i run the monitor on Windows Server 2008 VM hosts, for the measure: CPU Time, get only 0s.

    Is there a way to fix this? I need to know which process on the host is consuming 100% CPU.

    Thanks,

    Eric

  17. Anonymous (login to see details)

    Has anyone gotten the following before collecting from linux.  I have one system in production that works and one that gets the following:

    Problem collecting processInfo: java.lang.IndexOutOfBoundsException: toIndex = 5

  18. Anonymous (login to see details)

    Hi ,

    How we can get Windows CPU percentage for each process .

     

    Regards

    AbdelMohsen

    1. Anonymous (login to see details)

      Hi. This plugin also works for windows processes. It wont capture EVERY process but the Top X where X is configurable. 

      1. Anonymous (login to see details)

        Hi Andi,

        I am asking to get CPU usage percentage for the processes was captured by this plugin, it's possible ?

        AbdelMohsen

        1. Anonymous (login to see details)

          You get the CPU Utilization for your Top Processes. Just check the screenshot in the very top that shows a sample dashboard.

          Another option for you: f you want to monitor a specific process you can also just use the built-in Windows Performance Monitor where you can specify which Windows Perf Counters you want to monitor. So - anything that you can retreive via PerfMon can also be brought into Dynatrace. Check out this link: Windows Performance Monitor

          1. Anonymous (login to see details)

            CPU% only for Linux not windows .

            1. Anonymous (login to see details)

              Well. You can put all the CPU(s) you get from this monitor in a Stacked Percentage Bar Chart. that gives you the relative % of each CPU value compared to the total. I think thats close to what you want

  19. Anonymous (login to see details)

    I'm having a similar problem to Brien Lay but found that if I only subscribe to two measures ie. CPU and Memory, dynatrace (6.0) marks the execution sucessful and displays the retrieved values in the UI and makes them available for the standard charting tools. I haven't tried other combinations of measures, but presumably one or more of the other measures somehow breaks it. From the log file, it also appears that if all the measures are subscribed it shows "(measure name) available for Windows and Linux" whereas with only the two subscribed measures it shows "(measure name) available for linux". So perhaps its ignoring the "linux" OS setting somehow and then getting confused on parsing the data ?

  20. Anonymous (login to see details)

    Is this plugin compatible with 6.2 running commands remotely on Windows 2012 Server?

    I am not able to get it to work.

    Thanks,

    Eric

  21. Anonymous (login to see details)

    Hi Eric,

    can you describe your problem a bit more in detail?

    Are you able to install the plugin? (it should work, I just installed it on Dynatrace 6.3)

    Ingo

     

     

     

     

  22. Anonymous (login to see details)

    Hello there,

    I've followed all the steps but on the monitors tab the job status says it failed. Looking at the collector's log file doesn't seem to help after all. Any idea why?

    Also at the powershell, instead of using -computer <IP_Address>, i used -computername <FQDN>.


    Thanks,

    Fred

     

    1. Anonymous (login to see details)

      To add to this query, the following error message was displayed when the powershell command is invoked directly into the command prompt. Running the same command (with localhost) on the target server brings out the expected results. 

       

      [brhquatwebbds02.bkrm.com.my] Connecting to remote server brhquatwebbds02 failed with the following error   message : WinRM cannot process the request. The following error with errorcode 0x8009030e occurred while using          Kerberos authentication: A specified logon session does not exist. It may already have been terminated.                  Possible causes are:                                                                                                     -The user name or password specified are invalid.                                                                       -Kerberos is used when no authentication method and no user name are specified.                                         -Kerberos accepts domain user names, but not local user names.                                                          -The Service Principal Name (SPN) for the remote computer name and port does not exist.                                 -The client and remote computers are in different domains and there is no trust between the two domains.               After checking for the above issues, try the following:                                                                  -Check the Event Viewer for events related to authentication.                                                           -Change the authentication method; add the destination computer to the WinRM TrustedHosts configuration setting or    use HTTPS transport.                                                                                                     Note that computers in the TrustedHosts list might not be authenticated.                                                  -For more information about WinRM configuration, run the following command: winrm help config. For more              information, see the about_Remote_Troubleshooting Help topic.                                                               + CategoryInfo          : OpenError: (brhquatwebbds02:String) [], PSRemotingTransportException              + FullyQualifiedErrorId : 1312,PSSessionStateBroken              

       

                                                        

  23. Anonymous (login to see details)

    Hello,

    is it possible, or is there a way to add/attach UID to the topprocesses on Windows?

    This should make it easier, in case of high resource consumption, to pinpoint/isolate problems to processes started by a certain user.

    Regards,

    Jody

  24. Anonymous (login to see details)

    Is this plugin Windows and Linux only? Assuming the use of Unix under "Provided Measures" is a typo. Does anyone have a plugin like this for AIX?

  25. Anonymous (login to see details)

    Hello,

    I'm on Windows.

    When I run the monitor, I get the following error:

    Detailed error message:
    Problem collecting processInfo: java.lang.RuntimeException:

    out-lineoutput : Data member writeErrorStream cannot be null.
    + CategoryInfo : InvalidData: (:) [out-lineoutput], ArgumentExcep
    tion
    + FullyQualifiedErrorId : FormatObjectDeserializerNullDataMember,Microsoft
    .PowerShell.Commands.OutLineOutputCommand


    And, if I run the command in a CMD window: 

    powershell invoke-command -computer myComputerName "{get-process | fl ProcessName, ID, Handles, NPM, PM, WS, VM, CPU}"

    I get the same error as above, but in the CMD window.

    If I chop out the pipe part of the command, like this:

    powershell invoke-command -computer myComputerName "{get-process}"

    And run it in the CMD window, I get a listing in a nice format, except that some of the WorkingSet numbers show up as negative.  So this says that at least powershell is responding at the other end.

    A little more internet research and I'm led to believe that the negative numbers are due to the target system being a 64 bit OS and the get-process cmdlet handling numbers as 32 bit values (thank you Microsoft).  And the solution is to modify the command to:

    powershell invoke-command -computer myComputerName "{get-process | ft name, workingset64 -auto}"

    Putting this in the CMD window, I'm back to the original error.  However, if I run this command locally, it runs fine.  

    It looks like one can not use a pipe inside a remote powershell command, or at least not this one.  It looks like this is why the plugin is not working for me.


    Does anyone have any insight into this?

    Thanks much,

    Bill

    1. Anonymous (login to see details)

      Hi Bill,

      I had the same issue. In my case the target machine was running powershell v5 and the Collector was running powershellv2. We upgraded the Collector powsershell version to v4. That solved the issue.

       

      Chris

  26. Anonymous (login to see details)

    Am Getting an error: 'Please adapt chart source settings'

    This is for Windows metrics.

  27. Anonymous (login to see details)

    Hi,

    Does this work for dynatrace 6.2.x version?

    1. Anonymous (login to see details)

      Hi Ramananjali,

      Yes, I have it working in a 6.2.9 environment.

       

  28. Anonymous (login to see details)

    Hi,

    Does this work for dynatrace 7.0 version?

    1. Anonymous (login to see details)

      Update: Yes it works with dynatrace 7.0