事例紹介

Datadog は ProfilingManager を使用して、数百万件の詳細なパフォーマンス分析情報を提供

4 分で読了

パフォーマンスの回帰は再現が非常に難しいため、モバイル デベロッパーにとって大きなボトルネックとなっています。ANR 率などのシグナルは、本番環境で発生している問題の種類を示しますが、パフォーマンスの問題を引き起こした特定のコード行を特定するには、これまで徹底的な手動での再現や、推測に基づく試行錯誤が必要でした。

Datadog は Google と協力して、ProfilingManager API(Android 15 以降のデバイスで利用可能)を Real User Monitoring(RUM)プラットフォームと Continuous Profiling プラットフォームに統合することで、この問題を軽減しました。この統合によりデバッグ ワークフローが変わり、デベロッパーは表面的な症状だけでなく、パフォーマンスのボトルネックの背後にある原因を検出できるようになりました。

このシステムレベルの API を活用することで、Datadog は 2026 年 6 月の Datadog 内部データによると、現在、世界中で毎週数百万件の本番環境プロファイルを処理しています。エンジニアリング チームは、本番環境規模のパフォーマンス モニタリングのランタイム オーバーヘッドを低く抑えながら、実際のパフォーマンスを新たなレベルで可視化できます。

ProfilingManager の影響

ProfilingManager は Android 15 で導入されたシステム サービスで、アプリはプログラムでコールスタック サンプル、フィールド トレース、メモリヒープダンプなどのパフォーマンス データを本番環境から直接収集できます。この機能により、エンジニアリング パラダイムは事後対応の手動再現から、事前対応のフィールド分析へと移行します。

AANDDM_DataDog_Quote_01.png

たとえば、Google のコミュニケーション アプリでは、フィールド トレースを使用して、新しい高性能ハードウェアでコールド スタート時間が遅い理由を調査しました。フィールドで収集されたトレースを詳しく調べ、さまざまなデバイスタイプ間でトレースを比較した結果、エンジニアは隠れたスケジューリングの問題を発見しました。バックグラウンドのテキスト読み上げサービスが、アプリの起動時に不必要にプリウォーミングされていたのです。トレースから、このバックグラウンド プロセスがデバイスの最高性能のビッグ CPU コアを独占し、プリウォーミング中にアプリのメインスレッドがスリープ状態になることがわかりました。

Android コードレベルの可視性の課題を解決

ProfilingManager の実装前は、Datadog の Real User Monitoring(RUM)は、ユーザー ジャーニーを評価するために、アプリの健全性とセッションレベルのテレメトリーに重点を置いていました。エンジニアリング チームは、最初の表示までの時間、ANR 率、CPU 負荷、フリーズしたフレームなどの Android パフォーマンス シグナルをモニタリングできました。これらの分析情報は、ネットワーク レイテンシ、タッチイベント、メインスレッドのハングなどの詳細なインタラクションにまで及んでいました。ただし、このデータはフィールドで表面化しているパフォーマンスのボトルネックを効果的に強調していましたが、これらの障害の根本原因を特定するための明確な方法はありませんでした。

AANDDM_DataDog_Quote_02.png

この問題を解決するために、Datadog はパフォーマンスへの影響を最小限に抑えながら、本番環境のデバイスから Android トレースを直接キャプチャできるプロファイリング エンジンを必要としていました。Android Debug API を使用して独自のトレース プロセッサを作成するなど、代替アプローチを評価した結果、チームは ProfilingManager を選択しました。これは、評価したプロファイリング オプションの中で最もパフォーマンスの高いソリューションであり、サンプリングの決定オーバーヘッドを OS にオフロードするためです。

ProfilingManager は、CPU トレース、コールスタック サンプリング、Java ヒープダンプとネイティブ ヒープ プロファイルによるメモリ分析など、幅広い収集方法をサポートしています。これにより、デベロッパーは本番環境ビルドのプロファイリングを行い、トレース ファイルを外部ストレージにアップロードして、Perfetto トレース アナライザ UI で確認できます。SaaS プロバイダとして、Datadog は SDK を介して収集されたこれらのプロファイルをアップロード、可視化、分析し、アプリの健全性の全体像を提供します。

