Process - Monitoring Extension

Use Case

The AppDynamics Process extension observes active processes on a Linux/Windows/Solaris/AIX/HP-UX machine and displays them in the AppDynamics Metric Browser.

This extension requires Java Machine Agent.

The Process extension retrieves the following metrics of each process/process group: 

    • CPU utilization in %
    • Memory utilization in MB
    • Memory utilization in %

There are two ways of reporting these metrics to controller by changing the flag displayByPid in config.yml.

  • If false, the aggregate metrics (sum) are reported. For eg. If there are multiple processes with the same name (i.e. 3 "java.exe" processes), the aggregate metrics with process group name are reported with an additional metric (Number of running instances). 
  • If true, each individual process metrics are reported under PID.

Note : By default, a Machine agent or a AppServer agent can send a fixed number of metrics to the controller. To change this limit, please follow the instructions mentioned here. For eg.

    java -Dappdynamics.agent.maxMetrics=2500 -jar machineagent.jar


Note: If you are running Windows, make sure that the file 'csv.xsl' is in 'C:\Windows\System32' for 32bit or 'C:\Windows\SysWOW64' or 'C:\Windows\SysWOW64\webem\en-US\csv.xsl' for 64bit OS versions (standard under Windows Server 2003). If this file is not found, the process monitor will output an error to the log file (logs/machine-agent.log) .



1. Download the attached

2. Unzip and deploy the downloaded file into <MACHINE_AGENT_HOME>/monitors

3. Configure the extension by referring to the below section.

4. Restart the Machine Agent.


In the AppDynamics Metric Browser, look for: Application Infrastructure Performance | <Tier> | Custom Metrics | <Windows/Linux> Processes or your specified path under Application Infrastructure Performance | <Tier> |.



Note : Please make sure to not use tab (\t) while editing yaml files. You may want to validate the yaml file using a yaml validator

  1. Configure the extension by editing the config.yml file in <MACHINE_AGENT_HOME>/monitors/ProcessMonitor/.

    For eg.

        # Option to view process metrics in MetricBrowser per pid or processgroup wise.
        # If false, all the processes with same name are grouped and collective metrics are reported to AppDynamics Metric Browser.
        # If true, each process with PID can be viewed but since PID changes with process restart, this might not be the best option.
        displayByPid: false
        # comma-separated names of processes you want to include and exclude respectively in the reported metrics.
        #Example Linux: java,bash,sshd
        #Example Windows: java.exe,chrome.exe
        # includeProcesses: If empty, all processes are monitored. If not empty, only those specified are monitored excluding others.
        includeProcesses: []
        excludeProcesses: []
        # Processes with an aggregated absolute memory consumption of LESS than this number
        # in Megabytes will be filtered out of the reported metrics. Default value is 100 [MB]
        memoryThreshold: 100
        # ONLY for OS - WINDOWS
        # csv.xsl file path - leave null for default location,
        # i.e. C:/Windows/SysWOW64/csv.xsl OR C:\\Windows\\SysWOW64\\webem\\en-US\\csv.xsl (for 64bit)
        # OR C:/Windows/System32/csv.xsl (32 bit)
        csvFilePath: ""
        # this is the path to the file .monitored-processes
        monitoredProcessFilePath: "monitors/ProcessMonitor/.monitored-processes"
        metricPrefix: "Custom Metrics|"
  2. Configure the path to the config.yml file by editing the in the monitor.xml file in the <MACHINE_AGENT_HOME>/monitors/ProcessMonitor/ directory. Below is the sample

         <!-- config file-->
         <argument name="config-file" is-required="true" default-value="monitors/ProcessMonitor/config.yml" />


Custom Dashboard


Screen Shot 2013-06-19 at 6.41.53 PM.png


Metric Browser


Screen Shot 2013-06-11 at 5.52.20 PM.png


 Screen Shot 2013-06-11 at 5.24.41 PM.png





Always feel free to fork and contribute any changes directly via GitHub.




For any questions or feature request, please contact AppDynamics Support.







Last Update:

10th Jan, 2017


ACE certified for Linux and Windows Server 2008 R2


1.1.0: corrected metric aggregation, tier-specific metric reporting


  • Main part and Windows part of the Process Monitor now have debug level logging. To see the debug level logs, configure the log4j.xml file in your MachineAgent.
  • Minor bug fixes

1.2.0: Continued reporting of processes that fell below the memory threshold, even after restarting of the machine agent. 

1.3.1: Made compatible with JDK 1.5.

1.3.2: Externalized configurable path to monitored-processes file in monitor.xml

1.4: Configuration files changed and fix for Windows

1.5.1: Support for Solaris, AIX and custom flag to view metrics per pid or group