Skip Navigation
Show nav
Heroku Dev Center
  • Get Started
  • Documentation
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
  • Documentation
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
View categories

Categories

  • Heroku Architecture
    • Dynos (app containers)
    • Stacks (operating system images)
    • Networking & DNS
    • Platform Policies
    • Platform Principles
  • Command Line
  • Deployment
    • Deploying with Git
    • Deploying with Docker
    • Deployment Integrations
  • Continuous Delivery
    • Continuous Integration
  • Language Support
    • Node.js
    • Ruby
      • Rails Support
      • Working with Bundler
    • Python
      • Background Jobs in Python
      • Working with Django
    • Java
      • Working with Maven
      • Java Database Operations
      • Java Advanced Topics
      • Working with Spring Boot
    • PHP
    • Go
      • Go Dependency Management
    • Scala
    • Clojure
  • Databases & Data Management
    • Heroku Postgres
      • Postgres Basics
      • Postgres Getting Started
      • Postgres Performance
      • Postgres Data Transfer & Preservation
      • Postgres Availability
      • Postgres Special Topics
    • Heroku Data For Redis
    • Apache Kafka on Heroku
    • Other Data Stores
  • Monitoring & Metrics
    • Logging
  • App Performance
  • Add-ons
    • All Add-ons
  • Collaboration
  • Security
    • App Security
    • Identities & Authentication
    • Compliance
  • Heroku Enterprise
    • Private Spaces
      • Infrastructure Networking
    • Enterprise Accounts
    • Enterprise Teams
    • Heroku Connect (Salesforce sync)
      • Heroku Connect Administration
      • Heroku Connect Reference
      • Heroku Connect Troubleshooting
    • Single Sign-on (SSO)
  • Patterns & Best Practices
  • Extending Heroku
    • Platform API
    • App Webhooks
    • Heroku Labs
    • Building Add-ons
      • Add-on Development Tasks
      • Add-on APIs
      • Add-on Guidelines & Requirements
    • Building CLI Plugins
    • Developing Buildpacks
    • Dev Center
  • Accounts & Billing
  • Troubleshooting & Support
  • Integrating with Salesforce
  • Add-ons
  • All Add-ons
  • AppDynamics
AppDynamics

This add-on is operated by AppDynamics

Monitor & manage complex applications to identify and resolve performance issues

AppDynamics

Last updated October 09, 2019

The AppDynamics add-on is currently in beta.

Table of Contents

  • Supported languages
  • Provisioning the add-on
  • Configure AppDynamics agent
  • Monitoring and logging
  • Dashboard
  • Troubleshooting
  • Removing the add-on
  • Support and Feedback

The AppDynamics application performance management add-on is a technology solution that provides end-to-end business transaction centric management of the most complex and distributed applications. Auto-discovered transactions, dynamic baselining and code-level diagnostics ensure rapid issue identification and resolution to maintain an ideal user experience.

The AppDynamics add-on lets you:

  • Have complete visibility of distributed applications with auto-discovered end-to-end business transactions.
  • View a dynamic performance baseline to alert and address emerging issues in context of business transactions.
  • Quickly isolate and resolve production application performance issues at code-level depth with minimal overhead.
  • Monitor applications with minimal overhead.
  • Resolve application issues quickly for exceptional end-user experience.

Supported languages

The AppDynamics add-on is available for these supported agent languages and frameworks:

  • NodeJS

Provisioning the add-on

AppDynamics can be attached to a Heroku application via the CLI:

A list of all plans available can be found here.

$ heroku addons:create appdynamics
-----> Adding appdynamics to sharp-mountain-4005... done, v18 (free)

Installing the add-on would provision a AppDynamics license and automatically creates

  • AppDynamics Account
  • Adds AppDynamics link to your add-ons list in Heroku UI
  • Email customer with a welcome email from AppDynamics

Configure AppDynamics agent

After installing add-on, configure AppDynamics agent for your specific language or framework

NOTE: AppDynamics is currently supporting only NodeJS agent on Heroku. Other language agents support would be added shortly.

NodeJS Agent

  1. Modify the package.json file of your application to add appdynamics dependancy. This will download the appdynamics agent on the target dyno.

