Railsの
エラーログとの付き合い方
2015-04-17
twitter: @kwhrtsk
blog: http://blog.chopschips.net/
本発表は発表者の所属する企業およびその業務とは
一切関係のない個人の活動です。
Internal Server Error
今日お話するのはこういうハンドリングされて
いない例外のモニタリングの方法です
通知
• メール, HipChat, Slack, IRC etc
• 類似エラーはまとめたい
• 詳細の記録(スタックトレースetc)
Slack: Webhook
How?
• Railsアプリからダイレクトで
• Webサービス
• New Relic
• Airbrake
• Sentry and more
exception_notification
• Rails plugin(gem)
• Notifier
Email, Campfire, HipChat
IRC, Slack, Webhook
exception_notification
# Gemfile
gem ‘exception_notification’
gem ‘slack-notifier’
# config/environments/production.rb
MyApp::Application.config.middleware.use(
ExceptionNotification::Rack,
:slack => {
:webhook_url => ENV["SLACK_WEBHOOK_URL"],
}
)
Webサービス
• New Relic
• Airbrake
• Sentry
• Bugsnag
• Raygun
• Honeybadger
• Rollbar
New Relicはパフォーマンス
モニタリングなども行えます。
多分最も多機能です。
exceptional.ioというのもあったの
ですが、去年Airbrakeに統合され
たようです。
Airbrake
• https://airbrake.io/
• 有償のサービス($39/monthから)
• 30日間のトライアル有り
• OSSのAPI互換プロダクト(Errbit)
# Gemfile
gem ‘airbrake’
% bundle install
% rails generate airbrake --api-key your_key_here
Errbit
• https://github.com/errbit/errbit
• Rails 4.1.8 + MongoDB
• airbrake gemでエラーを投稿
• Slackと連携できる(Webhook)
• Herokuの無料枠での運用も可能
• スタックトレースやリクエストパラメー
タの記録、Issue Trackerへの投稿など
Chefのレシピ書いた
• errbit-server (community cookbook)
• https://github.com/kwhrtsk/chef-errbit-server
• CentOSで動くのが無かったので
• Ubuntu用のは2年くらい更新停止
• https://github.com/millisami/chef-errbit
使い方
# Berksfile (supports CentOS, Ubuntu)
cookbook ‘errbit-server’
% berks vendor cookbooks
% knife node run_list add $NODE_NAME errbit-server
% knife zero chef_client “name:$NODE_NAME” --sudo
http://yourhost.net:3000/
ご静聴
ありがとうございました
予備資料
Slack: Webhook
Slack: Webhook
Slack: Webhook
Slack: Webhook
オンラインデモサイト
• ErrbitのREADMEより
http://errbit-demo.herokuapp.com/
Email: demo@errbit-demo.herokuapp.com
Password: password

Railsのエラーログとの付き合い方