Independent Study Spring 2019/Errbit: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 24: Line 24:
   def admin_email
   def admin_email
       return 'expertiza-support@lists.ncsu.edu' if heroku_pr_review_app?
       return 'expertiza-support@lists.ncsu.edu' if heroku_pr_review_app?
     "expertiza-support@lists.ncsu.edu"
     "expertiza-support@lists.ncsu.edu"
   end
   end
Line 46: Line 45:
*Added remote
*Added remote
   heroku git:remote -a  errbit-expertiza2019
   heroku git:remote -a  errbit-expertiza2019
*As errbit needs MongoDB database backend so need to install MongoDB addon in Heroku. We can use heroku command to create addon one.
*As errbit needs MongoDB database backend so need to install MongoDB addon in Heroku. We can use heroku command to create an addon.
   heroku addons:add mongolab:sandbox </br>
   heroku addons:add mongolab:sandbox </br>
   heroku config:add HEROKU=true </br>
   heroku config:add HEROKU=true </br>


   git add . </br>
To periodically clear resolved errors to free up space, With the cron add-on:Install the heroku cron addon, to clear resolved errors daily:
   git commit -m “new creds” </br>
  heroku addons:add cron:daily
   git push heroku master </br>
 
Run the following
   git add .  
   git commit -m “new creds”  
   git push heroku master  





Revision as of 07:00, 8 May 2019

Set up an open-source error monitoring tool instead of Airbrake

Useful links

Github Pull Request

Errbit

Purpose

Errbit has been set-up, replacing the already existing Airbrake API to serve several purposes like :

  • Errbit is a much more powerful monitoring tool
  • Errbit is Airbrake API compliant
  • Store unresolved errors indefinitely without any extra cost.

The Steps taken for the setup

There were several steps taken to set-up Errbit for Expertiza and schedule it to automatically pull changed from its forked branch and deploy:

Setup Heroku

  • Made an account with Email: expertiza-support@lists.ncsu.edu and Password: expertiza2019@


Setup Errbit

  • Fork Errbit from https://github.com/errbit/errbit and follow the steps mentioned on README.md
  • When we run "rake db:seed" it will create an admin user with a random password. We can see these login credential in the console log. But instead, we can provide this username and password explicitly by just making some changes in errbit/db/seed.rb file. Eg:
  def admin_email
     return 'expertiza-support@lists.ncsu.edu' if heroku_pr_review_app?
    "expertiza-support@lists.ncsu.edu"
  end
  def admin_pass
   return 'errbit' if heroku_pr_review_app?
   @admin_pass ||= "errbit"
  end


  • Seed the DB (NOTE: No bootstrap task is used on Heroku!).
 heroku run rake db:seed

Deploy Errbit on Heroku

Took the following steps in the /errbit repository on local machine:

  • Login to Heroku using Herkou CLI from your console
  heroku login
  • Added remote
  heroku git:remote -a  errbit-expertiza2019
  • As errbit needs MongoDB database backend so need to install MongoDB addon in Heroku. We can use heroku command to create an addon.
  heroku addons:add mongolab:sandbox 
heroku config:add HEROKU=true

To periodically clear resolved errors to free up space, With the cron add-on:Install the heroku cron addon, to clear resolved errors daily:

  heroku addons:add cron:daily

Run the following

  git add . 
  git commit -m “new creds” 
  git push heroku master 


Configure Expertiza to point to our deployed Errbit application

  • Create a new app on Errbit
  • Copy it's configuration and place it in the expertiza/config/initializers/airbrake.rb file.
  Airbrake.configure do |config|
 config.host = 'https://errbit-expertiza2019.herokuapp.com'
 config.project_id = 1 # required, but any positive integer works
 config.project_key = '64ed97f0c8e628acefb3a7f63308a11c'
 # Uncomment for Rails apps
  config.environment = Rails.env
  config.ignore_environments = %w(test)
 end



Set up Cron job to regularly pull changes from Forked repository and deploy on Heroku.