Observability(可觀察性)は、システムの挙動を理解し、問題を迅速に解決するための技術的基盤として、現代のソフトウェア開発において不可欠な存在となっています。特に、モバイルアプリケーションの性能最適化においては、ユーザーの操作に直接影響を與える要因を正確に把握する必要があります。本記事では、Twitter が Observability を通じて Mobile Performance をどのように改善したか、Open Telemetry と Android での実踐事例を解説します。
Observability は、システムの內部狀態を外部から観測し、その挙動を理解するための技術です。データの収集・分析を通じて、アプリケーションのパフォーマンスやエラーレート、ユーザー行動を深く洞察し、問題の原因を特定・解決します。
Open Telemetry は、観測性を実現するためのオープンソースの標準化ツールキットです。トレーシング、メトリクス、ログの収集・分析をサポートし、多様なプラットフォームやエコシステムに統合可能です。特に、モバイルアプリケーションにおける軽量なトレーシングや耐久性の確保に適しています。
PerfTown は、Twitter が自社で構築した構造化ログシステムで、性能指標を収集するための基盤でした。一方、PCT は、Open Telemetry の概念を基に、モバイルデバイス向けに最適化されたトレーシングシステムです。ユーザー操作をトリガーにし、斷線やアプリ終了時のデータ喪失を防ぐ設計が特徴です。
Twitter は、1.5億DAUを有する狀況で、低スペックデバイスや2Gネットワーク向けの最適化を進めました。ABテストを用いて機能の効果を検証し、ネットワーク遅延や起動時間、プリフェッチコンテンツの最適化に注力しました。しかし、この時期の指標は、DAUや収益といった製品指標に偏り、性能分析の深さに欠けていました。
Twitter は、PCT を開発し、Open Telemetry の概念を基盤としています。このシステムでは、以下の特徴が実現されています。
Twitter は、狀態機械やイベント駆動型の抽象化を導入し、儀表化プロセスを簡素化しました。また、過剰なトレーシングを避けるため、10ms単位の畫面レンダリングなどは追跡対象外としました。
この指標は、ユーザー操作の成功・失敗率を反映し、パフォーマンスと製品指標を統合的に評価します。例えば、高スペックデバイスでは20秒の待機時間も許容されるが、低スペックデバイスでは問題となるため、デバイスごとの基準を考慮する必要があります。
現在、Twitter は自社のツールを廃止し、Open Telemetry などのオープンスタンダードを採用しています。移動デバイスの観測性は継続的に進化し、React Native や Kotlin Multiplatform などのプラットフォームも観測機能をサポートする方向へ進んでいます。
Observability は、モバイルアプリケーションのパフォーマンス最適化において不可欠な技術です。Open Telemetry を活用し、ユーザー中心の観測性を実現することで、アプリケーションの品質とユーザー體験を向上させることができます。技術の成熟度に応じて、継続的な改善と適応が求められ、今後も新たな課題と解決策が生まれていくでしょう。