ProfilingManager は、高忠実度のテレメトリーを統合されたオブザーバビリティ API 内に一元化することで、Datadog とそのクライアントが、次の主な技術的利点を活用して、複雑な Android パフォーマンスの回帰を事前対応的にモニタリング、調査、修復できるようにします。

  • 詳細なセッション診断:  ProfilingManager は、OS レベルのトレースデータを直接提供することでデバッグ可能性を高め、システム サービスを使用したカスタム ロギングにありがちな可視性とアライメントの課題を克服します。詳細を確認するには、デベロッパーは Datadog からこれらのトレースをダウンロードして、 Perfetto UIなどの可視化ツールでさらに調査できます。
  • 自動化されたテレメトリー トリガー: ネイティブ システム イベントを活用して、主要な最適化ポイントでトレースの記録を開始することで、Datadog はカスタム収集ロジックを構築する必要性を軽減します。最初のロールアウトではAPP_FULLY_DRAWNシグナルに重点を置いていますが、このオブザーバビリティを拡張して、ANROOM、およびCOLD_STARTトリガーを含める計画がすでにあります。
  • 事前対応型のトレース スナップショット:  ProfilingManager は、システムレベルの Perfetto サービス(traced)と直接連携することで、予測不可能な問題をキャプチャするように設計された事前対応型のバックグラウンド記録モデルを利用します。これにより、デベロッパーはパフォーマンスの異常につながるイベントを正確に可視化し、手動によるインストルメンテーションでは不可能なレベルの分析情報を提供できます。
  • 大規模なボトルネック検出: Datadog は、Datadog のグローバルな顧客ベース全体のテレメトリーを合成して、独自のハードウェア構成と可変ネットワーク環境でのみ発生する回帰を検出できます。
  • システムによるリソースの安定性の確保:  API はサンプリング トレース収集を活用して、パフォーマンスとユーザー エクスペリエンスへの影響が目立たないようにします。
  • デバイス上のデータ管理: ProfilingManager は、プロファイルがアプリに配信される前に、デバイス上の他のプロセスから無関係な情報をフィルタで除外します。これにより、ファイルサイズが最小限に抑えられ、アプリのプロセスに関連するデータのみが提供されます。

毎週数百万件のプロファイルを処理して、実際のアプリを最適化

システムレベルのプロファイリング API をグローバル モニタリング SDK に統合するには、インフラストラクチャの課題を解決する必要がありました。ProfilingManager は非常に詳細なパフォーマンス トレースを生成するため、Datadog エンジニアリング チームは、これらのプロファイルをサーバー側で大規模に解析して分析できるパイプラインを構築する必要がありました。プロファイルの収集に加えて、Datadog は、サンプリング頻度と、アプリに関する有意義な分析情報を生成するのに十分なデータの収集とのバランスを取ることの重要性も強調しています。Datadog は、重要な安定性保護として ProfilingManager の組み込みレート制限に依存しており、過剰なテレメトリー リクエストによってユーザー デバイスに過負荷がかかるのを防いでいます。

チームは、Datadog 独自のネイティブ Android アプリと、早期導入者のアプリを数か月にわたってプロファイリングし、数百万件のプロファイルを収集して、迅速でエラーのない起動エクスペリエンスを実現し、パフォーマンス検出アルゴリズムを改良しました。現在、本番環境の統合は、さまざまな Android デバイスでシームレスにスケーリングされています。

まとめ

Datadog は、Android の ProfilingManager API を統合することで、バックエンド システムとモバイル クライアント アプリケーション間の可視性のギャップを解消しました。Datadog は、デバイスのオーバーヘッドを無視できる程度に抑えながら、毎週数百万件のプロファイルを処理することで、Android デベロッパーが複雑なパフォーマンス バグを即座に診断するために必要なコードレベルの分析情報を提供し、デベロッパーがスムーズなアプリを構築し、Google Play ストアでのアプリのパフォーマンス シグナルを改善できるように支援します。ProfilingManager API をパフォーマンス オブザーバビリティ フレームワークに直接導入するには、ドキュメントをご覧ください。

今後、Datadog は、Android プロファイリング データをコーディング エージェントの第一級の入力として、パフォーマンスのボトルネックを自律的に解決し、検出と修復のフィードバック ループを閉じることを目指しています。Datadog は、Android プロファイリングをデベロッパーが広く利用できるように取り組んでいます。

ProfilingManager を搭載した Datadog Real User Monitoring 機能の使用を開始するには、 Datadog Mobile Real User Monitoringをご覧ください。

執筆者:

続きを読む