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
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
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!