ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
Power and Performance APIでトレンドを特定する
カスタムチームダッシュボード、バグレポートシステム、その他Power and Performance MetricsやDiagnostics APIのカスタムワークフロー内で、Appのパフォーマンスメトリクスを追跡しましょう。XcodeでPower and Performance分析ツールを動かすのと同じデータにアクセスし、すばやくトレンドと回帰を特定する、その方法をお伝えします。コールスタックツリーを含む診断的シグネチャーとログを活用し、デバッグ問題を最優先する方法をお知らせします。このAPIをあなたの開発チームが現在持っているツールに統合させ、問題のトラブルシュートをより早く、Appユーザーに全般的なより良いパフォーマンスを提供する方法もお伝えします。
リソース
関連ビデオ
WWDC22
WWDC21
WWDC20
-
ダウンロード
こんにちは WWDCへようこそ “Power and Performance APIで トレンドを特定する” 私はAppleのパフォーマンスツールエンジニアの アシシュです 後ほどヤノと交代します パワーおよびパフォーマンスデータを 取得するための 新しいApp Store Connect APIについて ご紹介できることをうれしく思います 優れたアプリケーションの構築において 開発者が良い仕事をすることは ユーザの全体的なソフトウェア エクスペリエンスに不可欠な要素です 優れたユーザエクスペリエンスを確保する上で 最も重要な2つの点は アプリケーションのパワーと パフォーマンスによる影響を 最適化することです Appleではお客様が重視するべき領域を 簡単に特定できるように 実践的なツールを提供することに 尽力してきました 昨年のWWDC 2019では すぐに使用できるパワーおよび パフォーマンスアナリティクス用に Xcode 11内で新機能を導入しました Xcode Organizerは 集約されたパワーパフォーマンス I/Oメトリクスを表示でき アプリケーションで改善するべき 領域の特定をサポートします そのリリース以来 同じXcodeデータにプログラムでアクセスしたい 旨の要望を多く受け取りました よくある要望の1つが このデータをお客様独自のアナリティクスや モニタリングパイプラインで 利用できるようにすることでした 今回新しいPower and Performance APIを 紹介することができてとてもうれしく思います このAPIは今年後半にリリース予定の App Store Connect APIの一部です 「Expanding Automation with the App Store Connect API」ビデオを見て App Store Connectの詳細を確認することを 強くお勧めします 新しいAPIによって Xcodeメトリクスおよび診断データに プログラムでアクセスできるため 独自にこのデータを利用することが 可能になります また標準装備で新しく Smart Insights機能を提供しており 労力の追加なしで アプリケーションのパワーとパフォーマンス上の 重点領域を特定できます ユーザがアプリケーションを使用する際 同意済みのデバイスからパワー およびパフォーマンスデータを収集します このデータは弊社のサーバーに蓄積され App Store Connect APIによって 使用可能になります この新しいAPIのデータを使用して 高度にカスタマイズされたアナリティクス パイプラインを構築するだけでなく ダッシュボードを使用して アプリケーションのパフォーマンス モニタリングを自動化することができます ここからは まずこの新しいAPIの簡単な概要と このAPIが提供するデータタイプについて 説明します 次にXcodeのパワーおよびパフォーマンス アナリティクスの基盤となっている 同じ集約データにアクセスする いくつかの例を取り上げるとともに 新しいSmart Insightsについても説明します 最後に ライブデモを提示してサンプルアプリケーション用に 集約メトリクス洞察診断を抽出し 簡単に要約して締めくくります
それではこのAPIの概要を説明します 今年4つの新しい REST APIリソースが使用可能になります それぞれのリソースを見ていきましょう
最初のAPIリソースは アプリケーションのIDを使用して アプリケーションの最新バージョンに関して 集約されたメトリクスと洞察を提供します スマートな洞察はアプリケーションの 重点領域を特定する上で役立ちます 次のセクションでこのデータについて より詳しく見ていきます
2つ目のAPIリソースは 特定のアプリケーションバージョンに関する メトリクスのダウンロードを可能にします このデータを取得するために 特定のアプリケーションバージョンについて App Store Connect APIが 提供するビルドIDを指定する必要があります 次に特定のアプリケーションバージョンについて 最上位の診断シグネチャにアクセスできます これらのシグネチャを使用して 一般的な問題をグループ化できます またわたしたちは 今年の Xcode Organizerに関する話を 確認することをお勧めします そこではXcodeを使用した 同じ診断データへのアクセスについて 詳しく説明しています 最後に根本原因の分析のために 診断シグネチャに対応するログを ダウンロードできます これにはGET要求の一部として 診断シグネチャIDが必要です 新しいAPIを要約すると これら4つのエンドポイントを アナリティクスワークフローに組み入れて 集約されたメトリクススマートな 洞察診断データを使用して アプリケーションのフットプリントを 自動的に追跡できます 次にこれらのAPIエンドポイントによって データおよび洞察を取得する いくつかの例を見てみましょう 最初に集約メトリクスデータを取り上げます アプリケーションのパワー およびパフォーマンスメトリクスデータは それぞれの固有のメトリックと デバイスタイプ別に蓄積されます これらのメトリクスは バッテリー消費起動ディスク書き込みなど Xcode Organizerで使用可能なメトリクスと同じです 新しいAPIはすべてのiPhoneと iPadデバイスグループについて このデータの提供をサポートしています
前に説明したとおり 最新のアプリバージョンに関する 集約メトリクスと洞察の両方を受け取るには アプリケーションIDを付けた 次のようなGET要求を作成する必要があります
これは2つの主要セクションとともに 構造化されたJSON文字列を返します 製品データとして表される 集約メトリクスと洞察の2つです サンプルメトリクスJSONを見てみましょう
ハング率など各メトリックについて JSON構造はユニットなど いくつかのメタデータを含みます ユニットデバイスメトリック それぞれの組み合わせについて JSONには50番目および 90番目のパーセンタイル値が含まれています 最後に最大8つの 最新のアプリケーションのバージョンについて メトリクスサマリーが生成されます この例のJSONが示すようにこのデータを使用して さまざまなメトリクスデバイス パーセンタイルにわたって 高度にカスタマイズされたパワーおよび パフォーマンスアナリティクスを構築できます しかしこれだけではありません 弊社のチームはさらに一歩踏み出し カスタムアナリティクスの必要なしで アプリケーションのパワーおよび パフォーマンスの重点領域を 迅速に特定できるようにサポートしています 新しいSmart Insights機能を ご紹介できることをうれしく思います これらのスマートな洞察は 前に述べたメトリクスデータを使用して アプリケーションの重点領域に 自動的にフラグを立てます これは労力の追加なしで 現場の最上位のアプリケーションの不具合を 追跡したいときに特に役立ちます 現在これらの洞察はメトリック値の低下と上昇に フラグを立てます 洞察のJSON応答には 3つのセクションが含まれています 洞察のために分析されたバージョン不具合の要約 影響を受けるデバイスと パーセンタイルのリストです
サンプル洞察を詳しく見てみましょう 強調表示されたセクションは 識別された不具合の メトリックタイプと要約を示しています これらの要約の文字列を使用して アプリケーションの最上位の 不具合を追跡できます ここに示したとおり アプリケーションの起動時間は 90パーセンタイルの iPhoneユーザにとってのみ悪化しています この洞察によってアプリケーションの パフォーマンスを向上させるために より重点的なアクションを取ることができます ポピュレーションセクションには 影響を受けるパーセンタイルおよび デバイスの詳しい構造リストが含まれています 3番目の部分には 最新のアプリケーションバージョン 比較に使用された前の アプリケーションバージョンのリストなど メタデータが含まれています このセクションの最後の部分で 根本原因分析のための 診断データを見てみましょう 以降の説明はヤノに代わります アシシュありがとう Appleのパフォーマンスツールエンジニアの ヤノです わたしたちはメトリクスとスマートな洞察だけでなく 不具合を詳しく調べる上で役立つ 診断データも提供します パワーおよびパフォーマンス診断には 2つの部分があります 1つは診断シグネチャを使用して 同様の問題をグループ化することです 例えば同じような ディスク書き込み例外は集約されて ディスク書き込みシグネチャを生成します 診断シグネチャを使用して 問題グループ別に根本原因分析を実行できます APIはアプリケーションバージョンで 最も適切な最上位のシグネチャを返し 受け取った最上位のシグネチャとそのIDで より詳しい情報を持つ 関連した診断ログを取得できます アプリケーションパージョンの 最上位のシグネチャを受け取るには App Store Connect APIからの ビルドIDを付けた 次のようなGET要求を作成する必要があります 今年XcodeとAPIの両方から ディスク書き込み診断シグネチャに アクセスできるようになりました 応答ではデータ内に 最上位のシグネチャのリストが含まれ 各シグネチャには 固有のシグネチャIDと属性が含まれています これらの属性から これがディスク書き込み シグネチャの例であること シグネチャ文字列が Xcode UIのコールスタックを表す コールフレームであることがわかります ウェイトは正規化されたシグネチャウェイトで このシグネチャの相対的な重要性を示しています また診断ログを取得するための URLも付いています 見ての通りこのURLには 既にシグネチャIDが含まれています パワーおよびパフォーマンス診断の 2番めの部分は診断ログです ログには個々のデバイスの匿名化された 診断情報が含まれています またプラットフォームOSバージョン デバイスタイプなどの メタデータ情報も含まれています さらにログには 関数コールスタックツリーが含まれており パワーおよびパフォーマンスの 重点領域の原因を把握する上で極めて有効です 診断コールスタックJSON構造は MetricKitと共有されます そのため今年のMetricKitの説明を確認して オンデバイスのパワーおよび パフォーマンス診断について詳しく見てください
診断ログの取得にはシグネチャIDを付けた 次のようなGET要求が必要です これは診断シグネチャ応答で見たものと 同じ種類のURLです 応答には診断ログのリストが含まれており 各ログにはデバイスタイプ OSTバージョンビルドバージョンなどの情報を 備えた診断メタデータが含まれています この例ではディスク書き込み例外イベント についてログが生成されます このログにはコールスタックも付いています 各コールスタックフレームには ローフレームと解析済みフレームの情報 サブフレームのリストが含まれています ルートフレームからサブフレームをたどることで コールスタックツリー構造全体を 横断することができます それではデモを見てみましょう このデモではAPIへの アクセス方法を見ると同時に 今年後半にAPIと共にリリースされる予定の サンプルスクリプトを使用します
このデモの目的を踏まえて 私はMealPlannerという名前の アプリケーションの開発者だと仮定します このアプリケーションは食事を計画し レシピを保存する手助けをしてくれます 最新のリリースでは入力内容とともに 美味しそうな写真を保存できる 新機能を導入しました ここではPower and Performance APIを使用して アプリケーションのユーザが 不具合に遭遇することがないようにします このAPIにアクセスするにはまず APIアクセストークンを生成する必要があります
スクリプトを実行して App Store Connect APIキーを使用して トークンを生成します
このトークンを使用してMealPlanner app IDで perfPowerMetricsリソースにアクセスできます
この応答でわかるとおり洞察および製品データを 説明の際に見たものと 同じフォーマットで取得できます
製品データには多数の集約された メトリクス情報が含まれています
それではSmart Insightsを見て 不具合がないか確認しましょう
洞察の不具合その要約文字列から すべてのiPhoneの50パーセンタイルのユーザで 最新のアプリケーションバージョンにおいて ディスク書き込みの不具合があることがわかります
これを詳しく調べるために診断ログを取得し 例外コールスタックを確認します
まず最新のアプリケーションバージョンの ビルドIDを使用して 最上位の診断シグネチャを要求します
最上位のディスク書き込み シグネチャと関連URLから
そのシグネチャの診断ログを要求します
診断ログ応答には コールスタック情報が含まれています
このコールスタック構造は マシン処理に効率的です
元のコールスタックを確認するために サンプルコードを作成し このスタック情報を解析し プリティプリントします
このサンプルスクリプトは 同じ診断APIリソースに プログラムでアクセスします Enterキーを押すとログから 元のコールスタックを取得します
コール関数フレームを下から確認します
入力内容と一緒に写真を追加する新機能は ディスク書き込みI/Oの負担を 増やすことがわかりました
スタックトレースに従うことで ソースコードの正確な場所に移動し 実装をデバッグして最適化できます
トークンを生成し診断データを取得する サンプルコードは今年後半に APIとともにリリースされます APIアクセスのクイックリファレンスとして サンプルコードを確認してください このデモを要約すると APIを使用して集約されたメトリクスを表示し モニタリングして Smart Insightsを使用してパワーおよび パフォーマンスの不具合を特定することができます
最後に診断データを使用して 問題の根本原因分析を実施します
本日説明したことをまとめましょう
私たちはパワーおよび パフォーマンスのために 新しいApp Store Connect APIを導入しました この新しいAPIによってXcode Organizerと 同じメトリクスおよび診断データに プログラムでアクセスできます またパワーおよび パフォーマンスメトリクスを活用した カスタマイズされたデータ分析および モニタリングシステムを構築できます スマートな洞察を導入することで メトリクスにおける主要な傾向や 不具合を特定することもできます この新しいAPIでお客様が 素晴らしいアプリケーションを 作成してくれることを楽しみにしております ぜひ試して頂きフィードバックを頂けたら うれしく思います ありがとうございました
-
-
4:48 - Get metrics and insights for most recent app versions
GET /v1/apps/{id}/perfPowerMetrics
-
8:19 - Get top diagnostic signatures for released app versions
GET /v1/builds/{id}/diagnosticSignatures
-
9:42 - Get logs for a diagnostic signature
GET /v1/diagnosticSignatures/{id}/logs
-
11:19 - 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
-
12:23 - 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
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。