Power and Performance APIでトレンドを特定する

https://developer.apple.com/videos/play/wwdc2020/10057/

概要

カスタムチームダッシュボード、バグレポートシステム、Power and Performance MetricsやDiagnostics APIのカスタムワークフロー内で、Appのパフォーマンスメトリクスを追跡する方法について
XcodeでPower and Performance分析ツールの使用方法、データにアクセスし素早くトレンドと回帰を特定する方法について
コールスタックツリーを含む診断的シグネチャーとログを活用し、デバッグ問題を最優先する方法について

新しいApp Store Connect APIについて

優れたUXを確保する上で重要な2点は、
  1. アプリケーションのパワー
  2. パフォーマンス
であり、これらを容易に特定出来るようにXcode11よりXcode Organizerを導入し、集約されたパワーパフォーマンス、I/Oメトリクスを表示でき、アプリケーションで改善するべき領域の特定をサポートする App Store Connect APIにより、収集、診断されたデータを独自に利用することが出来、モニタリングを自動化出来る


  • Smart insights
    • 収集したメトリクスデータを使用して、アプリケーションのパワーとパフォーマンス上の重点領域を特定出来る
      • insightsのために分析されたバージョン不具合の要約
      • 影響を受けるデバイスと比率のリスト
    • 下記で紹介するAPIのresponseに含まれる

アプリケーションのメトリクス、insightsの取得

  • GET request時にはアプリケーションIDが必要
  • 固有のメトリクスとデバイスタイプ別に蓄積されたデータを取得可能
    • バッテリー消費
    • 起動回数
    • ディスク書き込み

特定アプリケーションバージョンに関するメトリクスのダウンロード


App Store Connect APIが提供するビルドIDを指定する必要がある


特定のアプリケーションバージョンについての診断シグネチャ

診断シグネチャに対応するログのダウンロード



GET request時に診断シグネチャIDが必要 コールスタックツリーも含まれており、パワー及びパフォーマンスの重点領域の原因を把握する上で有効



APIの使用方法

  • APIアクセストークンの生成
  • App Store Connect API keyを使用してトークンを生成
// Access perfPowerMetrics for an app
curl -X GET -H "Authorization: Bearer ${JWT}" -H "Accept: application/vnd.apple.xcode-metrics+json,application/json" https://api.appstoreconnect.apple.com/v1/apps/${id}/perfPowerMetrics

// Access diagnosticSignatures for an app build
curl -X GET -H "Authorization: Bearer ${JWT}" -H "Accept: application/vnd.apple.xcode-metrics+json,application/json" https://api.appstoreconnect.apple.com/v1/builds/${id}/diagnosticSignatures
トークンを生成し、診断データを取得するサンプルコードは2020年の後半にAPIとともにリリース予定
最新情報をチェックしよう!