五分鐘教你用Rollbar在heroku上debug

為什么heroku上debug這么難?

我們在做項目的時候,有時候在本地運行的好好的,但是部署到heroku的時候就出現錯誤。出錯不可怕,可怕的是不知道錯在哪里,下面的是heroku的錯誤提示,只告訴你"something went wrong"。你要想問然后呢?哦,下面還有行小字,如果你是網站擁有者,你可以查看logs。

那我們用heroku logs 來看下:密密麻麻的一堆,而且這樣的一堆還有好幾頁,雖然其實還是有線索的,但是這樣找效率太低。看的人一臉生無可戀。

我知道你在想:「如果heroku能像localhost一樣直接來個報錯,告訴我們錯誤在哪里就爽了。」

夢想成真——第三方工具來救駕

正是因為有這個需求,所以有不少第三方都在做這樣的工具,比較出名的有Aribrake,功能強大,但是缺點也比較明顯,最基礎的套餐也要49刀一個月,對于還在只是部署個人網站或小型應用網站來說,太貴了。

那有沒有便宜點的,你別說,還真有!那就是我們今天本文的主角:Rollbar,以下是它的三大特點:

1. 免費

簡直業界良心好嗎?免費的方案每月可以有五千條錯誤提示,錯誤記錄保留30天。用于個人網站和普通網站的測試來說完全夠用。

2. 簡單

跟著下面的教程傻瓜式操作,五分鐘包教會。

3.實用

不但在部署不成功會提示,而且在部署成功后,網站在正常運行期間如果出問題的話也會提示。非常方便。

多說無益,請直接打開電腦跟著我操作。

五分鐘教程——配置篇:

Step1 注冊

打開官網https://rollbar.com/ 直接注冊一個賬號。也可以使用你的Github賬號直接登錄。

Step2 新建項目

注冊完成后直接回跳轉到新建項目頁面,如下圖:

記住選中Rails,然后再輸入框內輸入項目名稱,再點擊'continue'。就會進入使用介紹頁面,如下圖:

這一步我們可以把生成的Server-side access token(上圖紅框處)復制下來備用。

提示:這個網頁暫時不要關閉。

Step3 在項目中添加gem 'rollbar'

這時候切換到本地的專案,用atom打開gemfile,添加gem 'rollbar'group :development, :test do之前。

保存Gemfile,然后在iterm中執行bundle install

Step4 配置

順次在iterm中執行下面的代碼:

rails generate rollbar 剛剛復制的access token

heroku config:add ROLLBAR_ACCESS_TOKEN=剛剛復制的access token

rake rollbar:test

執行完成后,你的注冊郵箱應該會收到一封電子郵件,就是最后一句代碼發出測試的反饋信息。

Step5 完成配置

上一步完成之后,我們再回到Rollbar剛剛的網頁。點擊底部碩大的按鈕,下圖紅框處:

然后就會進入控制面板,里面可以顯示heroku的錯誤:

好,到這一步,配置就完成了,以后就能愉快的使用了。下面我們來展示一下到底怎么用。

五分鐘教程——使用篇:

那安裝好了,怎么用呢?其實不用做額外的操作,一旦本地或者heroku上發生錯誤,Rollbar會自動給你發郵件提示。然后根據具體的錯誤信息debug就行了。

為了演示這個效果,我直接把我的項目的首頁的index.html.erb給刪了。來看看Rollbar會怎么給我提示。

Rollbar雖然主要用來在heroku上debug,但是在development環境下出現的錯誤也是會提示的。我們下面就分成兩部分來看:

本地錯誤提示

剛剛人為設置好沒有首頁的錯誤之后,開rails s,地址欄輸入localhosts:3000,直接會報錯如下:

同時Rollbar會給我發一封郵件,也是一樣的錯誤

點開上圖鏈接后會進入詳情界面,如下圖,上面的紅框提示開發環境是development,下面的紅框是詳細的報錯信息。

是不是和本地debug報錯信息一樣的豐富?但是你會說,這不是多此一舉么?本地本來就有報錯信息啊?是的,如果只是在本地的話,確實沒必要使用為的工具。但Rollbar的真正作用是在heroku上面遇到錯誤也會給詳細提示,咱們接著看。

Heroku錯誤提示

本地雖然出錯了,但是我不管不顧還是push到heroku上面了,然后打開heroku項目網址一看,什么情況?怎么不提示錯誤呢?而且首頁怎么加載的這么慢?十幾秒過去了,還是一片空白。

這時候,我的手機“叮”了一聲,一看是郵箱收到Rollbar的錯誤提示郵件了。頓時熱淚盈眶有沒有!

我們來看看錯誤詳情,這次注意紅框處變成了production,也就是生產環境。報錯信息也非常的豐富,和本地相比幾乎沒差別。是不是很完美!

總結

避免Heroku上出現bug的最好的思路應該是這樣:

首先,保證在本地測試的時候一定要完整無bug。

其次,如果本地一切正常,Heroku還是有bug的話,再請Rollbar出馬。

附件:

在寫該文時用到的16格筆記和思維導圖。

關于16格比較,你可以參考這篇文章:神奇的三30分鐘讀書法

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容