NOTE: Use nodejs agent version prior to v4.1.8

   "dependencies": {
     "appdynamics": "4.1.0",  // specify a valid version number
     "<dependency>": "<version>"
  },
  1. Paste the following require statement in the landing page of your application. Replace the variables with the values for your setup. See Advanced Instructions to know significance of each setting. This require statement enables the agent and controller communication.
  require("appdynamics").profile({
  controllerHostName: '<controller host name>',
  controllerPort: <controller port number>,
  controllerSslEnabled: true,      // Set to false if controllerPort is not SSL enabled
  accountName: '<AppDynamics_account_name>',
  accountAccessKey: '<AppDynamics_account_key>', //required
  applicationName: '<your app name>', // Enter a name for your application
  tierName: '<choose tier name>',   // Enter custom defined tier name
  nodeName: '<choose node name>',   // Enter custom defined node name
 });

Get the controllerHostName, accountName and accountAccessKey by clicking on Controller Login Info button on AppDynamics Account Page AppDynamics Account Page For Heroku customers, if your controller is over HTTPS, the controllerSslEnabled value will be true and the controllerPort value will be 443. AppDynamics recommends that you insert the AppDynamics require statement as the very first line of your application source code, before any other require statement. Or, if your first line of code is a require statement of another script that contains the require(“appdynamics”) call before any other require()s, that works too. This is a sample require statement

  require("appdynamics").profile({
  controllerHostName: 'sharp-mountain-4005.saastest.appdynamics.com',
  controllerPort: 443,
  controllerSslEnabled: true,  // Set to true if controllerPort is SSL
  accountName: 'sharp-mountain-4005', // Required for SaaS accounts
  accountAccessKey: 'abcd1234', // Required for SaaS accounts
  applicationName: 'SampleHerokuApp',
  tierName: 'SampleNodejs-webtier',
  nodeName: 'SampleHeroku-dyno',
  });
  1. Save these changes and push the changes to your remote heroku branch
$ git add .
$ git commit -m "{message}"
$ git push heroku master

Generate traffic for your deployed application. Now lets view the Dashboard to check the performance of your application

Monitoring and logging

AppDynamics activity can be observed within the Heroku log-stream

$ heroku logs -t | grep 'appdynamics'

Dashboard

The AppDynamics Controller dashboard allows you to monitor performance of your application. This can be accessed in two ways.

  1. Using Heroku toolbelt command
  $ heroku addons:open appdynamics
  Opening appdynamics for sharp-mountain-4005
  1. Using Heroku Dashboad
    • From Heroku dashboard, select the application which has AppDynamics add-on installed and configured.
    • In Resources tab, from the list of add-ons, select AppDynamics icon. You will be redirected via SSO to your AppDynamics account.
    • Click Launch AppDynamics button to open AppDynamics controller.

In the controller, select the application you instrumented to check the performance of your application

Troubleshooting

For resolving issues related to the agent installation,

  • NodeJS

Removing the add-on

Before you uninstall AppDynamics add-on, remove the settings for AppDynamics agent.

NodeJS Agent

  1. Modify package.json file of your application to to remove appdynamics dependency.
     "dependencies": {
       "appdynamics": "4.1.0",  // Remove this statement
       "<dependency>": "<version>"
   },
  1. Remove require(“appdynamics”) statement from the landing page of your application.
   require("appdynamics").profile({ });  // Remove this statement
  1. Finally, remove the appdynamics add-on from your heroku application using the heroku toolbelt command > warning > This will destroy all associated data and cannot be undone!
 $ heroku addons:destroy appdynamics
 -----> Removing appdynamics from sharp-mountain-4005... done, v20 (free)

Support and Feedback

All AppDynamics support and runtime issues should be submitted via one of the Heroku Support channels. Any non-support related issues or product feedback is welcome at

  • Click here to file support ticket with AppDynamics

  • Click here to join AppDynamics community discussions for feedback

Keep reading

  • All Add-ons

Feedback

Log in to submit feedback.

Ziggeo Application Portfolio Manager

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Podcasts
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing

Subscribe to our monthly newsletter

Your email address:

  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Heroku Podcasts
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Facebook
  • Instagram
  • Github
  • LinkedIn
  • YouTube
Heroku is acompany

 © Salesforce.com

  • heroku.com
  • Terms of Service
  • Privacy
  • Cookies
  • Cookie Preferences