はじめに
GitLab 11.8 で導入された Error Tracking 機能を試してみました。
Error Tracking は、アプリケーションで発生したエラーを発見しやすく・確認しやすくするための機能で、 OSS のエラートラッキングシステムである Sentry と GitLab を連携させることで実現できます。
前提となる環境
- GitLab → https://gitlab.com/ (GitLab.com / Free)
- Sentry → https://sentry.io
- ユーザ登録するところは割愛
- 導入する対象は Rails アプリ
- https://gitlab.com/omae-app/unlock
- (よかったらアプリも遊んでください
)
Sentry にプロジェクトを作成
ここはさらっと。
-
Create Project>Railsを選択します - プロジェクト名とチームを入力して
Create Project
Rails アプリに Sentry をインストール
Gemfile に sentry-raven を追加します。
gem "sentry-raven"
$ bundle
config/application.rb にデータソース名を設定します。
実際には dotenv とかを使って環境変数として設定するのがよいと思います。
Raven.configure do |config|
config.dsn = 'https://xxx@sentry.io/xxx'
end
パラメータとセッション情報を取得するための設定をします。
class ApplicationController < ActionController::Base
before_action :set_raven_context
private
def set_raven_context
Raven.user_context(id: session[:user_id])
Raven.extra_context(params: params.to_unsafe_h, url: request.url)
end
end
Sentry の Auth Token 取得
-
Settings>Account>API>Auth Tokens>Create New Token -
event:readとproject:readにチェックを入れてCreate Token
生成された Token は次で使います。
GitLab から Sentry へ接続
-
Settings>Operations>Error Tracking>Expand -
Activeにチェックを入れます - 各項目を入力して、
Connect- Sentry API URL :
https://sentry.io - Auth Token : 先ほど取得した Auth Token
- Sentry API URL :
- 接続に成功したら、
Projectのドロップダウンから作成したプロジェクトを選択してSave
これで、 GitLab の Operations > Error Tracking からエラーのリストを確認できるようになります。
試しに Sentry から sample event を発生させてみると ↓ の感じになりました。
GitLab で確認できるのはエラーのリストまでで、各エラーの詳細を確認するには Sentry で見る必要があるようです。
Sentry で見てみると ↓ な感じです。
