This page describes how application APIs let you retrieve information about the monitored environment as modeled in AppDynamics. This information includes, for example, the names and IDs of the business applications, business transactions, tiers, and nodes in the modeled environment.  

Retrieve All Business Applications

The application API method returns the business application names and internal numeric identifier. Many of the operations in the Controller APIs occur in the context of a business application. Use this method to discover the application names or IDs to use before invoking other methods.   

Format

GET /controller/rest/applications 

Input parameters

Parameter Name

Parameter Type

Value

Mandatory

output

Query

HTTP Request parameter included as part of the URL to change the output format. Valid values are XML (default) or JSON.

No

timeRangeTimeA time parameter to filter data based on time range options (timeRange, startTime, endTime). If a timeRange option is specified, the query returns alive applications on that GMT day, otherwise, the query returns all applications. 
  • Case 1 : If timeRange is last T mins and the timeRange just falls into one GMT day then the API returns all the applications which are alive on that GMT day.
  • Case 2 : If timeRange is last T mins and the timeRange falls into 2 GMT days (for example if the current time is 4:05 PST and timeRange specified is last 10 mins then the API returns applications which are alive on this and the previous GMT day).

This feature is available for SaaS only and the API returns all applications for on-premises.

For more information see Metric and Snapshot API.
No

An alive application is an application with at least one node that submits at least one metric to the Controller in the provided time range.

Example

curl --user user1@customer1:your_password http://demo.appdynamics.com/controller/rest/applications
 
<applications>
   <application>
     <id>5</id>
     <name>ECommerce_E2E</name>
   </application>
   <application>
     <id>8</id>
     <name>ECommerce_E2E-Fulfillment</name>
   </application>
   <application>
     <id>11</id>
     <name>jimix12110919</name>
     <description></description>
     <accountGuid>429c7884-3f36-4b5a-9412-fdf827e6c86e</accountGuid>
   </application>
</applications>

Retrieve All Business Transactions in a Business Application

Format

GET /controller/rest/applications/application_name/business-transactions

Input parameters

Parameter Name

Parameter Type

Value

Mandatory

application_name

URI

The application name or application ID.

Yes

exclude

Query

  • false: the query retrieves only the business transactions that are included for monitoring.
  • true: the query retrieves only the excluded business transactions. Excluded business transactions have been configured to be excluded from monitoring either from the UI or through the REST interface.
  • The default is false.

No

output

Query

HTTP Request parameter included as part of the URL to change the output format. Valid values are XML (default) or JSON.

No

timeRangeTimeTime parameter to filter data based on time range options (timeRange, startTime, endTime). If a timeRange option is specified, the query returns alive business transactions on that GMT day, otherwise, the query returns all business transactions. 
  • Case 1 : If timeRange is last T mins and the timeRange just falls into one GMT day then the API returns all the business transactions which are alive on that GMT day.
  • Case 2 : If timeRange is last T mins and the timeRange falls into 2 GMT days (for example if the current time is 4:05 PST and timeRange specified is last 10 mins then the API returns business transactions which are alive on this and the previous GMT day).

This feature is available for SaaS only and the API returns all business transactions for on-premises.

See Metric and Snapshot API.
No

An alive business transaction is a transaction that submits at least one metric to the Controller in the provided time range.

Example

curl --user user1@customer1:your_password http://demo.appdynamics.com/controller/rest/applications/5/business-transactions

<business-transactions>
   <business-transaction>
     <id>92</id>
     <name>/user/.POST</name>
     <entryPointType>WEB_SERVICE</entryPointType>
     <internalName>/user/.POST</internalName>
     <tierId>9</tierId>
     <tierName>ECommerce-Services</tierName>
     <background>false</background>
   </business-transaction>
   ...
   <business-transaction>
     <id>184</id>
     <name>OrderServiceImplService.createOrder</name>
     <entryPointType>WEB_SERVICE</entryPointType>
     <internalName>OrderServiceImplService.createOrder</internalName>
     <tierId>12</tierId>
     <tierName>Inventory-Services</tierName>
     <background>false</background>
   </business-transaction>
