@vividmuimui
2018/02/06 社内LT資料
ざつにいうと、プログラムのエラーを通知したりその詳細を見れたりするサービス
https://docs.sentry.io/
Ruby, C#, JS, Go etc色々対応してます
メールアドレスやパスワードなどがsentry上で表示されないようにするため。
https://docs.sentry.io/learn/sensitive-data/
https://docs.sentry.io/clients/ruby/config/#optional-settings
のprocessorsの項目
railsだと以下のようにすると良いとdocumentにある。
config.sanitize_fields = Rails.application.config.filter_parameters.map(&:to_s)
概ねこれで問題がないが、
railsだと filter_parametersに
email
を登録すればxxx_email
やemail_xxx
もfilterしてくれる。
sentryは email
しかfilterしてくれないので注意。
sentryでもよしなにやってもらうためには/email/
を登録する必要がある。
誰がそのエラーを起こしたかをわかるようにするため。
https://docs.sentry.io/learn/context/#capturing-the-user
デフォルトではIPアドレスが取得されます。
設定する内容としては、
Raven.user_context(id: current_user.id) if
current_user.present?
username
フィールドに入れる必要がある
https://docs.sentry.io/learn/context/#tagging-events
タグはこんな感じでそのエラーがどういう環境で起きたかとかを見れる。
そのエラーでどういう端末・サーバーで起きているのかを割合でみれる
そのタグで起きているエラーを絞込できる
そのエラーが起きた時に追加したい詳細な情報をなんでも詰め込める場所。
https://docs.sentry.io/learn/context/#extra-context
Raven.extra_context(params: params.to_unsafe_h, url:
request.url, request_id: request.request_id)
https://docs.sentry.io/learn/context/
tags, user, extraの3種類ある。
という認識。
https://your-sentry.example.com/sentry/your-project/settings/alerts/rules/
既知のエラーでも1日1回は通知するようにルールを設定する場合はこんな漢字。
https://your-sentry.example.com/sentry/your-project/settings/alerts/
通知のintegration(slackなど)が設定されていると以下のような設定項目が出てくる
該当エラーが一定期間発生しなければresolve、という設定ができる。
https://your-sentry.example.com/sentry/your-project/settings/
古いエラーを溜め込んでしまっても割れ窓っぽくなってしまうので、
勇気を持って見て見ぬふりしていくのも大事そう(プロジェクトやチームの都合によりけり)
該当エラーがどのリリースで発生したのかを特定できるようにするため。
https://docs.sentry.io/learn/releases/
https://docs.sentry.io/clients/ruby/config/
のreleaseの項目
config.release = "xxx"
などで設定できる。
そのリリースでどういうエラーが起きたのか、次回リリースのタイミングでresolve、githubとの連携がうまく行ってればそのコミットのautherやgithubのページへのリンクなどいいこといっぱい
https://docs.sentry.io/learn/cli/send-event/#bash-hook
出来るらしい