AppFirst Poll-aroid - Integrated Monitoring and Alerting with AppDynamics data

AppFirst’s Poll-aroid

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:



Controller Hostname

Account Name

User

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:

 

requests

afstatsd

 

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

 

Options:

 -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

                       AppDynamics 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.