</business-transactions>

Retrieve All Tiers in a Business Application

Format

GET /controller/rest/applications/application_name/tiers

Input parameters

Parameter Name

Parameter Type

Value

Mandatory

application_name

URI

The application name or application ID.

Yes

output

Query

HTTP Request parameter included as part of the URL to change the output format. Valid values are XML (default) or JSON.

No

timeRangeTimeTime parameter to filter data based on time range options (timeRange, startTime, endTime). If a timeRange option is specified, the query returns alive tiers on that GMT day, otherwise, the query returns all tiers. 
  • Case 1 : If timeRange is last T mins and the timeRange just falls into one GMT day then the API returns all the tiers which are alive on that GMT day.
  • Case 2 : If timeRange is last T mins and the timeRange falls into 2 GMT days (for example if the current time is 4:05 PST and timeRange specified is last 10 mins then the API returns tiers which are alive on this and the previous GMT day).

This feature is available for SaaS only and the API returns all tiers for on-premises.

See Metric and Snapshot API.
No

An alive tier is a tier with at least one node in this tier that submits at least one metric to the Controller in the provided time range.

Example

curl --user user1@customer1:your_password http://demo.appdynamics.com/controller/rest/applications/5/tiers

<tiers>
<tier>
  <id>8</id>
  <name>Address-Services</name>
  <type>Application Server</type>
  <agentType>APP_AGENT</agentType>
  <numberOfNodes>1</numberOfNodes>
</tier>
<tier>
  <id>16</id>
  <name>Customer-Survey-Services</name>
  <type>Application Server</type>
  <agentType>APP_AGENT</agentType>
  <numberOfNodes>1</numberOfNodes>
</tier>
<tier>
  <id>9</id>
  <name>ECommerce-Services</name>
  <type>Application Server</type>
  <agentType>APP_AGENT</agentType>
  <numberOfNodes>2</numberOfNodes>
</tier>
<tier>
  <id>12</id>
  <name>Inventory-Services</name>
  <type>Application Server</type>
  <agentType>APP_AGENT</agentType>
  <numberOfNodes>1</numberOfNodes>
</tier>
<tier>
  <id>17</id>
  <name>Order-Processing-Services</name>
  <type>Application Server</type>
  <agentType>APP_AGENT</agentType>
  <numberOfNodes>1</numberOfNodes>
</tier>
<tier>
  <id>18</id>
  <name>Web-Tier-Services</name>
  <type>Web Server</type>
  <agentType>NATIVE_WEB_SERVER</agentType>
  <numberOfNodes>1</numberOfNodes>
</tier>
</tiers>

Retrieve All Registered Backends in a Business Application With Their Properties

Format

GET /controller/rest/applications/application_name/backends

Input parameters

Parameter Name

Parameter Type

Value

Mandatory

application_name

URI

Provide either the application name or application id.

Yes

output

Query

HTTP Request parameter included as part of the URL to change the output format. Valid values are XML (default) or JSON.

No

Example

curl --user user1@customer1:your_password http://demo.appdynamics.com/controller/rest/applications/5/backends

<backends><backend>
  <id>10</id>
  <name>INVENTORY-MySQL DB-DB</name>
  <exitPointType>JDBC</exitPointType>
  <properties>
    <name-value>
      <id>0</id>
      <name>HOST</name>
      <value>DB</value>
    </name-value>
    <name-value>
      <id>0</id>
      <name>MAJOR_VERSION</name>
      <value>5.5.44-0ubuntu0.14.04.1</value>
    </name-value>
    <name-value>
      <id>0</id>
      <name>PORT</name>
      <value>3306</value>
    </name-value>
    <name-value>
      <id>0</id>
      <name>SCHEMA</name>
      <value>INVENTORY</value>
    </name-value>
    <name-value>
      <id>0</id>
      <name>URL</name>
      <value>jdbc:mysql://db:3306/inventory?useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true</value>
    </name-value>
    <name-value>
      <id>0</id>
      <name>VENDOR</name>
      <value>MySQL DB</value>
    </name-value>
  </properties>
  <applicationComponentNodeId>0</applicationComponentNodeId>
  <tierId>0</tierId>
