AppDynamics API Integration Overview

REST API Overview #

This document provides various examples of connecting to an AppDynamics API from edgeCore. It is written against AppDynamics Version 4.2.0.2, build 59.

Please see the following link as needed for AppDynamics REST API documentation:
https://docs.appdynamics.com/display/PRO42/AppDynamics+APIs

API Authentication #

Access to the AppDynamics REST API is protected by Basic Authentication.

cURL reference authentication request
curl –user appdynamics@customer1:appdynamics http://appdynamicsHostname:5610/controller/rest/applications?output=JSON

Example Connection Configuration #

edgeSuite connects to the AppDynamics REST API using a Web Data Connection. An example Connection Configuration is presented below:

Connection Property Example
Connection Name AppDynamics REST API
Destination http://appdynamicsHostname:5610
SSO Handler AppDynamicsSso
SSO Credentials Username: appdynamics@customer1
Password: appdynamics

The “customer1” suffix for the user name is the AppDynamics default account. The default account name needs to be appended to the user name for REST API authentication.

Example Feed Configurations #

edgeCore connects to the AppDynamics REST API using a JSON Feed. Below are defaults for all AppDynamics Feed configuration properties unless otherwise specified:

AppDynamics provides both a supported and unsupported REST API for data requests. The unsupported REST API is used by the native AppDynamics web UI. The unsupported REST API provides a much richer source of data than the supported REST API. The sample queries to the unsupported REST API are provided at the bottom of this page.

Default Feed Property Value
Request Headers None
Rule Name BaseData
Logging Production
Poll Period 60
Enable Server Subscription Yes

Listed below are a series of sample JSON Feed Configurations that make requests to the supported AppDynamics REST API:

AppDynamics Get Application Names #
Feed Property Value
Feed Name AppDynamics Get Application Names
Start URI /controller/rest/applications?output=JSON
HTTP Method GET
JSON Path $.*
AppDynamics Get Application Tiers #
Feed Property Value
Feed Name AppDynamics Get Application Tiers
Start URI /controller/rest/applications/<application name>/tiers?output=JSON
HTTP Method GET
JSON Path $.*
AppDynamics Get Application Backends
Feed Property Value
Feed Name AppDynamics Get Application Backends
Start URI /controller/rest/applications/<application name>/backends?output=JSON
HTTP Method GET
JSON Path $.*

AppDynamics Get Application Nodes

Feed Property Value
Feed Name AppDynamics Get Application Nodes
Start URI /controller/rest/applications/<application name>/nodes?output=JSON
HTTP Method GET
JSON Path $.*
AppDynamics Get Application Business Transactions #
Feed Property Value
Feed Name AppDynamics Get Application Business Transactions
Start URI /controller/rest/applications/<application name>/business-transactions?output=JSON
HTTP Method GET
JSON Path $.*
AppDynamics Get Application Health Violations
Feed Property Value
Feed Name AppDynamics Get Application Health Violations
Start URI /controller/rest/applications/<application name>/problems/healthrule-violations?time-range-type=BEFORE_NOW&duration-in-mins=<unix epoch time>&output=JSON
HTTP Method GET
JSON Path $.*

AppDynamics Get Application Metric
Feed Property Value
Feed Name AppDynamics Get Application Metric <metric type>
Start URI /controller/rest/applications/<application name>/metric-data?metric-path=Overall%20Application%20Performance%7CCalls%20per%20Minute&time-range-type=BEFORE_NOW&duration-in-mins=<number of minutes>&rollup=false&output=json
HTTP Method GET
JSON Path $.*

Listed below are a series of sample JSON Feed Configurations that make requests to the unsupported AppDynamics REST API:

AppDynamics Get Detailed Application Status #
Feed Property Value
Feed Property Value
Feed Name AppDynamics Get Detailed Application Status
Start URI /controller/restui/allApplications/allApplicationsDashboard?time-range=last_15_minutes.BEFORE_NOW
HTTP Method POST
JSON Path $.*
Request Headers Key: Accept Value: application/json
Key: Content-Type Value: application/json

AppDynamics Get List of All Application Databases and Status
#
Feed Property Value
Feed Name AppDynamics Get List of All Application Databases and Status
Start URI /controller/restui/dbMonitoring/allDbs?timeRange=last_15_minutes.BEFORE_NOW.-1.-1.15&includeRegularMetricData=true
HTTP Method GET
JSON Path $.*
Request Headers Key: Accept Value: application/json
Key: Content-Type Value: application/json