Skip Navigation
Show nav
Dev Center
  • Get Started
  • Documentation
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
    • .NET
  • 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
Hide categories

Categories

  • Heroku Architecture
    • Compute (Dynos)
      • Dyno Management
      • Dyno Concepts
      • Dyno Behavior
      • Dyno Reference
      • Dyno Troubleshooting
    • Stacks (operating system images)
    • Networking & DNS
    • Platform Policies
    • Platform Principles
  • Developer Tools
    • Command Line
    • Heroku VS Code Extension
  • Deployment
    • Deploying with Git
    • Deploying with Docker
    • Deployment Integrations
  • Continuous Delivery & Integration (Heroku Flow)
    • Continuous Integration
  • Language Support
    • Node.js
      • Troubleshooting Node.js Apps
      • Working with Node.js
      • Node.js Behavior in Heroku
    • Ruby
      • Rails Support
      • Working with Bundler
      • Working with Ruby
      • Ruby Behavior in Heroku
      • Troubleshooting Ruby Apps
    • Python
      • Working with Python
      • Background Jobs in Python
      • Python Behavior in Heroku
      • Working with Django
    • Java
      • Java Behavior in Heroku
      • Working with Java
      • Working with Maven
      • Working with Spring Boot
      • Troubleshooting Java Apps
    • PHP
      • Working with PHP
      • PHP Behavior in Heroku
    • Go
      • Go Dependency Management
    • Scala
    • Clojure
    • .NET
      • Working with .NET
  • Databases & Data Management
    • Heroku Postgres
      • Postgres Basics
      • Postgres Getting Started
      • Postgres Performance
      • Postgres Data Transfer & Preservation
      • Postgres Availability
      • Postgres Special Topics
      • Migrating to Heroku Postgres
    • Heroku Key-Value Store
    • Apache Kafka on Heroku
    • Other Data Stores
  • AI
    • Working with AI
    • Heroku Inference
      • Inference API
      • Quick Start Guides
      • Inference Essentials
      • AI Models
    • Vector Database
    • Model Context Protocol
  • Monitoring & Metrics
    • Logging
  • App Performance
  • Add-ons
    • All Add-ons
  • Collaboration
  • Security
    • App Security
    • Identities & Authentication
      • Single Sign-on (SSO)
    • Private Spaces
      • Infrastructure Networking
    • Compliance
  • Heroku Enterprise
    • Enterprise Accounts
    • Enterprise Teams
    • Heroku Connect (Salesforce sync)
      • Heroku Connect Administration
      • Heroku Connect Reference
      • Heroku Connect Troubleshooting
  • 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
  • AppSignal APM
AppSignal APM

This add-on is operated by AppSignal B.V.

Five monitoring tools in one. APM for Ruby, Elixir, Node.js and JavaScript.

AppSignal APM

Last updated October 30, 2023

Table of Contents

  • Feature overview
  • Pricing model
  • Installing the add-on
  • Get started
  • More insights by tapping into the Logplex Logdrain
  • Inviting others & receiving notifications
  • Heroku dashboards
  • Deploy markers
  • Migrating between plans
  • Removing the add-on
  • Support

AppSignal

The AppSignal Heroku Add-on for Ruby, Elixir, Node.js Python and front-end JavaScript merges six monitoring tools into one. Gain clear and focused insights when the bits hit the fan.

Feature overview

  • Monitoring for:
    • Ruby: Ruby on Rails, Sinatra, Sidekiq, MongoDB, Sequel, Rake, Capistrano, DataMapper, Delayed Job, Grape, Padrino, Resque, Shoryuken, Webmachine, or any Rack server
    • Elixir: Phoenix, Ecto, Absinthe, Finch, Oban, Tesla, or any Plug server
    • Node.js: Express, Next.js, NestJS, Prisma, Remix, GraphQL, Redis, MongoDB, MySQL, PostgreSQL, Mongoose, Restify, Fastify, Koa.js, Knex.js, or any HTTP server
    • Front-end JavaScript: React, Vue, Angular, Ember, Preact, Stimulus
    • Python: Django, Flask, FastAPI, Celery, Redis, Jinja2, Requests, Psycopg2, Starlette, or any WSGI/ASGI server
  • Error Tracking: Track exceptions, get error alerts, debug and fix them with ease
  • Performance Monitoring: Monitor the performance of your slowest actions and inspect their timeline down to the nanosecond
  • Server Monitoring: Keep an eye on CPU, Disk, Network and more
  • Metric Dashboards: Collect metrics from your apps and chart them on dashboards
  • Anomaly Detection: Avoid surprises and set triggers for anomalies on any metric you’d like
  • Log Management: Use our developer-friendly interface to quickly filter logs and find the right log line

AppSignal application screenshot

Pricing model

AppSignal’s plans are entirely based on the number of requests (web requests and background jobs) we monitor for your app, no matter the number of dynos your app runs on. This can be very beneficial for sites that use many dynos or have a low number of requests on just a single dyno.

As your number of requests grows, AppSignal’s prices go down. Take a look at our plans.

When you send more requests than your plan allows, we temporarily hide insights until you upgrade or your next billing cycle starts. No data is discarded at any time; it’s merely invisible.

(Note: Only the Heroku Add-on works like this; for non-Heroku customers, our relaxed Upgrade Policy applies.)

Installing the add-on

AppSignal can be attached to a Heroku application via the command line:

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

Once AppSignal has been added, an APPSIGNAL_PUSH_API_KEY setting will be available in the app configuration and contain the AppSignal API key. AppSignal uses this to push data to its servers. The key can also be used to generate a config file.

