Integrated Monitoring and Alerting with AppDynamics Data
The following is a walkthrough for using Poll-aroid to collect data from AppDynamics for inclusion into the AppFirst data store.
First, Collect the following information from your AppDynamics Account:
Account Access Key/Password
Next, Get the metric path for the items you wish to integrate into AppFirst:
Using the metric browser, use either “Copy Full Path” or “Copy REST URL”. For this example we’ll copy the Full Path. Ensure you also take note of theApplication- for example, “TreehouseTest” in our example screenshot.
With these pieces of information at hand, we will install Poll-aroid to your system - either through our Github Site, or from the package downloaded in the AppDynamics Exchange. I’ve cloned this repo to the /usr/share/appfirst/plugins/libexec directory, the default storage location for AppFirst:
You’ll also want to make sure you have the following python modules installed:
Once installed, lets build our script execution. Poll-aroid can be used to scrape both AppDynamics data, as well as AWS Cloudwatch, depending on the plugin we utilize. For AppDynamics the options are:
Usage: AfPoller.py - AppFirst Poller for AppDynamics
-h, --help show this help message and exit
-P PLUGIN, --plugin=PLUGIN
[REQUIRED] Name of plug in appdynamics or cloudwatch
-u USERNAME, --username=USERNAME
AppDynamics username (usually name@domain format)
-p PASSWORD, --password=PASSWORD
-a APPNAME, --application=APPNAME
Name of your AppDynamics Application
-H HOSTNAME, --hostname=HOSTNAME
Host name (including port) of your AppFirst Controller
-m METRICPATH, --metricpath=METRICPATH
AppDynamics path (with \| separators) to the metric to
poll. You may use wildcards '*'
With the values we’ve collected before, we arrive at the following command:
/usr/bin/python /usr/share/appfirst/plugins/libexec/poll-aroid/AfPoller/AfPoller.py --plugin=appdynamics -u username@account -p access_key -H controller_hostname -m "Business Transaction Performance|Business Transactions|novobiopharm|/my.aspx/results|Average Response Time (ms)" -a TreehouseTest --test --dry-run
The --test and --dry-run options execute the command, verbosely, without sending data to our backend. This is a good way to verify the information you are collecting. Once verified, you can remove these options and save the command in your Administration->Collector config:
command[ADPoll.TreehouseTest]=/usr/bin/python /usr/share/appfirst/plugins/libexec/poll-aroid/AfPoller/AfPoller.py --plugin=appdynamics -u appfirst@appfirst -p access_key -H appfirst.saas.appdynamics.com -m "Business Transaction Performance|Business Transactions|novobiopharm|/my.aspx/results|Average Response Time (ms)" -a TreehouseTest
Once deployed, metrics will be available under StatsD widgets in the Dashboard and Correlate. Using the polled-data command will make the execution of the script trackable by server.
Also note, with the Metric option, you can specify an asterisk to grab all metrics available in the metric tree as listed in the AppDynamics browser.
Alternatively, a check_appdynamics.sh script is provided in the root tree to abstract execution to the script options.
Note: This extension works only with a dedicated SaaS controller or an on-prem controller. Alerting extensions, currently do not support multi-tenant SaaS controllers.