# エラートラッキングツール使ってみた **Rollbar, Sentry, Trackjs, Raygun, Airbrake, errorception, bugsnag** ※1米ドル = 110.987791 円で計算(2018/1/23) todo: http://www.muscula.com/, http://jslogger.com/, https://segment.com/ # Rollbar ![](https://i.imgur.com/NDS7Yrl.png) 使うSDKの選択画面。Reactもあるんだ。って思ったら専用の設定持ったライブラリをyarn addする訳でもなく、JavaScriptと完全に同じようにして使うだけだった・・・ rollbar.jsの公式ドキュメント(https://rollbar.com/docs/notifier/rollbar.js/ )には以下の記述があります。 > Copy-paste the following code into the `<head>` of every page you want to monitor. It should be as high as possible, before any other `<script>` tags. 「<head>内の他の全ての<script>の前に以下のスクリプトを置いてね」用意したReactアプリの方で</head>のすぐ上や<body>内などいろいろ置いて実験しましたが、<head>の真下以外だとうまく動きませんでした。 <script> var _rollbarConfig = { accessToken: "6e1f082533774f678961844e052f2358", captureUncaught: true, payload: { environment: "production" } }; !function(r){function o(n){if(e[n])return e[n].exports;var t=e[n]={exports:{},id:n,loaded:!1};return r[n].call(t.exports,t,t.exports,o),t.loaded=!0,t.exports}var e={};retur(中略) </script> <script>タグ内に書いたjsのエラーはどんな形であれ拾ってくれる模様ですが、**Vuejsのコンポーネント内で起きたエラーは勝手には拾ってくれません**。ちなみにReactでは動きました。 Vuejsでは明示的に`Rollbar.error('this is a error')`などとするか、もしくはindex.htmlに`<script>hoge</script>`みたいなのを書けば試すことができます。 ダッシュボード ![](https://i.imgur.com/21H4Tau.png) ## 料金 https://rollbar.com/pricing/ ![](https://i.imgur.com/RYKNmQx.png) 1エラーあたりの価格は高い順に、 - $0.00041 (0.045円)(ESSENTIAL, 月100Kエラー) - $0.00083 (0.091円)(ADVANCED, 月100Kエラー) FREEプランは"For side projects and hobbies"らしい。 ## ユーザー数 https://rollbar.com/blog/what-we-shipped-in-2017/ 上の記事によると、2017年にユーザー数10万人を超えたらしい。 ## Rollbarが受け取る月間エラー数 https://rollbar.com/blog/what-we-shipped-in-2017/ 上の記事によると、週に数十億イベントらしい。すげえ ## 送信されるパラメーター ![](https://i.imgur.com/HWaHUO0.png) {"access_token":"6e1f082533774f678961844e052f2358","data":{"environment":"production","level":"error","endpoint":"api.rollbar.com/api/1/item/","platform":"browser","framework":"browser-js","language":"javascript","server":{},"uuid":"2fd36e20-0bc5-4435-b5ae-1dfe12bdc676","notifier":{"name":"rollbar-browser-js","version":"2.3.3"},"request":{"url":"http://localhost:8080/supinf","query_string":"","user_ip":"$remote_ip"},"client":{"runtime_ms":4,"timestamp":1516790527,"javascript":{"browser":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36","language":"en-US","cookie_enabled":true,"screen":{"width":1280,"height":800},"plugins":[{"name":"Chrome PDF Plugin","description":"Portable Document Format"},{"name":"Chrome PDF Viewer","description":""},{"name":"Native Client","description":""},{"name":"Widevine Content Decryption Module","description":"Enables Widevine licenses for playback of HTML audio/video content. (version: 1.4.8.1030)"}]}},"body":{"trace":{"exception":{"class":"Error","message":"Error1","description":"Uncaught Error: Error1"},"frames":[{"filename":"http://localhost:8080/supinf","lineno":96,"method":"[anonymous]","colno":13}]},"telemetry":[{"level":"error","type":"error","timestamp_ms":1516790526566,"body":{"message":"Error1","stack":"Error: Error1\n at http://localhost:8080/supinf:96:13"},"source":"client","uuid":"2fd36e20-0bc5-4435-b5ae-1dfe12bdc676"}]}}} ## 不満点 - Vue.jsのコンポーネント内でも特に何をせずともエラーを拾ってほしい - 初期設定時のコード(上にあるコード)を再び見つけられない - ログイン中なのに`Log In or Sign Up` ってヘッダーに表示されて不安になる - `User settings`と`asmsuechan settings`があってわかりにくい(多分個々のユーザーはネームスペースの都合でチーム扱いされてる) ## 感想 簡易版ドキュメントが欲しい。長くてどれが最低限見るべき情報なのか分かりにくい。Vuejsでサクッと動かないのも残念。 フロントエンドはおまけなのかな・・・?という気持ちになるユーザビリティ。 ---------- # Sentry プロジェクト作成画面の雰囲気はRollbarとあまり変わりません。 ![](https://i.imgur.com/SEed0r5.png) こんな画面。 ![](https://i.imgur.com/IgT0SkR.png) 以下の2行を追加するだけです。簡単です。 <script src="https://cdn.ravenjs.com/3.22.1/raven.min.js" crossorigin="anonymous"></script> <script>Raven.config('https://5afd66cabb084c44ae5b63c67ccb2682@sentry.io/272931').install();</script> Raven.jsというのを使っているっぽいですね。なんだこのサムい名前のライブラリは!と思ったらSentryさんのJS SDKでした。 https://github.com/getsentry/raven-js Rollbarと同じように、Reactでは普通にどんなエラーもキャッチできましたが、Vuejsではうまくいきませんでした。 Integrationsページを見ると結構あるように見えるけど、リンクになっていないサービスはIntegrationのドキュメントが存在しない。だから実際は左カラムにある8こだけ(?) ![](https://i.imgur.com/9ZY18Nb.png) ## 料金 https://sentry.io/pricing/ ![](https://i.imgur.com/gHtFxi4.png) 1エラーあたりの価格は高い順に、 - $0.00026 (0.029円)(Team) - $0.00080 (0.088円)(Business) かなり安い。 そしてSentryは一ヶ月の使用量を使い切ったとしてもon-demandで枠を買うことができます。その枠の値段は - $0.00024 (0.027円) で、なかなか良心的な金額です。 Freeプランは"For personal projects and early-stage applications."らしい。 ## Sentryのユーザー数 https://stackshare.io/sentry/how-sentry-receives-20-billion-events-per-month-while-preparing-to-handle-twice-that 上の記事によるとアクティブユーザー10万人以上らしい。 ## Sentryが受け取る月間エラー数 https://stackshare.io/sentry/how-sentry-receives-20-billion-events-per-month-while-preparing-to-handle-twice-that 上の記事によると(ユーザー数のものとリンク同じ)200億らしい。他のサービスと比べてユーザー数に対してエラー数がかなり多いのできっと大きなサービスでの利用比率が他より高い。 ざっくり全部Mediumプランだと月4億円か。すっげ。 ## 送信されるパラメーター ![](https://i.imgur.com/GdoK4tK.png) {"project":"272931","logger":"javascript","platform":"javascript","request":{"headers":{"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"},"url":"http://localhost:8080/supinf"},"exception":{"values":[{"type":"Error","value":"Error1","stacktrace":{"frames":[{"filename":"http://localhost:8080/supinf","lineno":99,"colno":13,"function":"?","in_app":true}]}}]},"culprit":"http://localhost:8080/supinf","extra":{"session:duration":327},"event_id":"a39f1b75523745f6a731a2d329c1e9ce"} ## 不満点 ## 感想 Vuejsでうまく取り扱えない以外特に不満点が浮かばない・・・? ---------- # Track.js やろうとしているサービスと類似のサービス。https://trackjs.com/ 登録したらすぐこの画面になる。シンプルで分かりやすい。 ![](https://i.imgur.com/WayLQFS.png) Vuejsでも追加設定なくエラーがトラッキングできる。良い。 トラッキング画面(Dashboardページ) ![](https://i.imgur.com/GsQI93C.png) リアルタイムで画面が動く機能はないけど、Recentページは新しいエラーがあると`There are 4 new errors. Click to view.`ってやつが出る。コンソール見てみたら15秒に1回ポーリングしてる模様。 メールが頻繁に送られてくる。登録したらCEOから「質問とかフィードバックあったら気楽に教えてね」ってメールが届く。ちょっと好印象。 一日エラーが起こらないと「一日エラー起きないなんておかしいよね!どうしたの!」ってメールが来る。ちょっと面白い。 ![](https://i.imgur.com/KfSra18.png) 各エラーページ ![](https://i.imgur.com/w08TOid.png) ![](https://i.imgur.com/FTix8oK.png) ## 料金 基本的に全て有料プラン。30日のフリートライアルがある。リミットが`event`ではなく`page view`で表してあるのがとても謎。 https://trackjs.com/pricing/ ![](https://i.imgur.com/dtiNf22.png) 1**ページビュー**あたりの価格は高い順に、 - $0.00029 (0.0322円)(Starter) - $0.00004 (0.0044円)(Professional) - $0.0000245 (0.0027円)(Business) ページビューでの価格分けはあんましよくわからんけど多分1ページビュー=1エラーではない。 ## Trackjsのユーザー数 不明 ## Trackjsが受け取る月間エラー数 https://trackjs.com/ トップページのカウンタを見ると、秒間703ずつ増えているので、これで単純計算する。 1822176000/月、つまり月間18億エラーということになる。実際はもう少し少ないと思うが、10億は超えていそう。 ## 送信されるパラメーター ![](https://i.imgur.com/982KeE6.png) {"bindStack":null,"bindTime":null,"column":13,"console":[],"customer":{"application":"","correlationId":"799e9ddc-256d-4870-ab5e-9d8059510021","sessionId":"","token":"0976ba10bc7049b9a49a0490b7dedf6d","userId":"","version":""},"entry":"window","environment":{"age":110,"dependencies":{"trackJs":"2.10.2"},"originalUrl":"http://localhost:8080/supinf","referrer":"","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36","viewportHeight":1049,"viewportWidth":408},"file":"http://localhost:8080/supinf","line":99,"message":"Error1","metadata":[],"nav":[],"network":[],"url":"http://localhost:8080/supinf","stack":"Error: Error1\n at http://localhost:8080/supinf:99:13","timestamp":"2018-01-24T07:53:01.830Z","visitor":[],"version":"2.10.2"} ## 不満点 - 通知先がメール、slack、hipchatの3つしかない。GitHubに自動でissue立てる機能とか欲しい。 - キュー詰まりとかしてたのかもしれないけど、エラーが発生してからSlackに通知されるまで6分かかった。 - 無料プランがない。 - なんかダサい ## 感想 OSSやってるから寄付くれ、みたいなこと書かれてたけど結構渋い。https://github.com/TrackJs ブラウザJSしか提供してないからか、とにかく設定が簡単(設定を見つけるのが簡単)。 アカウントの切り替えが楽。 ![](https://i.imgur.com/XDry2rA.png) とてもいいサービスだなあ! ---------- # Ryagun 今回調べていて初めて知った。ニュージーランド発のサービス。2013年からやってるらしい。40000ユーザーちょい。 https://raygun.com/ 企業向けサービスで、ユーザー登録の時に会社名や役職を入力しなければならない。ドキュメント見る限りだとめっちゃIntegration先多そう。 これを組み込むだけです。 <script type="text/javascript"> !function(a,b,c,d,e,f,g,h){a.RaygunObject=e,a[e]=a[e]||function(){ (a[e].o=a[e].o||[]).push(arguments)},f=b.createElement(c),g=b.getElementsByTagName(c)[0], f.async=1,f.src=d,g.parentNode.insertBefore(f,g),h=a.onerror,a.onerror=function(b,c,d,f,g){ h&&h(b,c,d,f,g),g||(g=new Error(b)),a[e].q=a[e].q||[],a[e].q.push({ e:g})}}(window,document,"script","//cdn.raygun.io/raygun4js/raygun.min.js","rg4js"); </script> <script type="text/javascript"> rg4js('apiKey', 'pSkeng8kMbg00gKoeKaBqg=='); rg4js('enableCrashReporting', true); rg4js('enablePulse', true); </script> ダッシュボードかっこいい。30秒に1回ポーリングしてる。 ![](https://i.imgur.com/e9bDQmN.png) 豊富なIntegration ![](https://i.imgur.com/fClPoM4.png) ## 料金 高い。 https://raygun.com/pricing ![](https://i.imgur.com/UqT0z88.png) 1エラー(イベント)あたりの価格は高い順に、 - $0.000996 (0.111円)(STARTUP) - $0.000749 (0.0831円)(SMALL BUSINESS) ## Raygunのユーザー数 https://raygun.com/about 上のページによると4万人+らしい ## Raygunの受け取る月間エラー数 https://raygun.com/about 上のページによると15億+らしい。儲かってまんな。 ## 送信されるパラメーター ![](https://i.imgur.com/Mlu5rYQ.png) {"OccurredOn":"2018-01-24T10:26:00.117Z","Details":{"Error":{"ClassName":"Error","Message":"Error1","StackTrace":[{"LineNumber":105,"ColumnNumber":13,"ClassName":"line 105, column 13","FileName":"http://localhost:8080/supinf","MethodName":"?"}],"StackString":"Error: Error1\n at http://localhost:8080/supinf:105:13"},"Environment":{"UtcOffset":9,"Browser-Width":865,"Browser-Height":1048,"Screen-Width":1280,"Screen-Height":800,"Color-Depth":24,"Browser":"Mozilla","Browser-Name":"Netscape","Browser-Version":"5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36","Platform":"MacIntel"},"Client":{"Name":"raygun-js","Version":"2.8.3"},"UserCustomData":{"handler":"From Raygun4JS snippet global error handler"},"Tags":[],"Request":{"Url":"http://localhost:8080/supinf","QueryString":{},"Headers":{"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36","Referer":"","Host":"localhost"}},"Version":"Not supplied","User":{"Identifier":"a61ce9e6-7e37-b42b-ffee-15b18fe065e2","IsAnonymous":true,"UUID":"a61ce9e6-7e37-b42b-ffee-15b18fe065e2"},"Breadcrumbs":[{"level":"warning","timestamp":1516789559035,"type":"console","message":"[vue-router] Duplicate named routes definition: { name: \"NotFound\", path: \"*\" }"},{"level":"error","timestamp":1516789559504,"type":"console","message":"[Vue warn]: Error in mounted hook: \"Error: Error1\"\n\nfound in\n\n---> <Team> at /Users/ryouta/src/budgie-ui/src/views/Team.vue\n <App> at /Users/ryouta/src/budgie-ui/src/App.vue\n <Root>"},{"level":"error","timestamp":1516789559505,"type":"console","message":"Error: Error1"},{"level":"info","timestamp":1516789559531,"type":"request","message":"Opening request to http://budgie.localhost.com/api/v1/users/6","CustomData":{"method":"GET","requestURL":"http://budgie.localhost.com/api/v1/users/6"}},{"level":"info","timestamp":1516789559845,"type":"navigation","message":"DOMContentLoaded"},{"level":"info","timestamp":1516789560093,"type":"navigation","message":"Page loaded"}]}} ## 不満点 - 対応は英語のみ - 個人向けプランはない - キュー詰まりかもしれないけど通知がこなかった ## 感想 さすが企業向けとだけあって優秀です。使い勝手は今のところ一番いい。 ---------- # Airbrake https://budgie.airbrake.io Rubyがメインで作られていて、OSSとしてGitHubに上がっている。https://github.com/airbrake/airbrake GitHubと連携しているとエラーが起きたらissueを上げてくれるらしい。有料プランにはデプロイトラッキング有り。 Vue.jsのエラー勝手に拾ってくれない。 Slack通知までの時間は1分以内。 管理画面。30秒に一回ポーリング ![](https://i.imgur.com/A2rZ2As.png) ## 料金 https://airbrake.io/pricing フリープランはなし。30日のトライアルのみ。 ![](https://i.imgur.com/UM3Ebo1.png) 1エラーあたりの価格は高い順に、 - $0.00059 (0.065円)(ESSENTIAL) - $0.00043 (0.048円)(STARTUP) - $0.000299 (0.033円)(GROWTH) ## Airbrakeのユーザー数 数を明言しているページは見つかりませんでしたが、BudgieのプロジェクトIDが170984だったり、自分のユーザーIDが297171である点を考えて10万人は超えていそうです。 ## Airbrakeが受け取る月間エラー数 ちょっと検討がつきませんでしたが、ユーザー数的に10億は超えてるんじゃないかなー、と思います。 ## 送信されるパラメーター ![](https://i.imgur.com/0tCuwYl.png) {"id":"","errors":[{"type":"Error","message":"Error1","backtrace":[{"function":"","file":"http://localhost:8080/supinf","line":95,"column":13}]}],"context":{"language":"JavaScript","severity":"error","notifier":{"name":"airbrake-js","version":"1.0.1","url":"https://github.com/airbrake/airbrake-js"},"windowError":true,"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36","url":"http://localhost:8080/supinf","rootDirectory":"http://localhost:8080","environment":"production"},"params":{},"environment":{},"session":{}} ## 不満点 - Errorsページにある、サイズ変更の効かない左カラムがやたら大きくて邪魔 - フリープランがない(登録時にクレカ必須なの、個人ユーザーは嫌がりそう) - Vue.jsでは動かない ## 感想 各々のエラーにコメントができるのはいいと思った。 ---------- # errorception https://errorception.com/ Rakesh Paiっていうインドのおっちゃんが1人で作ったwebサービス。すげえ。 エラー一覧画面 ![](https://i.imgur.com/yEltwc9.png) グラフ ![](https://i.imgur.com/4tfDNBO.png) ## 料金 https://errorception.com/pricing ![](https://i.imgur.com/7JOJJrI.png) 1エラーあたりの価格は高い順に、 - $0.00033 (0.037円)(Micro) - $0.00023 (0.025円)(Small) - $0.00013 (0.014円)(Medium) - $0.000098 (0.011円)(Large) やすっ ## 送信されるパラメーター ![](https://i.imgur.com/WFfycYY.png) [{"message":"Uncaught Error: Error1","url":"http://localhost:8080/supinf","line":100,"method":"1","column":13,"stack":"Error: Error1\n at http://localhost:8080/supinf:100:13","when":"before","page":"http://localhost:8080/supinf"}] 一番シンプル。 ## 不満点 - Vue.jsをトラッキングしない ## 感想 個人でやってるからだろうが、情報が少ない。 ここのドキュメントは役に立ちそう。 ---------- # Bugsnag https://www.bugsnag.com/ ![](https://i.imgur.com/iy6gYXz.png) エラーの個別画面。見やすい。 ![](https://i.imgur.com/APRSuyk.png) ## 料金 https://www.bugsnag.com/pricing/ ![](https://i.imgur.com/luR6VTx.png) 1エラーあたりの価格は高い順に、 - $0.000193 (0.0212円)(TEAM) - $0.000393 (0.0430円)(PRO) プランによって使える機能が違うので、もはや1エラーあたりの単価の比較にあまり意味はありません。 フリープランがあるのは推せます。 ## Bugsnagのユーザー数 https://www.bugsnag.com/customers/ 上によると、4,000 customersだそうですが、少し下を見ると4,000 engineering teamsと書いています。チーム数なのかユーザー数なのかよくわかりませんがきっとチーム数だと思います。 ## Bugsnagが受け取る月間エラー数 https://www.bugsnag.com/customers/ 上によると300 million errors/day らしいので、一ヶ月で90億エラーになります。 ## 送信されるパラメーター ![](https://i.imgur.com/5YcWMlp.png) {"apiKey":"b1b8b62d3024a52808b68b3262705eeb","notifier":{"name":"Bugsnag JavaScript","version":"4.1.3","url":"https://github.com/bugsnag/bugsnag-js"},"events":[{"payloadVersion":"4","exceptions":[{"errorClass":"Error","message":"Error1","stacktrace":[{"file":"http://localhost:8080/supinf","lineNumber":100,"columnNumber":13,"code":{"98":"","99":" throw new Error('Error1');","100":" //throw new Error('Error2');","101":" "}}],"type":"browserjs"}],"severity":"error","unhandled":true,"severityReason":{"type":"unhandledException"},"app":{"releaseStage":"development"},"device":{"time":"2018-01-24T10:59:38.445Z","locale":"en-US","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"},"breadcrumbs":[{"type":"navigation","name":"Bugsnag loaded","timestamp":"2018-01-24T10:59:38.399Z","metaData":{}}],"context":"/supinf","user":{},"metaData":{"script":{"content":"\n throw new Error('Error1');\n //throw new Error('Error2');\n "}},"request":{"url":"http://localhost:8080/supinf"}}]} ## 不満点 - Vue.jsで動かない - 課金プランが乏しい ## 感想 Raygun並みにダッシュボードが見やすい。Inboxページは良いと思った。 ---------- # その他サービス モバイル用などで実際には使用できないけど一応調べたサービス。蛇足です。 ## Instabug - 使って見たらなんか思ったのと違った。 ![](https://i.imgur.com/RXhYmpQ.png) 右下にてんとう虫のアイコンが出現。 ![](https://i.imgur.com/koPRlNN.png) 自分でレポートするスタイル。 ![](https://i.imgur.com/XIHxuhI.png) ダッシュボードはこんな感じ。ダッシュボードに簡易的なバグ一覧が欲しい。 ![](https://i.imgur.com/KD7dmtn.png) トラッキングツールじゃなくてレポーティングツールでした。 ## App Enlight - 設定(画面)がゴチャゴチャしててわかりにくい ダッシュボードはこんな感じです。設定方法がわからなかったのでエラーは飛ばしていません。 60秒に一回ポーリング。 ![](https://i.imgur.com/5RndH89.png) 設定画面。全体的にレスポンシブ対応頑張ったんだね!って言いたくなる。 ![](https://i.imgur.com/LNM0P5o.png) 設定画面の`Data usage`を見ると You are using: Free Plan Your daily limit: 7200 などと書かれているのに、Planページが見当たらない。 ## crashlytics - トップページがなんか怪しげ ![](https://i.imgur.com/IGFNyww.png) ---------- # 料金比較表 1エラーあたりの料金の比較です。 太字が最高と最低の金額ですが、Trackjsは1エラーあたりではなく1ページビューあたりでの金額なので無視します。 | **サービス名** | **最高** | **最低** | | ----------- | ---------------------- | ------------------------- | | Rollbar | $0.00049 (0.054円) | $0.00014975 (0.0166円) | | Sentry | $0.00029 (0.032円) | **$0.00012475 (0.0138円)** | | ~~Trackjs~~ | ~~$0.00029 (0.0322円)~~ | ~~$0.0000245 (0.0027円)~~ | | Raygun | **$0.000996 (0.111円)** | $0.000749 (0.0831円) | | Airbrake | $0.00059 (0.065円) | $0.000299 (0.033円) | | Bugsnag | $0.000393 (0.0430円) | $0.000193 (0.0212円) | もっとも値段が高いのはRaygunで、もっとも値段が安いのはSentryです。 この表から、料金は1エラーあたり0.02円-0.08円くらいが妥当だと思います。 # ユーザー数やイベント数 | **サービス名** | **ユーザー数** | **月間イベント数** | | --------- | --------------- | ----------- | | Rollbar | 10万人(2017) | 100億くらい? | | Sentry | アクティブユーザー10万人以上 | 200億 | | Trackjs | 不明 | ~18億 | | Raygun | 4万人 | 15億 | | Airbrake | 10万人? | 10億~? | | Bugsnag | 4000チーム | 90億 | アクティブユーザー数の問題かもしれないが1ユーザーあたりのイベント数にばらつきがある。 月間10億イベントだと秒間385イベントくらい。昼夜の時間差考慮なし。ここまで来るとpostgresのチューニングとか考えるべきなんだろうな。`POST: /issues`を分離するとかも。 # 気づき 全体を通した気づき。 - 多言語対応しているサービスがない - 5つのサービスはブログ頑張って書いてる - Trackjsはjsのみなのによく頑張っていると思う - どこもドキュメントがしっかりしている ## 使用感 パッと使った感じの使用感のランキングを作ると、 Raygun=Bugsnag>Sentry=Rollbar>Airbrake>Trackjs の順のようだと思います。 TrackjsはブラウザJSのみのトラッキングツールであるので、Trackjsの機能を一番最初の目標として作って、管理画面はRaygunとBugsnagを目標にするというのが良さそうです。 # 参考リンク 比較ブログがありました。 "The Complete Guide to Error Tracking Tools: Rollbar vs Raygun vs Sentry vs Airbrake vs Bugsnag vs OverOps” https://blog.takipi.com/the-complete-guide-to-error-tracking-tools-rollbar-vs-raygun-vs-sentry-vs-airbrake-vs-bugsnag-vs-overops/ Stackshareでの比較 “raygun-vs-rollbar-vs-sentry” https://stackshare.io/stackups/raygun-vs-rollbar-vs-sentry “sentry-vs-trackjs” https://stackshare.io/stackups/sentry-vs-trackjs ここのprosは仕様を検討する上で役に立ちそう # その他 - Rollbar, Sentry, Airbrake, Bugsnagはサンフランシスコに本拠地がある - もっと小さなサービスでも比較したいけど見当たらなかった - Vue.jsを拾ってくれるのはTrackJSとRaygun - Vue.jsでエラーをうまく拾ってくれない理由→https://github.com/vuejs/vue/issues/5901#issuecomment-309106034 - Qbakaっていう2年前にクローズしたサービスのクローズ通告記事→http://blog.qbaka.com/ onerrorを上書きして自動でエラーをサーバーに投げるのではなく、`qbaka.log(``'``hoge``'``)`みたいに手でログを送信するタイプのサービスでした - さんこうになりそうなぶろぐがあった http://engineer.crowdworks.jp/entry/2016/08/29/111434 - https://frontendmasters.gitbooks.io/front-end-developer-handbook-2018/content/tools/error.html - https://blog.sentry.io/2018/02/16/welcome-lauryn-brown