
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 November 04, 2021
Table of Contents
AppSignal
The AppSignal Heroku Add-on for Ruby, Elixir, Node.js and JavaScript merges five monitoring tools into one. Gain clear and focused insights when the bits hit the fan.
Feature overview
- Monitoring for:
- Ruby: Capistrano, DataMapper, Delayed Job, Grape, MongoDB, Padrino, Rack, Rake, Resque, Ruby on Rails, Sequel, Shoryuken, Sidekiq, Sinatra, Webmachine, or your own frameworks
- Elixir: Phoenix, Plug, Erlang VM
- Node.js: Express, Node-Postgres, Next.js, Redis, Apollo Server
- JavaScript error tracking: React, Vue, Angular, Ember, Preact, Stimulus
- 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
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
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
and any relevant integrations to your project:
$ npx @appsignal/cli install
You can also skip the automated tool and add @appsignal/nodejs
to your package.json
on the command line with npm
/yarn
:
$ yarn add @appsignal/nodejs
$ npm install --save @appsignal/nodejs
Alternatively, you can manually add the @appsignal/nodejs
package to your package.json
. Then, run yarn install
/npm install
:
// package.json
{
"name": "my-app",
"dependencies": {
"@appsignal/nodejs": "^1.0.0",
"@appsignal/express": "^1.0.0"
}
}
You can then import and use the package in your bundle:
const { Appsignal } = require("@appsignal/nodejs");
const appsignal = new Appsignal({
active: true,
name: "<YOUR APPLICATION NAME>"
apiKey: "<YOUR API KEY>"
});
// ...all the rest of your code goes here!
To auto-instrument modules, the Appsignal module must be both required and initialized 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.
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>"
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.
Tip: Make sure a working Heroku Logplex Logdrain is setup before continuing with this section.
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!