This extension requires AppDynamics Java Machine agent.
Process Monitoring Extension gathers process metrics from a Linux/Windows/Solaris/AIX machine and reports to AppDynamics Controller. It utilizes the ps command in Unix like systems and Sigar library in Windows to fetch basic process metrics.
This can also be used as a process checker (identify whether a process is running/not running) by its metric "Running Instances". If the configured process is not running, the "Running Instances" metric value reported is "ZERO".
Apart from the "Running Instances" metric, other process metrics are reported ONLY if the extension detects a single instance of the process running ("Running Instances" metric value is "ONE").
Note: If running on Windows, this extension has Sigar dependencies. Please make sure to copy Windows OS related Sigar files (sigar-*.jar, sigar-amd64-winnt.dll, sigar-x86-winnt.dll) from
In the AppDynamics Metric Browser, look for: Application Infrastructure Performance | <Tier> | Individual Nodes | <Node> | Custom Metrics | Process Monitor | <OS> Processes
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
Note: Please use workbench mode to verify the metrics while experimenting with various configurations in config.yml to arrive at the desired result.
Edit the config.yml file in
<MACHINE_AGENT_HOME>/monitors/ProcessMonitor/ to update the following.
metricPrefix: If you wish to report metrics only to the tier which this MachineAgent is reporting to, please comment the second metricPrefix and update the "<Component-ID>" with TierID or TierName in the first metricPrefix.
metricPrefix: "Server|Component:<Component-ID>|Custom Metrics|Process Monitor|" metricPrefix: "Custom Metrics|Process Monitor|"
instances: process instances that are to be monitored.
displayNamewhich is mandatory is used to render the process name on the metric browser and all the process metrics are reported under this name. The process to be monitored can be configured in three ways:
pidFile. regex is a regular expression used to match the process and is built based on the command line path to the process.
instances: - displayName: "machine agent" regex: ".* machineagent.jar" - displayName: "ssh" pid: "1056" - displayName: "mysql" pidFile: "/opt/mysql/db/mysql.pid"
linux: process: "ps -eo pid,%cpu=CPU%,%mem=Memory%,rsz=RSS,args" solaris: process: "ps -eo pid,pcpu=CPU%, -o pmem=Memory%, -o rss=RSS -o args" aix: process: "ps -eo pid,pcpu=CPU%,pmem=Memory%,rss=RSS,args"
metrics(Optional). Existing metric properties can be modified in this section. If additional metrics are added in the commands, please configure them here with appropriate metric properties for extension to report these metrics. Supported properties are
metrics: - CPU%: multiplier: 1 - Memory%: alias: "Memory%" - RSS: alias: "Resident Set Size" - Running Instances: alias: "Running Instances"
Additional metrics can be configured in unix like systems by adding them to the respective commands in config.yml. For example if Virtual Memory Size of a Linux process is needed, the linux command can be modified to the following
linux: process: "ps -eo pid,%cpu=CPU%,%mem=Memory%,rsz=RSS,vsz=VSZ,args"
and the metric properties to
metrics: - VSZ: alias: "Virtual Memory Size"
Please visit this page to get detailed instructions on password encryption. The steps in this document will guide you through the whole process.
Workbench is an inbuilt feature provided with each extension in order to assist you to fine tune the extension setup before you actually deploy it on the controller. Please review the following document on How to use the Extensions WorkBench
command line here is "java -jar machineagent.jar" and regex could be ".*machineagent.jar" Windows
Linux command: ps -eo pid,%cpu=CPU%,%mem=Memory%,rsz=RSS,args | grep "java" Output: 2877 57.3 1.6 264708 java -jar machineagent.jar
command line here is "C:\machineagent-bundle-32bit-windows-126.96.36.199\jre\bin\java.exe -jar machineagent.jar" and regex could be ".*java.exe -jar machineagent.jar"
wmic process get /format:list | findstr java Output: Caption=java.exe CommandLine=jre\bin\java.exe -jar machineagent.jar Description=java.exe ExecutablePath=C:\machineagent-bundle-32bit-windows-188.8.131.52\jre\bin\java.exe
process command line: "/opt/push-jobs-client/bin/ruby /opt/push-jobs-client/bin/pushy-client -c /etc/push-jobs-clientb" regex Matches ".*pushy-client.*" True ".*pushy-client .*" True ".*pushy-client .*" False ".* pushy-client.*" False
Please test your regex using any of the online validators (eg: regextester).
If after going through the Troubleshooting Document you have not been able to get your extension working, please file a ticket and add the following information in order so that we can assist you better and faster.
Please provide the following in order for us to assist you better.
<MachineAgent>/conf/logging/log4j.xml. Change the level value of the following
<logger>elements to debug.
<MachineAgent>/monitors/ExtensionFolderYouAreHavingIssuesWithdirectory here .
For any support related questions, you can also contact email@example.com.
Always feel free to fork and contribute any changes directly via GitHub.
|19th Feb, 2018|
|ACE certified for Linux and Windows Server 2008 R2|
2.0.1: Extension Revamped
2.0.2: Updated Licenses