むらかみの雑記帳

Android とか iOS とかソフトウェア開発に関するネタ帳

スマートフォンアプリのクラッシュログ解析サービス (crittercism と bugsense) を使ってみた

クラッシュログ解析サービスの crittercismbugsense を使ってみたのでその比較。

今まで Android/iOS アプリのクラッシュログ解析は、自前でやっていました。具体的には plcrashreporter を組み込んで、自前の Web サーバにクラッシュログ送って、ファイル保存しておくという方法だったのですが、ログを分類したり、シンボルを復元したりが超面倒なので正直あまり活用できていませんでした。

クラッシュログ解析サービスはいくつかありますが、比較的安価に使えそうな crittercism と bugsense を試用しています。 どちらも、クラッシュが発生したログを取得してサーバに送り、スタックトレースなどの情報をブラウザで閲覧することができます。

実際使ってみると超便利です。もうこの手のサービスなしでは生きていけません。

大量にログがでたら見るのが大変じゃないか、と思うかもしれませんが、同じ内容のクラッシュだったら1つにまとめてくれるのでその点はあまり心配ありません。

以下、参考にさせてもらった記事です。

アプリへの組み込み

アプリへの組み込み方は、crittercism, bugsense ともにほとんど同じです。ライブラリ・フレームワークをアプリに追加し、初期化コードを一行追加するだけ。Android の場合は permission を若干追加する必要がある程度です。初期化コードには、アプリに割り当てられた ID をセットしておきます。

これだけです。簡単ですね!

なお、Android で proguard を使う場合は、以下の一行を proguard の設定ファイルに書いておくと良いです。これがないと行番号がわからないので解析が難しくなります。

-keepattributes SourceFile, LineNumberTable

無料プランの比較

crittercism, bugsense ともに無料プランがあります。無料プランに限って言えば crittercism の圧勝という感じです。

  • bugsense の無料プランにはシンボルの復元機能がありません。crittercism は iOS の dSYM復元および Android の proguard 復元の両方ができます。
  • bugsense の無料プランは1ヶ月あたり500件までしかログを取得できません。cirttercism は制限なし?

シンボルの復元機能は特に iOS では絶対に必要です。これがないとどこでエラーが発生しているのかさっぱりわかりません。 Android のほうはファイル名と行番号があればいいので必須ではないですが。

またログの上限については 500件/月はたぶん足りないです。リリース直後にバグが発覚して、大量のクラッシュが一度に発生したりするとあっという間に超えてしまいます。

なので、無料プランで行くんだ!という人は crittercism 一択になると思います。

なおどちらのサービスも、無料プランでは機能がかなり制限されています。例えばキャッチした例外のログ取得とか、クラッシュの傾向分析とか、Logcat 取得などです。 ですが、クラッシュログ取得だけなら無料プランで十分なような気がします。

有料プランの比較

有料プランになると若干状況が変わります。一番安いプランに関していうと、crittercism は Premium プランで $24/月、bugsense は Indie プランで $19/月、なのであまり価格差はないように見えます。。。

が、crittercism のほうは「アプリ1個あたり」かつ「100,000ユーザあたり」で $24/月、という点に注意が必要です。例えば、1,000人程度のユーザしかいないアプリでも、10本あれば$240/月になってしまいます。またアプリ一本でもユーザが 1,000,000 人入れば $240/月です。(なおユーザ数が 500以下のアプリは無料の模様)

bugsense のほうはアプリ本数、ユーザ数は関係ないようで、そのかわりログ数が 25,000件/月ということになっています。また、bugsense の INDIE プランは Android の proguard シンボル復元がありませんので、これが必要な場合は $99/月の Enterprise プランにする必要があります。上に書いた通り proguard は別にいいかな、という気もしますが。

なので多少ならお金払っても良いという向きには bugsense のほうがいいかも、、、という気がします。

なお、crittercism の中の人に聞いたところ、アカウント2個作って片方有料プランにし、アプリを分けておくということもできるよ、と言っていました。また相談すれば適切なプランをオファーしてくれるそうなので、交渉次第では安くできるのかもしれません。

その他細かいところ

crittercism のほうは、クラッシュログを Unresolved, Known, Resolved の3種類に分類できます。また、それぞれのログにメモもつけられます。ですので、とりあえずログ解析したらメモ書いて Known にしておけば、仕掛中のものとそうでないのが区別できて便利です。

bugsense のほうは Unresolved, Resolved の2種類しかなくメモもつけられないので、Resolved 以外のが全部混ざってしまい、管理がちょっと面倒かなぁという印象。

サイトの見た目とかは bugsense のほうが好きなんですけどねぇ。

なお、乗り換えは割と簡単にできそうなので、当面は crittercism の無料プランで様子をみようかなと思っています。