Cisco AppDynamics

Turbonomic supports workload management of the application infrastructure that is monitored by Cisco AppDynamics by adding the AppDynamics instance to Turbonomic as a target.

The Turbonomic integration with AppDynamics provides a full-stack view of your environment, from application to physical hardware. With information obtained from AppDynamics, Turbonomic is able to make recommendations and take actions to both assure performance and drive efficiency with the full knowledge of the demands of each individual application.

In its default configuration, the AppDynamics target collects up to 1100 AppDynamics nodes within the default collection period when a proxy is used, and up to 5000 nodes when no proxy is required. Larger AppDynamics environments are expected to take longer than one cycle to collect complete data.

Note:

For container platform environments, Turbonomic stitches New Relic, AppDynamics, Instana, and Dynatrace containerized application components into the supply chain to provide a unified view of your applications. For more information, see Container Platform Targets.

Prerequisites

  • Cisco AppDynamics 4.1+

  • A valid AppDynamics user account

    For all types of application instances, the service account must have the Read Only User role. For monitoring database instances, this user must also have the DB Monitoring User role.

    Note:

    In newer versions of AppDynamics where these roles are available, they should be used instead:

    • Applications and Dashboards Viewer

    • DB Monitoring User

    • Server Monitoring

    To use a custom role, ensure that the role has the View Server Visibility permission for both applications and databases.

AppDynamics database servers

AppDynamics also monitors database servers. For your database servers to be correctly stitched to the rest of your environment, you must:

  • Enable enhanced metric collection.

    For Hyper-V hosts, you must install Hyper-V Integration Services on the target VM hosting the database. For more information, refer to the following integration services TechNet article:
    https://technet.microsoft.com/en-us/library/dn798297%28v=ws.11%29.aspx

    For VMware hosts, you must install VMware Tools on the target VMs.

  • Ensure that the database name in AppDynamics is resolvable to an IP address by the Turbonomic instance.

    You may need to make changes to your DNS or the file /etc/resolv.conf on the Turbonomic instance.

Adding an AppDynamics target

Note:

It is possible to monitor certain applications or database servers with both AppDynamics and Turbonomic, but this must be avoided as it causes the entities to appear duplicated in the market.

If an application is monitored by AppDynamics, do not add it as a separate Turbonomic application target.

  1. Click Settings > Target configuration.

  2. On the Target configuration page, click Add Target.

  3. On the Select target page, click AppDynamics.

  4. In the side panel, review the connection requirements and then click Connect Target.

  5. On the Connection overview page, configure the following settings:

    • Hostname or IP address

      Specify the hostname or IP address of the AppDynamics controller instance.

    • Port number

      Specify the port that Turbonomic uses to connect to the AppDynamics controller. By default, the HTTP port is 80 and the HTTPS port is 443. For SaaS-based AppDynamics instances, use port 443.

    • Username or API client name

      Specify the username or account ID with the Read Only User and DB Monitoring User permissions. For OAuth authentication, the username must be user-defined as an API Client.

      The username can be found on the License > Account page in AppDynamics.

      The format must be Central ID@tenant, where Central ID can be either a username or an email ID and tenant is not a domain. If the Central ID is an email ID (such as user@domain), you must type %40 instead of "@" in front of the domain since Central IDs must be URL encoded. The "@" symbol is accepted as a delimiter between the Central ID and tenant only.

      Examples: <username>@tenant or <user%40domain>@tenant.

      Note:

      The Central ID cannot contain any of the following special characters:

      \ / " [ ] : | < > + = ; , ? * , ' tab space @

      For Central IDs containing the "@" symbol, URL encode the "@" character as %40.

    • Password or client secret

      Specify the password for the account used to connect to the AppDynamics instance. For OAuth authentication, specify the client secret key.

      Note:

      The password cannot contain any of the following special characters:

      \ / " [ ] : | < > + = ; , ? * , ' tab space @

      For passwords containing the "@" symbol, URL encode the "@" character as %40.

    • Collect virtual machine metrics

      If you select this option, Turbonomic uses the virtual machine metrics that it collects from this target, instead of corresponding metrics that can be collected from related infrastructure targets.

    • Connect using HTTPS

      If you select this option, Turbonomic connects to the target servers using HTTPS. Make sure that the required certificate is configured for use on the host.

      This option is selected by default.

    • Use API Client (OAuth)

      If you select this option, Turbonomic enables Open Authorization (OAuth) token-based authentication for the target connection. For more information, see the AppDynamics documentation.

    • Validate server certificates

      If you select this option, Turbonomic verifies the target certificate and proxy, if in use.

      This option is selected by default.

    • Proxy configuration

      Specify proxy information only if you connect through a proxy.

      • Proxy hostname or IP address

        Specify the address of the proxy used for this target.

      • Proxy port

        Specify the port to use with the proxy used for this target. By default, the port is 8080.

      • Proxy username

        Specify the username to use with the proxy.

      • Proxy password

        Specify the password to use with the proxy.

      • Connect using HTTPS

        Select this option if Turbonomic will connect to the proxy through HTTPS.

For more information about creating API client users, see the AppDynamics Documentation.

Supported applications

Turbonomic discovers the following application types and associated commodities from the AppDynamics target:

Application type Commodities
Java Virtual CPU, Virtual Memory, Response Time, Transactions, Heap, Collection Time, Threads
.NET Virtual CPU, Virtual Memory, Response Time, Transactions
Python Virtual CPU, Virtual Memory, Response Time, Transactions
Note: Only application components are discovered.