Retrieve the API key using the heroku config:get command.

$ heroku config:get APPSIGNAL_PUSH_API_KEY

Ruby

Install the gem and run the AppSignal installer to send data to AppSignal.

Add the following line to your Gemfile:

$ gem 'appsignal'

Update application dependencies with Bundler:

$ bundle install

Run our installer:

$ appsignal install YOUR_PUSH_API_KEY

Deploy your application to Heroku.

For more details on installation and various configuration options, please refer to the AppSignal for Ruby documentation.

Elixir

If you’re running an umbrella application, see also our umbrella installation guide .

Add appsignal to your list of dependencies in mix.exs. AppSignal requires you to depend on a JSON encoder. You can pick between jason and poison. Our recommendation is to use jason.

# mix.exs
def deps do
  [
    {:appsignal, "~> 2.0"},
    {:jason, "~> 1.1"}
  ]
end

Run mix deps.get.

Run mix appsignal.install YOUR_PUSH_API_KEY

If you use the Phoenix framework, continue with the integrating AppSignal into Phoenix guide.

Deploy your application to Heroku.

For more details on installation and various configuration options, please refer to the AppSignal for Elixir documentation.

Node.js

Run our automated install tool, which will install @appsignal/nodejs to your project:

$ npx @appsignal/cli@latest install

Then change your start command to use --require appsignal.cjs:

// package.json
{
  "commands": {
    "start": "node --require appsignal.cjs app.js"
  }
}

Make sure you use --require appsignal.cjs to both require and initialize AppSignal before any other package.

Deploy your application to Heroku.

For more details on installation and various configuration options, please refer to the AppSignal for Node.js documentation.

Python

Add our package to your requirements.txt file:

# requirements.txt
appsignal

Then install it and run our installer to automatically generate a configuration file for you:

pip install -r requirements.txt
python -m appsignal install

You will need to install additional packages for the different libraries supported by the AppSignal for Python integration. Follow the instructions for your library or framework in our documentation.

For more details on installation and various configuration options, please refer to the AppSignal for Python documentation.

Get started

The AppSignal interface allows you to get all kinds of great insights into your application’s performance. The dashboard can be accessed via the Heroku CLI.

$ heroku addons:open appsignal
Opening appsignal for sharp-mountain-4005...

You can also find the AppSignal interface in the Heroku Dashboard by selecting AppSignal from the Add-ons menu.

More insights by tapping into the Logplex Logdrain

Most of the Heroku-specific features on AppSignal – including catching Heroku-specific errors – require a Logplex Logdrain in order to function.

You only have to setup this logdrain once per application and it will provide data for all features such as errors, dashboards and host metrics.

This will send all of your app’s logs to our endpoint, not just the metrics. Our endpoint only parses the Logplex errors and Postgres/Redis/Host metrics, and ignores the rest of your logs.

$ heroku drains:add "https://appsignal-endpoint.net/logplex?api_key=<push_api_key>&name=<app_name>&environment=<app_environment>"

To see all logs from Heroku from our Log Management feature, follow these instructions in our documentation instead.

Make sure to replace the placeholders (<push_api_key>, <app_name> and <app_environment>) with your AppSignal organization’s Push API key, your app’s name and environment. Make sure your app’s name and environment match exactly with your app’s AppSignal configuration. These values are case sensitive.

You can find your Push API key, app name and environment on AppSignal.com at “App settings > Push & Deploy”. Once the logdrain is set up, errors and dashboards should appear automatically. Additional setup is required for Host Metrics.

Inviting others & receiving notifications

We send an email to the owner of the Heroku app. From there, it’s possible to add additional people as owners or regular users. They can then log in at AppSignal.com. Your plan comes with unlimited users and teams.

Only people signed in through appsignal.com can receive notifications.

Heroku dashboards

AppSignal can automatically create dashboards for tracking Redis/PostgreSQL metrics if you’re on a paid add-on plan for these services.

For more details on AppSignal’s Heroku dashboards, please refer to the AppSignal Heroku Dashboards documentation.

Deploy markers

A deploy marker indicates a change in the deployed version of an application. Deploy markers can be used to group together occurrences of errors and performance issues within a certain time frame (i.e. from when the version was deployed until a newer version was deployed). Deploy markers are also required to enable backtrace links for an app.

When using Heroku with Heroku Labs: Dyno Metadata enabled it will automatically set the revision config option to the HEROKU_SLUG_COMMIT system environment variable. This will automatically report new deploys when the Heroku app gets deployed.

Migrating between plans

Use the heroku addons:upgrade command to migrate to a new plan.

$ heroku addons:upgrade appsignal:medium
-----> Upgrading appsignal:medium to sharp-mountain-4005... done, v18 ($79/mo)
       Your plan has been updated to: appsignal:medium

Removing the add-on

AppSignal can be removed via the CLI.

This will destroy all associated data and cannot be undone!

$ heroku addons:destroy appsignal
-----> Removing appsignal from sharp-mountain-4005... done, v20 (free)

Support

For more information about getting the most out of AppSignal, please refer to our extensive documentation.

We’re just an email away if you have any issues or questions. We’re happy to help!

Keep reading

  • All Add-ons

Feedback

Log in to submit feedback.

Zara 4 Atatus

Information & Support

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

Language Reference

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

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
  • © 2025 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States
  • heroku.com
  • Legal
  • Terms of Service
  • Privacy Information
  • Responsible Disclosure
  • Trust
  • Contact
  • Cookie Preferences
  • Your Privacy Choices