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:
There are two ways of reporting these metrics to controller by changing the flag displayByPid in config.yml.
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 ProcessMonitor.zip.
2. Unzip and deploy the downloaded file into
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
Configure the extension by editing the config.yml file in
# 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|"
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
<task-arguments> <!-- config file--> <argument name="config-file" is-required="true" default-value="monitors/ProcessMonitor/config.yml" /> .... </task-arguments>
Always feel free to fork and contribute any changes directly via GitHub.
For any questions or feature request, please contact AppDynamics Support.
|10th Jan, 2017|
|ACE certified for Linux and Windows Server 2008 R2|
1.1.0: corrected metric aggregation, tier-specific metric reporting
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