Androidアプリのログ収集をどうしよう


今開発中のAndroidアプリの行動ログ収集をしようと思います。

経緯

別システムですが開発中の段階から(エラーログはもちろん)、行動ログ収集しておくと社内でも不具合の状況共有、把握、調査が簡単になりました。
なので今開発中のAndroidアプリもそのあたりが簡単になるかもしれないと思い、クラッシュと行動両方のログ収集サービス導入を検討しています。
簡単に調べたものと何を選ぶべきかの整理のメモです。

構成候補

  • 自由 かつ 無料 かつ 簡単 なものを選びたい
  • 構築の技術が他のサービスでも使えたり、Web, Android, iOS 関わらず一元的に見れたり、ツールの使い方を自分たちや運用の方に毎回覚えてもらう必要を無くしたいので できれば技術的・使用感的な意味で汎用的なもの
  • そのまま本番でも使いたい
  • 弱い希望で、オープンソースかつプラガブルでエコシステムが充実してる(途中でもいい)ものをつかいたいなぁ

◎○△✕で表現。

構成 説明 自由 無料 簡単 汎用的 オープン
Fluentd + elasticsearchかそのあたり(自前) サーバー代
Fluentd + Google Cloud Logging わかりやすい説明 有料だしサーバーも必要
外部サービス系 △わりと無料

Fluentd + elasticsearchかそのあたり(自前)

いいところ

  • なんでもあり
  • 外部にログを置けないプロジェクトでもok
  • どこにでも使える。いろいろな所で使えば技術的にも運用時の学習コスト的にも良い

悪いところ

  • fluentd の オフィシャル の 単体 の android の sdk なさそう
  • サーバーの構築運用必要。

Fluentd + Google Cloud Logging

いいところ

悪いところ

  • 安いけど有料かな
  • BigQuery使うのに 別でfluentdの受け口用のサーバーが必要
  • sdk ない
  • まだベータ版

外部サービス

いいところ

  • 導入がすごく簡単
  • 負荷を気にしなくていい
  • ロガーのバグを疑わずにすむ(ことが多いと思う)
  • サーバー不要

悪いところ

  • そのうち有料化されそう
  • 用意された範囲でしか使えない
  • Webまでは考えられてない
  • 外部にデータを預けるのがNGな案件では使えない
  • クラッシュログと行動ログ分かれているものもある
  • 横断的なログを見たい時大変かも
  • いろいろなサービスを使っていると導入、学習コストがかかる

外部サービス

クラッシュレポート

Service
Crashlitics
splunk

行動ログ

Service
Segment わかりやすい説明
Puree わかりやすい説明

今なら

「Fluentd + elasticsearchかそのあたり(自前)」

  • aws の kibana セットの elasticsearch が良さげと教えてもらった
  • もう aws から逃げられなくなってきた ...