Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
130 lines (106 sloc) 7.14 KB

Step-to-Rails-Expert.rb 第8回

本日の流れ

  • 自己紹介
  • 本編
    • 議論
    • 議題が終了した場合はフリートーク&もくもく
  • 締め
    • 次回のテーマリクエスト・感想等(あれば)

参加者のお名前(時計回り)

内容

  • お名前(ハンドルネーム・本名どちらでもOK)
  • 普段やっていること
  • 今日聞きたいこと、意気込みなど
  • 差し支えなければ所属など

自己紹介

  • ebi(@ebihara99999)(主催者) LICTOOR株式会社のwebエンジニア。普段はRubyやRailsを使っています。 感想: 色んなサービスの比較や感想が聞けてよかった。

  • two_sann(スタッフ) @two_sann 社内でRails使ったシステムをメンテしてます。

  • 秒速@284km(湯島にあるフィードフォースという会社でサービス作ってます) エラー通知周りは今後必要になってくるのでいろいろききたい。

  • 神速 @sinsoku

    • 表参道にある株式会社groovesで Forkwell というサービス作ってます
  • kuntao(ishiyama)さん@_iamkuntao

    • rollbarを使っている
    • cloudwatch logsに流してmackerelで見る
    • Ruby会議行くんですがだれか現地で話してください。。。
  • tk_hamaguchi @tk_hamaguchi

  • hidenori *今日新百合ヶ丘に移転したルートレックネットワークスでIot系の開発してます。http://www.routrek.co.jp/

�議論内容(テーマ: エラー通知)

LT

  • sentry課金上限が決められる
  • sentry yearlyのプランもある(yearlyでも月ごとの支払いでありがたい!)
  • sentryも自前で立てられる
  • sentryページ遷移の履歴が見える(turbolinks使用時のjsのエラー解析が楽)
  • 環境について
    環境分けの機能はだいたい付いている。Airbreadはjsのエラー通知のために通常プロジェクトとjsプロジェクトを分けなければいけない
  • sentry と airbrake エラー内容でグルーピングされるかされないか。タグがつけられる(ブラウザや回数など) sentryにはgithubのソースに飛ぶ機能はない
  • sentry
    • sentryはreactのpropsのデータまで見える?
    • 定期リリースするなら、リリースごとの管理ができる(バグとバージョンで管理)
    • ie8をフィルターしたり、クローラをフィルタリングしたり管理画面でできるので便利
    • n日間再発生しなかったら解決するということもできる
    • issue見た人のアイコンが出るので誰がスルーしたら分かる。「あの人見たのに直してない」みないなことがあるw

Rollbar

共有事項

  • 無料枠は3000(通知するエラー件数)
    → 公式サイトでは5000になっている。herokuだから?
  • Person tracking便利そう!
    アプリソースに変更を加えることなくエラー通知内容にcurrent_userの内容を加えてくれる
  • 便利: スタックとレースからgithubのソースに飛べる

質問・疑問

  • Uncaught exceptionsは自動的に通知されるが、caught exceptionsはどういうエラーを通知すべきか。Rollbarの�文脈にかかわらず一般的に、どのような種類のエラーを通知すべきか。

    • 外部サービスの疎通など(5回起きたら)
    • カスタムエラーを定義しておいて、それ以外のエラーを拾ったら通知する
    • 継承しているエラークラスを一覧化して、どのエラーは通知するかチェックする
    • 無視して良いエラー(URL直うちの404など)。サービスではなくアプリ側で扱う必要あり
    • エラーはrambulanceに寄せて、エラーページは分けて置いておいた方が良い(プロダクトのソースがエラーページのエラーを起こす可能性) https://github.com/yuki24/rambulance
    • t_wadaさんの資料を読もう!
      https://speakerdeck.com/twada/php-conference-2016
    • controllerのアクションにrescueが書かれているの嫌(modelですべきでは)
    • どこまで正常系でどこまで異常系? validationエラーはcontrollerでrescueしている
    • unique制約は一度sqlを投げてしまうので、例外を拾う方がパフォーマンス的には速い
  • #report_validation_errors_to_rollbarってどういうケースで使うの?

    • jsで本来validationエラーを出ないように設定しているにもかかわらず出すユーザー(jsを切っているユーザー)を知りたいなど?
  • Rollbar.warnRollbar.errorで任意の箇所で通知を行えるが、loggerと一緒に使うのか、片方のみ使えば済むのか。Rollbarはエラートラッキングサービスなので、loggerとは分けるべきか。#logger_with_notification_if_log_level_is_more_critical_than_warningのようなメソッドを作った方が良い?

logger.error(err_msg)
Rollbar.error(err_msg)

みたいなのはまとめておきたいかなと思っています。

  • ステータスをつけて必ず知りたいのであれば通知もすべき。
  • 解決をすべきかどうか
  • 送る内容が必ずしもログと同じではない

Sentry

errbit

  • Airbrake APIを使ったOSSのエラー検知アプリケーション。
    • OSSなのでカスタマイズして運用したい場合は有効。
      ただし運用をしなければいけないのがデメリットではある。

その他愚痴・辛み・知見共有など

  • JS のエラー検知はsource map 対応は必須。
  • 選定にあたっての項目候補(思いつく限り)
    • 対応している言語、フレームワーク。
    • エラーリミット。
    • 月額料金に対しての利用プロジェクト数、ユーザ数
    • 操作性(エラーを切り替えるのは容易?などなど)
    • ログの保存期間
    • 念の為連携できる外部サービスも確認
  • 各サービスのapiラッパーあるとありがたい
    移行が簡単になるのであるとありがたい。誰かGem作って�欲しい!
  • 狼少年のような通知を減らすために、どのような取り組みが有効か教えて欲しい
    時間のため未着手
You can’t perform that action at this time.