Restart heroku dyno on Error
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
test
Gemfile
Gemfile.lock
Procfile
README.md
Rakefile
app.json
web.rb

README.md

heroku-dyno-restarter

Restart heroku dyno on Error

There are schneems/puma_auto_tune or schneems/puma_worker_killer, but they does not work as intended on Heroku. (See https://github.com/schneems/get_process_mem/issues/7.)

So, We need another approach (for now).

Concept

Heroku: R14 Error - Memory quota exceeded log

Papertrail | Add-ons | Heroku and send alert via webhook

heroku-dyno-restarter (this repo)

Restart web dyno via api (heroku ps:restart web.x)

Usage

Heroku Button

Press this button to deploy this app using your heroku account:

Deploy

You will be asked to fill in a name for the app. Something like "my-company-dyno-restarter".

You will also be asked for your heroku api key. You can get this key here: https://dashboard.heroku.com/account#api-key

Papertrail alert and webhook

After deploy by Heroku button above, fetch your heroku-dyno-restarter app's token.

heroku config:get APP_API_TOKEN -a <your heroku-dyno-restarter app name>
  1. Remember the token.
  2. Set your papertrail's alert for your target app.
  3. Set webhook URL: https://.herokuapp.com/webhook?token=<APP_API_TOKEN>

papertrail's webhook

Configuration

Heroku Dyno Restarter will try to guess your app's name based on the papertrail alert. To override this guess, you can set SOURCE_APP_NAME:

heroku config:set SOURCE_APP_NAME=my-company-app -a <your heroku-dyno-restarter app name>

Test

bundle exec rake