Life360 インタビュー
2016年3月23日筆者: Brian Brazil
Prometheus ユーザーへのインタビューシリーズの第1回です。今回は、Life360 の Daniel 氏に、Prometheus の評価と使用経験について伺います。
ご自身と Life360 について教えていただけますか?
私は Daniel Ben Yosef、別名 dby と申します。Life360 のインフラストラクチャ エンジニアをしており、それ以前は 9 年間、システム エンジニアリングの役割を担っていました。Life360
Life360 は、家族がつながりを保つためのテクノロジーを作成しており、私たちは家族のためのファミリーネットワークアプリです。私たちはこれらの家族をサポートするために非常に忙しく、ピーク時には 7,000 万人の登録家族に対して、1 分間に 70 万件のリクエストを処理しています。
本番環境では約 20 のサービスを管理しており、そのほとんどがモバイルクライアント(Android、iOS、Windows Phone)からの位置情報リクエストを処理しており、ピーク時には 150 を超えるインスタンスに分散しています。冗長性と高可用性が私たちの目標であり、家族が私たちの可用性を信頼しているため、可能な限り 100% の稼働時間を維持するよう努めています。
MySQL マルチマスタークラスターと、常に約 4TB のデータを持つ 12 ノードの Cassandra リングの両方にユーザーデータを保持しています。Go、Python、PHP で記述されたサービスがあり、Java をスタックに導入する計画もあります。サービスディスカバリには Consul を使用しており、もちろん Prometheus セットアップもこれと統合されています。
Prometheus導入前のモニタリング経験について教えてください。
Prometheus に切り替える前の私たちのモニタリングセットアップには、次のような多くのコンポーネントが含まれていました。
- Copperegg (現 Idera)
- Graphite + Statsd + Grafana
- Sensu
- AWS Cloudwatch
主に MySQL、NSQ、HAProxy を使用しており、上記で言及したすべてのモニタリングソリューションは非常に断片的で、実際にすべてを連携させるには多くのカスタマイズが必要でした。
Prometheusを検討することにした理由は何ですか?
Prometheus に切り替えた理由はいくつかありますが、その一つは、単純により良いモニタリングが必要だったことです。
Prometheus は以前から知っており、活発な開発状況を追跡・調査していました。そして数ヶ月前、本番環境での使用を評価し始めようと決定しました。
PoC の結果は信じられないほどでした。MySQL のモニタリングカバレッジは素晴らしく、Cassandra の JMX モニタリングも非常に気に入りました。これは以前は非常に不足していました。
どのように移行しましたか?
最初は比較的小さなマシン(メモリ 4GB)から始めました。少数のサービスには効果的でしたが、私たちの完全なモニタリングニーズには対応できませんでした。
当初は Docker でデプロイしていましたが、徐々に r3.2xl インスタンス(RAM 60GB)の専用マシンに移行し、現在では 30 日間のインメモリデータとともに、すべてのサービスモニタリングニーズに対応しています。
Node Exporter を使用してすべてのホストを徐々に導入し、Grafana グラフを構築していきました。これにより、サービス全体を完全にカバーできるようになりました。
長期ストレージのために InfluxDB を検討していましたが、最近の動向により、これはもはや有効な選択肢ではないかもしれません。
その後、MySQL、Node、Cloudwatch、HAProxy、JMX、NSQ(独自のコードを少し追加)、Redis、Blackbox(認証ヘッダーを追加するために独自の貢献をしました)のエクスポーターを追加しました。
切り替え以降、どのような改善が見られましたか?
まず、可視性とインストルメンテーションの向上が見られました。切り替える直前に Graphite のスケーラビリティの問題に直面しており、Graphite のインプレースメントとして、ステークホルダーが引き続き Grafana をモニタリングツールとして使用できることは非常に価値がありました。現在では、そのすべてのデータを使用して異常を検出し、最終的には Alert Manager のアラートにすることを重視しています。
Life360 と Prometheus の将来について、どのようにお考えですか?
現在、プロジェクトの 1 つは Python ベースのサービスで、Prometheus クライアントで直接インストルメントされています。新しいサービスを構築していくにつれて、Prometheus はインストルメンテーションの主要な選択肢となり、インフラストラクチャに関する非常に有益なアラートと統計情報を取得するのに役立ちます。
プロジェクトとともに成長し、貢献を続けていくことを楽しみにしています。
Daniel さん、ありがとうございました!Life360 のダッシュボードのソースは Github で共有されています。


