How to Integrate AppDynamics & PagerDuty

Introduction

The AppDynamics application allows you to create notifications, based on thresholds defined by the user, that can be used to trigger incidents within PagerDuty. PagerDuty can then alert the appropriate technician via SMS, phone, email or iOS push.

If you are having trouble completing the installation, please contact us.

Prerequisites

In PagerDuty:

Create a new service:

  1. In your account, under the Services tab, click “Add New Service”.
  2. Enter a name for the service and select an escalation policy. Then, start typing “AppDynamics” for the Integration Type, which will narrow your filtering.
    AppDynamics
  3. Click the “Add Service” button.
  4. Once the service is created, you’ll be taken to the service page. On this page, you’ll see the “Service key”, which you will need when you configure AppDynamics to send events to PagerDuty.

In AppDynamics:

  1. This walkthrough assumes that AppDynamics has already been installed, configured and is communicating properly with your application(s).

Installation Steps

  1. Download the PagerDuty-alerting-extension from github, here: https://github.com/Appdynamics/pagerduty-alerting-extension
  2. Follow the instructions in the GitHub repository, including the updating of your API_KEY, and the copying of the necessary files/directories to the “<controller_install_dir>/custom/actions/” directory.
  3. Within AppDynamics, click on Alert & Respond, then click on Policies and Create Policy.
    step1
  4. Name your policy, and select the Rules/Conditions you’d like to trigger events:
    step2c
  5. Then, click Actions and then click the plus (“+“) sign to create a new Action.
    step3c
  6. In the “Create Action” dialog, select Custom Actions and click OK.
    step4
  7. Name your “Custom Action” and then select createPagerDutyAlarm. Then click Save.
    step5
  8. Be sure to Save your policy back in the “Create Policy” dialog.
  9. You’re all done! Now when your conditions are met, you’ll see ‘createPagerDutyAlarm’ being triggered in your Events.
    step7b

Verify that AppDynamics and PagerDuty are Communicating

Once an alert has been created within AppDynamics, you can verify that PagerDuty triggered a new incident by doing the following:

  1. Login to your PagerDuty account.
  2. Click on Services and then select the service that’s used for monitoring your AppDynamics application.
  3. You should see that an incident has been triggered.
  4. You can then click on the incident number to view the incident details.
  5. Lastly, click on view message to see the JSON information passed from AppDynamics.

FAQ

How do you configure AppDynamics to have multiple alerts that report to PagerDuty?

You can also setup AppDynamics so that it will report to multiple PagerDuty services. This can be useful if you have multiple applications running within AppDynamics or if you would like to use specific escalation policies and on-call schedules for different AppDynamics notifications.

In order to setup AppDynamics so that it can communicate with multiple PagerDuty services, you will:

  1. Create two (or more) PagerDuty Generic API services.Each service will have its own Service API key.
  2. Create multiple subfolders under the <controller_install_dir>/custom/actions/ directory.Each folder would contain the same contents as described in steps 6-7 of these instructions with one caveat: Each params.sh file will contain a different Service API Key. Lastly, modify your <controller_install_dir>/custom/actions/custom.xml file to point to each of your new scripts.

You now will have two (or more) options when selecting a custom action as described in step 16.

Note: For more advanced information regarding custom actions in AppDynamics, please review the documentation here.