</backend>
 ...
<backend>
  <id>14</id>
  <name>Active MQ-OrderQueue</name>
  <exitPointType>JMS</exitPointType>
  <properties>
    <name-value>
      <id>0</id>
      <name>DESTINATION_NAME</name>
      <value>OrderQueue</value>
    </name-value>
    <name-value>
      <id>0</id>
      <name>DESTINATION_TYPE</name>
      <value>QUEUE</value>
    </name-value>
    <name-value>
      <id>0</id>
      <name>VENDOR</name>
      <value>Active MQ</value>
    </name-value>
  </properties>
  <applicationComponentNodeId>0</applicationComponentNodeId>
  <tierId>0</tierId>
</backend>
</backends>

Retrieve Node Information for All Nodes in a Business Application

Format

GET /controller/rest/applications/application_name/nodes

Input parameters

Parameter Name

Parameter Type

Value

Mandatory

application_name

URI

Provide either the application name or application id.

Yes

output

Query

HTTP Request parameter included as part of the URL to change the output format. Valid values are XML (default) or JSON.

No

timeRangeTimeTime parameter to filter data based on time range options (timeRange, startTime, endTime). If a timeRange option is specified, the query returns alive nodes on that GMT day, otherwise, the query returns all nodes. 
  • Case 1 : If timeRange is last T mins and the timeRange just falls into one GMT day then the API returns all the nodes which are alive on that GMT day.
  • Case 2 : If timeRange is last T mins and the timeRange falls into 2 GMT days (for example if the current time is 4:05 PST and timeRange specified is last 10 mins then the API returns nodes which are alive on this and the previous GMT day).

This feature is available for SaaS only and the API returns all nodes for on-premises.

See Metric and Snapshot API.
No

An alive node is a node that submits at least one metric to the Controller in the provided time range.

Example

curl --user user1@customer1:welcome http://demo.appdynamics.com:8090/controller/rest/applications/5/nodes


<nodes><node>
  <id>7</id>
  <name>Node_8000</name>
  <type>Tomcat 5.x</type>
  <tierId>12</tierId>
  <tierName>ECommerce Server</tierName>
  <machineId>3</machineId>
  <machineName>TIER1TOMCAT</machineName>
  <machineOSType>Linux</machineOSType>
  <machineAgentPresent>true</machineAgentPresent>
  <machineAgentVersion>Machine Agent v4.2.0.0 GA Build Date 2015-12-18 18:47:15</machineAgentVersion>
  <appAgentPresent>true</appAgentPresent>
  <appAgentVersion>Server Agent v4.2.0.0 GA #10145 r514d60d3122bd992e7152820d2ca5fb5ff4e45c1 8409-master-build</appAgentVersion>
  <agentType>APP_AGENT</agentType>
</node>
...
<node>
  <id>10</id>
  <name>Node_8002</name>
  <type>Tomcat 5.x</type>
  <tierId>14</tierId>
  <tierName>Inventory Server</tierName>
  <machineId>6</machineId>
  <machineName>TIER3TOMCAT</machineName>
  <machineOSType>Linux</machineOSType>
  <machineAgentPresent>true</machineAgentPresent>
  <machineAgentVersion>Machine Agent v4.2.0.0 GA Build Date 2015-12-18 18:47:15</machineAgentVersion>
  <appAgentPresent>true</appAgentPresent>
  <appAgentVersion>Server Agent v4.2.0.0 GA #10145 r514d60d3122bd992e7152820d2ca5fb5ff4e45c1 8409-master-build</appAgentVersion>
  <agentType>APP_AGENT</agentType>
</node>
</nodes>

Retrieve Node Information by Node Name

Format 

GET /controller/rest/applications/application_name/nodes/node_name

Input parameters

Parameter Name

Parameter Type

Value

Mandatory

application_name

URI

The application name or application ID.

Yes

node_name

URI

The node name or ID

Yes

output

Query

