# エラートラッキングツール使ってみた
**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