Life360 とのインタビュー

2016年3月23日筆者: ブライアン・ブラジル

これは、Prometheus ユーザーへのインタビューシリーズの第1弾です。Prometheus の評価と使用経験を共有してもらいます。最初のインタビューは Life360 の Daniel 氏です。

ご自身と Life360 の事業内容について教えていただけますか?

私は Daniel Ben Yosef、通称 dby と申します。Life360 のインフラストラクチャエンジニアで、それ以前は過去9年間システムエンジニアの職務に就いていました。

Life360 は、家族がつながりを維持するのに役立つテクノロジーを開発しており、家族向けのファミリーネットワークアプリです。これらの家族に対応するため、非常に忙しく、ピーク時には7000万登録家族に対して1分あたり70万件のリクエストを処理しています。

私たちは本番環境で約20のサービスを管理しており、そのほとんどはモバイルクライアント(Android、iOS、Windows Phone)からの位置情報リクエストを処理し、ピーク時には150以上のインスタンスにまたがっています。冗長性と高可用性を目標とし、家族が私たちを信頼して利用できるため、可能な限り100%の稼働時間を維持するよう努めています。

ユーザーデータは、MySQL のマルチマスタークラスターと、約4TBのデータを保持する12ノードの Cassandra リングの両方に保持しています。Go、Python、PHP で書かれたサービスがあり、Java をスタックに導入する計画もあります。サービスディスカバリーには Consul を使用しており、もちろん Prometheus のセットアップも Consul と統合されています。

Prometheus 導入以前の監視経験について教えていただけますか?

Prometheus に切り替える前の監視設定には、以下のような多くのコンポーネントが含まれていました。

  • Copperegg (現在は Idera)
  • Graphite + Statsd + Grafana
  • Sensu
  • AWS Cloudwatch

私たちは主に MySQL、NSQ、HAProxy を使用しており、上記の監視ソリューションはすべて非常に断片的で、実際にすべてを連携させるには多くのカスタマイズが必要であることがわかりました。

Prometheus を検討することにしたのはなぜですか?

Prometheus に切り替えた理由はいくつかありますが、その一つは、単純により良い監視が必要だったということです。

Prometheus は以前から知っており、活発な開発状況を追跡し、情報を読んでいました。そしてある時点(数ヶ月前)で、本番環境での使用を評価することにしました。

PoC の結果は素晴らしいものでした。MySQL の監視範囲は驚くほど広く、これまで非常に不足していた Cassandra の JMX 監視も気に入りました。

Cassandra Client Dashboard

どのように移行しましたか?

最初は比較的小さなボックス(メモリ4GB)を初期地点として始めました。少数のサービスには効果的でしたが、私たちの完全な監視ニーズには対応できませんでした。

当初は Docker でデプロイしましたが、ゆっくりと r3.2xl インスタンス(60GB RAM)上の専用ボックスに移行し、それが30日間のインメモリデータを保持するすべてのサービス監視ニーズをカバーしています。

Node Exporter を使用してすべてのホストを徐々に導入し、Grafana グラフを構築し、完全なサービスカバレッジを実現しました。

長期保存のために InfluxDB も検討していましたが、最近の動向により、これはもはや実行可能な選択肢ではないかもしれません。

その後、MySQL、Node、Cloudwatch、HAProxy、JMX、NSQ(一部自社コード)、Redis、Blackbox(認証ヘッダー追加に貢献)のエクスポーターを追加しました。

NSQ Overview Dashboard

切り替えてからどのような改善が見られましたか?

まず目にしたのは、可視性と計測の向上でした。切り替える直前に Graphite のスケーラビリティの問題を経験し始めており、Graphite の代替として、関係者が Grafana を監視ツールとして引き続き使用できることは、私たちにとって非常に価値がありました。現在、私たちはそのすべてのデータを活用して異常を検出し、最終的には Alert Manager でアラートとして機能させることに注力しています。

Life360 と Prometheus の将来はどうなると思いますか?

現在、私たちのプロジェクトの1つである Python ベースのサービスは、Prometheus クライアントによって直接計測されています。新しいサービスを構築するにつれて、Prometheus は計測の頼りになるツールとなり、インフラストラクチャに関する非常に意味のあるアラートと統計情報を得るのに役立つでしょう。

私たちはプロジェクトと共に成長し、貢献し続けることを楽しみにしています。

Daniel さん、ありがとうございました!Life360 のダッシュボードのソースは Github で公開されています。