HTTP Request parameter included as part of the URL to change the output format. Valid values are XML (default) or JSON.

No

Example

curl --user user1@customer1:welcome http://demo.appdynamics.com:8090/controller/rest/applications/5/nodes/10

<nodes><node>
  <id>10</id>
  <name>Node_8002</name>
  <type>Tomcat 5.x</type>
  <tierId>14</tierId>
  <tierName>Inventory Server</tierName>
  <machineId>6</machineId>
  <machineName>TIER3TOMCAT</machineName>
  <machineOSType>Linux</machineOSType>
  <machineAgentPresent>true</machineAgentPresent>
  <machineAgentVersion>Machine Agent v4.2.0.0 GA Build Date 2015-12-18 18:47:15</machineAgentVersion>
  <appAgentPresent>true</appAgentPresent>
  <appAgentVersion>Server Agent v4.2.0.0 GA #10145 r514d60d3122bd992e7152820d2ca5fb5ff4e45c1 8409-master-build</appAgentVersion>
  <ipAddresses>
    <ipAddress>10.0.32.138</ipAddress>
  </ipAddresses>
  <agentType>APP_AGENT</agentType>
</node>
</nodes>

Retrieve Node Information for All Nodes in a Tier

Format 

GET /controller/rest/applications/application_name/tiers/tier_name/nodes

Input parameters

Parameter Name

Parameter Type

Value

Mandatory

application_name

URI

The application name or application ID.

Yes

tier_name

URI

The tier name or ID.

Yes

output

Query

HTTP Request parameter included as part of the URL to change the output format. Valid values are XML (default) or JSON.

No

timeRangeTimeTime parameter to filter data based on time range options (timeRange, startTime, endTime). If a timeRange option is specified, the query returns alive nodes on that GMT day, otherwise, the query returns all nodes. 
  • Case 1 : If timeRange is last T mins and the timeRange just falls into one GMT day then the API returns all the nodes which are alive on that GMT day.
  • Case 2 : If timeRange is last T mins and the timeRange falls into 2 GMT days (for example if the current time is 4:05 PST and timeRange specified is last 10 mins then the API returns nodes which are alive on this and the previous GMT day).

This feature is available for SaaS only and the API returns all nodes for on-premises.

See Metric and Snapshot API.
No

Example

curl --user user1@customer1:welcome http://demo.appdynamics.com:8090/controller/rest/applications/25/tiers/70/nodes

<nodes><node>
  <id>81</id>
  <name>PHP_Node</name>
  <type>Other</type>
  <tierId>70</tierId>
  <tierName>PHP_Tier</tierName>
  <machineId>65</machineId>
  <machineName>232fe50b8f9c</machineName>
  <machineOSType>Linux</machineOSType>
  <machineAgentPresent>false</machineAgentPresent>
  <appAgentPresent>true</appAgentPresent>
  <appAgentVersion>Proxy v4.2.0.0 GA SHA-1:.c86ec090f4ff77195df065fe56dade4dfc3913aa #9909 8869-master-build</appAgentVersion>
  <ipAddresses>
    <ipAddress>fe80:0:0:0:42:acff:fe11:2%eth0</ipAddress>
    <ipAddress>172.17.0.2</ipAddress>
  </ipAddresses>
  <agentType>PHP_APP_AGENT</agentType>
</node>
</nodes>

Retrieve Tier Information by Tier Name

Format 

GET /controller/rest/applications/application_name/tiers/tier_name 

Input parameters

Parameter Name

Parameter Type

Value

Mandatory

application_name

URI

The application name or application ID.

Yes

tier_name

URI

Tier name or ID.

Yes

output

Query

HTTP Request parameter included as part of the URL to change the output format. Valid values are XML (default) or JSON.

No

Example

curl --user user1@customer1:welcome http://demo.appdynamics.com:8090/controller/rest/applications/5/tiers/14

<tiers><tier>
  <id>14</id>
  <name>Inventory Server</name>
  <type>Application Server</type>
  <agentType>APP_AGENT</agentType>
  <numberOfNodes>1</numberOfNodes>
</tier>
</tiers>