Entity mapping

After validating your targets, Turbonomic updates the supply chain with the entities that it discovered. The following table describes the entity mapping between the target and Turbonomic.

AppDynamics Turbonomic
Business Application Business Application
Business Transaction Business Transaction
Tier Service
Node Application Component
Database Database Server
Machine (when the machine type is Container) Container
Server Virtual Machine

Monitored resources

Turbonomic monitors the following resources:

Note:

The exact resources that are monitored will differ based on application type. This list includes all of the resources that you may see.

  • Application Component

    • Connection

      Connection is the measurement of database connections utilized by applications.

    • Heap

      Heap is the portion of a VM or container’s memory allocated to individual applications.

    • Remaining GC capacity

      Remaining GC capacity is the measurement of Application Component uptime that is not spent on garbage collection (GC).

    • Response time

      Response time is the elapsed time between a request and the response to that request. Response time is typically measured in seconds (s) or milliseconds (ms).

    • Threads

      Threads is the measurement of thread capacity utilized by applications.

    • Transaction

      Transaction is a value that represents the per-second utilization of the transactions that are allocated to a given entity.

    • Virtual CPU (vCPU)

      Virtual CPU is the measurement of CPU that is in use.

    • Virtual memory (vMem)

      Virtual memory (vMem) is the measurement of memory that is in use.

  • Business application

    • Response time

      Response time is the elapsed time between a request and the response to that request. Response time is typically measured in seconds (s) or milliseconds (ms).

    • Transaction

      Transaction is a value that represents the per-second utilization of the transactions that are allocated to a given entity.

  • Business transaction

    • Response time

      Response time is the elapsed time between a request and the response to that request. Response time is typically measured in seconds (s) or milliseconds (ms).

    • Transaction

      Transaction is a value that represents the per-second utilization of the transactions that are allocated to a given entity.

  • Database server

    • Connection

      Connection is the measurement of database connections utilized by applications.

      This commodity applies to MongoDB only.

    • DB cache hit rate

      DB cache hit rate is the measurement of Database Server accesses that result in cache hits, measured as a percentage of hits versus total attempts. A high cache hit rate indicates efficiency.

      This commodity applies to SQL and Oracle only.

    • Transaction log

      Transaction log is the measurement of storage capacity utilized by a Database Server for transaction logging.

      This commodity applies to SQL only.

    • Transaction

      Transaction is a value that represents the per-second utilization of the transactions that are allocated to a given entity.

      This commodity applies to SQL, MySQL, and Oracle only.

  • Service

    • Response time

      Response time is the elapsed time between a request and the response to that request. Response time is typically measured in seconds (s) or milliseconds (ms).

      For container platform environments, this is the desired weighted average response time of all Application Component replicas associated with a Service.

    • Transaction

      Transaction is a value that represents the per-second utilization of the transactions that are allocated to a given entity.

      For container platform environments, this is the maximum number of transactions per second that each Application Component replica can handle.

  • Virtual machine

    • Virtual CPU (vCPU)

      Virtual CPU is the measurement of CPU that is in use.

      Note:

      To collect data, a machine agent must be present and database hardware monitoring must be enabled.

    • Virtual memory (vMem)

      Virtual memory (vMem) is the measurement of memory that is in use.

      Note:

      To collect data, a machine agent must be present and database hardware monitoring must be enabled.

    For a VM, the resources you see depend on how the VM is discovered, and whether the VM provides resources for an application that is discovered by this target:

    • If the VM hosts an application that is discovered through this target, then you see VM metrics that are discovered through this target.

    • If the VM is discovered through a different target, and it does not host any application discovered through this target, you see VM metrics that are discovered through that different target.

    • If the VM is discovered through this target, but it does not host any application that is discovered through this target, then Turbonomic does not display metrics for the VM.

Actions

Note:

The specific actions that Turbonomic recommends can differ, depending on the processes that Turbonomic discovers.

For other application components, Turbonomic can recommend actions based on the resources it can discover for the application. For example, Node.js® applications report CPU usage, so Turbonomic can generate vCPU resize actions and display them in the user interface.

Turbonomic supports the following actions:

  • Application component

    • Resize Heap

      This action can only be executed outside Turbonomic.

  • Database server

    • Resize Connections

      This action can only be executed outside Turbonomic.

    • Resize Database Memory (DBMem)

      This action can only be executed outside Turbonomic.

Note:

For different types of Database Servers, the AppDynamics target returns different metrics. This affects Turbonomic actions as follows:

  • MySQL:

    For MySQL database servers, analysis does not generate resize actions for DB Memory, Connections, or Transaction Log. The target does not discover DB Cache Hit Rate, DB Memory, Connections, or Transaction Log.

  • SQL Server:

    For SQL database servers, analysis does not generate resize actions for DB Memory, Connections, or Transaction Log. The target does not discover DB Memory or Connections.

  • MongoDB:

    For MongoDB database servers, analysis does not generate resize actions for DB Memory, Connections, or Transaction Log. The target does not discover DB Cache Hit Rate, DB Memory, Transactions, or Transaction Log.

  • Oracle:

    For Oracle database servers, analysis does not generate resize actions for DB Memory, Connections, or Transaction Log. The target does not discover DB Memory, Connections, or Transaction Log.