Observability と Mobile Performance の進化:Open Telemetry と Android での実踐

はじめに

Observability(可觀察性)は、システムの挙動を理解し、問題を迅速に解決するための技術的基盤として、現代のソフトウェア開発において不可欠な存在となっています。特に、モバイルアプリケーションの性能最適化においては、ユーザーの操作に直接影響を與える要因を正確に把握する必要があります。本記事では、Twitter が Observability を通じて Mobile Performance をどのように改善したか、Open Telemetry と Android での実踐事例を解説します。

技術の定義と基本概念

Observability(可觀察性)

Observability は、システムの內部狀態を外部から観測し、その挙動を理解するための技術です。データの収集・分析を通じて、アプリケーションのパフォーマンスやエラーレート、ユーザー行動を深く洞察し、問題の原因を特定・解決します。

Open Telemetry

Open Telemetry は、観測性を実現するためのオープンソースの標準化ツールキットです。トレーシング、メトリクス、ログの収集・分析をサポートし、多様なプラットフォームやエコシステムに統合可能です。特に、モバイルアプリケーションにおける軽量なトレーシングや耐久性の確保に適しています。

PerfTown と PCT(Production Client Tracing)

PerfTown は、Twitter が自社で構築した構造化ログシステムで、性能指標を収集するための基盤でした。一方、PCT は、Open Telemetry の概念を基に、モバイルデバイス向けに最適化されたトレーシングシステムです。ユーザー操作をトリガーにし、斷線やアプリ終了時のデータ喪失を防ぐ設計が特徴です。

実際の応用と課題

早期のモバイルパフォーマンス最適化(2015年)

Twitter は、1.5億DAUを有する狀況で、低スペックデバイスや2Gネットワーク向けの最適化を進めました。ABテストを用いて機能の効果を検証し、ネットワーク遅延や起動時間、プリフェッチコンテンツの最適化に注力しました。しかし、この時期の指標は、DAUや収益といった製品指標に偏り、性能分析の深さに欠けていました。

面臨した課題

  • 指標の限界:微小な改善の影響を反映できず、ユーザー増加後の新機能検証が困難。
  • 技術的制約:既存のツール(例:Zipkin)がモバイルデバイスに不適切で、軽量かつ耐久性のあるトレーシングシステムが必要。
  • 協業の困難:複數のチームが儀表化を実施する際、マルチスレッドやコンポーネント間の相互作用を考慮する必要がありました。

Observability による変革(2019年)

PCT の構築と Open Telemetry の活用

Twitter は、PCT を開発し、Open Telemetry の概念を基盤としています。このシステムでは、以下の特徴が実現されています。

  • ユーザー操作をトリガーにしたトレーシング:ボタンクリックやページリフレッシュなどの操作を起點に、パフォーマンスを追跡。
  • 軽量かつ耐久性の高い設計:斷線やアプリ終了時のデータ喪失を防ぐため、最小限のリソース使用を実現。
  • インフラとの統合:Tofka、Druid、GCP などの既存インフラと連攜し、データの可視化と分析を可能に。

キーテクノロジーの実現

  • Span と Context:操作フローを追跡し、上下文を関連付けることで、問題の原因を特定。
  • Durable かつ Resilient:ネットワークの不安定さやアプリ終了時のデータ喪失を防ぐ設計。
  • リソース最適化:シリアライズや永続化、ネットワーク使用量を最小化し、低スペックデバイスにも適応。

ユーザー中心の Observability(2022年)

ハイレベルな抽象化と指標の再定義

Twitter は、狀態機械やイベント駆動型の抽象化を導入し、儀表化プロセスを簡素化しました。また、過剰なトレーシングを避けるため、10ms単位の畫面レンダリングなどは追跡対象外としました。

ユーザー操作失敗率(User Operation Failure Rate)

この指標は、ユーザー操作の成功・失敗率を反映し、パフォーマンスと製品指標を統合的に評価します。例えば、高スペックデバイスでは20秒の待機時間も許容されるが、低スペックデバイスでは問題となるため、デバイスごとの基準を考慮する必要があります。

実踐的な成果

  • 特定のアプリバージョンの問題(例:日本市場の予裝問題)を迅速に発見。
  • ユーザー體験の改善とビジネス指標の向上を実現。

現狀と未來展望(2025年)

Open Telemetry の採用と CNCF の役割

現在、Twitter は自社のツールを廃止し、Open Telemetry などのオープンスタンダードを採用しています。移動デバイスの観測性は継続的に進化し、React Native や Kotlin Multiplatform などのプラットフォームも観測機能をサポートする方向へ進んでいます。

ユーザー中心の Observability

  • ユーザー行動に焦點を當てる:アプリケーションのパフォーマンスだけでなく、ユーザーの行動を理解。
  • データ駆動型の意思決定:ユーザー體験とビジネス指標の最適化。
  • 完璧を目指すのではなく継続的な改善:技術の成熟度に応じて、柔軟に適応。

技術的洞察

インスツルメンテーションの設計原則

  • 過剰なトレーシングを避ける:リソース消費を最小限に。
  • 上下文の関連付け:バージョン、デバイスモデル、予裝狀態など、深く分析可能なデータを収集。
  • ユーザー中心の指標:失敗率などの指標が、伝統的なパフォーマンス指標よりもビジネス価値が高い。

Observability の価値

  • 問題発見から解決までのサイクルを短縮:迅速な対応が可能。
  • リスクを低減:継続的な改善により、不確実性を軽減。
  • チーム間の協業を促進:共通のパフォーマンスとユーザー體験目標を共有。

結論

Observability は、モバイルアプリケーションのパフォーマンス最適化において不可欠な技術です。Open Telemetry を活用し、ユーザー中心の観測性を実現することで、アプリケーションの品質とユーザー體験を向上させることができます。技術の成熟度に応じて、継続的な改善と適応が求められ、今後も新たな課題と解決策が生まれていくでしょう。