ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
CloudKit Consoleを活用したデータベースアクティビティのモニタリングと最適化
CloudKit Consoleの新しいオブザーバビリティ機能をご紹介します。TelemetryとLoggingを使用して、アプリのトラブルシューティングと最適化を行う方法を説明します。アラートを設定してアプリケーションの動作を監視し、通知を設定して重要なコンテナイベントを常時把握する方法を学ぶことができます。 このセッションの内容を十分理解できるよう、CloudKitコンテナの情報を確認しておくことをお勧めします。
関連する章
- 0:00 - Introduction
- 1:24 - Notifications
- 4:06 - Telemetry
- 7:13 - Logging
- 9:26 - Alerts
リソース
関連ビデオ
WWDC22
WWDC20
-
ダウンロード
こんにちは Christopher Wardです iCloudデベロッパ体験チームの エンジニアです
CloudKit Consoleの データベースアプリケーションは CloudKitコンテナ内のデータを検査し データベーススキーマを 管理するためのツールです
今日は新機能や改良された機能をご紹介し CloudKitコンテナに加えられた 重要な変更についての 最新情報をお伝えするとともに アプリがCloudKitを利用する仕組みを 理解できるよう 強力なデバッグツールについても説明します
まず CloudKitコンテナで発生した変更が デベロッパ通知の機能によって どのように通知されるかを見てみます
通知設定を構成することで 通知をチームの CloudKitの使用状況に合わせたものに 維持する方法を紹介します
次に CloudKit Consoleの テレメトリツール内の強力な機能によって アプリによるCloudKitの使用状況を 理解する方法を説明します
さらに CloudKit Consoleのログを見ることで アプリとCloudKitコンテナの やり取りの状況を プライバシーを保護しつつ 調べる方法についても説明します
最後に アプリのテレメトリデータに基づいて カスタムアラートを作成する方法を 紹介します
それにより 指定した基準が CloudKitコンテナで検出された時には 通知を受け取れるようになります
通知を利用すると CloudKitコンテナで発生した 重要なイベントを明確に把握できます 送信される通知には 重要なコンテクスト情報が含められます
そのため これまでよりはるかに簡単に アプリの問題を認識し 解決できるようになります
私はチームのメンバーと一緒に アプリを作っています
私たちのアプリは CloudKitを使って データをiCloudと同期しています
私たちはCloudKit Consoleを使用して スキーマを管理し CloudKitに保存されたデータを 操作しています
では CloudKit Consoleの通知を お見せしましょう CloudKitデベロッパ通知は 画面上部のヘッダにある 通知のベルから確認できます
このベルをクリックすると 送信された通知のリストが表示されます これらの通知は自動的に送信され CloudKitコンテナのステータスと アクティビティに関する最新情報を 最速で受け取ることができます CloudKitデベロッパ通知は さまざまなイベントで利用できます これらの通知はデータベースのアラート スキーマの変更 プロモーション リセット 認可トークンの状態など 常に最新の情報を提供します 通知をクリックすると コンソールの関連セクションに移動し 必要なコンテキスト情報が表示されます
スキーマ変更通知をクリックすると スキーマ履歴ページに移動します コンソールのこの新しいページでは コンテナのスキーマに対する チームの変更の詳細が時系列で表示されます また どの通知を受け取るかや どのように通知を受けるかを カスタマイズすることもできます
では コンソールで どのように通知設定を行うかを 見ていきましょう ユーザーメニューを開き をクリックします
通知セクションをクリックすると 通知を設定するための様々なオプションの リストが表示されます
Webカテゴリの通知をオンにすると CloudKit Console内で 通知が自動的に表示されます サービスの更新情報と データベースアラートは Consoleから離れているときに 知りたいアラートなので それぞれの項目の 横にあるチェックボックスをオンにして メール通知を有効にします これで 必要なときに すぐに対策を講じられるようになります
通知は 対象のアプリに 関連するコンテナだけに 限定することが重要です
個々のコンテナに対して それぞれの通知を 個別に有効化または無効化できます コンテナの管理をオンにして 通知を受けたいコンテナを 明示的に選択します 今回はサンプルコンテナですが これで リストで選択した コンテナに関する通知のみが送られ 以前のアプリのテストで使用したコンテナは 対象外となります CloudKit Consoleのテレメトリは アプリとCloudKitコンテナのやり取りを 視覚化します
テレメトリを使用すると 現在のCloudKitのアクティビティを把握して リクエスト エラー 遅延時間 帯域幅などの いくつもの指標に基づくトレンドを 観察できます
CloudKit Consoleに戻ってみると
通知ベルに更新バッジが表示され 新しい通知が届いていることがわかります
ベルをクリックして 通知パネルを開きます
リストの通知は 私のコンテナに対して データベースアラートが発生したことを 知らせています
このアラートは コンテナのCloudKitエラーの総数が しきい値を超過したときに通知するように 設定されています
通知をクリックすると アラートの詳細ページが表示されるので エラーの増加の原因を調べてみましょう 通知からこのページに移動することで 関連する時間枠が絞り込まれ アラート条件に適合する 特定の時点を確認できます
私のアプリは 複数の Appleプラットフォーム上で実行されています セレクタをクリックして 分類基準を「Platform」に変更します これでグラフの表示が変わり エラーの内訳が プラットフォームごとに 分類されるようになりました これでプラットフォーム間のデータの違いを 簡単に識別できます 私のアプリは Apple Watchよりも iPhoneやiPadの方で CloudKitトラフィックが多くなるので これらのデバイスでは 常にエラーが多くなると予想されます グラフを見ると Apple Watchでのエラーが 予想以上に多いことが判明しました そこで サイドナビゲーションの リンクをクリックし エラー率グラフをクリックして エラー率メトリックスを開きます
エラー率グラフは 送信されたリクエスト総数に対する エラーの割合を示します
をに戻すと Watchアプリが 不均衡な数のエラーの原因であることが はっきりとわかります
問題を詳しく調査するため グラフ上のクエリビルダーに 表示データを プラットフォームが Watchの場合だけに限定する フィルタを入力します
次に をに変更して どの操作がエラーの影響を受けているかを 確認します
テレメトリグラフを見れば 何の操作によってエラーが生じているかは 一目瞭然です
表示されるテレメトリデータを 絞り込むことで アプリで何が起きたのか 誰に影響が及ぶのかを 理解しやすくなります テレメトリでわかることは エラーとエラー率だけではありません 同じフィルタリングツールで アプリのリクエスト 帯域幅 遅延時間も調べることができます
テレメトリクエリは チームとも共有できるので 分析やソリューション開発を 共同で行うことができます では 保存データが主にレコードと アセットのどちらで構成されているのか アクティブユーザーは何人か どのデバイスが最も使用されているかを 把握できます
これらのグラフはすべて 指定した時間範囲で作成することができ 経時的なトレンドの監視に使用できます アプリ内で問題が特定された場合 問題を解決するには できるだけ多くの詳細情報が必要です
アプリがトリガーする個々の操作は CloudKit Consoleのデータベースログで 調べることができます
ログの情報は粒度が細かいため アプリの問題についての仮説を確認しやすく 問題を迅速に解決できます
ではConsoleに戻り 調査を続けましょう
ログにアクセスするには サイドナビゲーションを使用するか テレメトリページの ボタンをクリックします
今回はボタンをクリックして ログに移動します テレメトリページで行った すべての検索とクエリは 最初のログクエリに保存されています つまり 表示されるログはすでに CloudKitイベントのデバッグや 探索に関連したものであるということです クエリバーの上にある時間枠ピッカーから 2日間の時間枠を選択して 時間範囲を変更してみます 時間範囲を狭めることで 結果からノイズを除外できます ここでは個々のイベント内に 関心を惹かれる分野がいくつもあります テーブル表示ボタンをクリックすると カスタマイズ可能なテーブル形式で ログが表示されます 関心のある特定の列を追加することで イベント間の値を簡単に比較できます カスタマイズ可能な テーブル列のコントロールをクリックし 表示可能な列のリストから を選択すると この問題によって 影響を受けているユーザーを確認できます この列を追加することで 1人のユーザーが大量の Quota Exceededエラーを生じさせていることが すぐにわかります つまり Watchアプリで この状況を適切に 処理できていないのです
関心のあるログを展開すると 特定のイベントで送信されたデータの 完全なビューが表示されます
ログクエリの結果は さまざまな形式でエクスポートできます エクスポートしたログは 過去の結果を比較したり CloudKit Consoleの外で ログデータを処理したりするのに便利です
データのエクスポートボタンをクリックし ダウンロード形式として CSVかJSONを選択して ログをエクスポートします
修正したバグに関する回帰テストを行うため ログクエリを保存します ログリンクのコピーボタンをクリックすると ログを共有できるので チーム全体で同じ問題をデバッグできます
カスタムアラートを作成することで アプリでの CloudKitの使用に関する 重要な変更に対応できるようになります
アラートは値が 指定したしきい値や平均値を 超過するかまたは下回った場合に トリガーされます
さらにカスタマイズすることで テレメトリフィルタや 繰り返し基準に基づいて 通知を制限できます
以前に特定したエラー状態が 再発しないようにしなければなりません 再発した場合は 事前にアラートを受信したいと思います
そのため今後 このような状況が 発生した場合には通知されるよう アラートを作成します
コンソールに戻って 先ほど調べた エラー率グラフを見てみましょう
テレメトリグラフの下にある アラート作成ボタンをクリックします これでアラート作成ダイアログが開き アラート作成のプロセスを案内してくれます アラートのプレビューグラフでは 設定しているアラートが トリガーされるタイミングを 明確に確認できます
ハイライト表示されている領域は アラートのしきい値です 値がこの領域に入った時が アラートがトリガーされる タイミングとなります
先ほどエラーの特定時に 入力したフィルタが 自動的に組み込まれ 今後はこの条件が再び満たされた時点が アラートのターゲットとなります 問題が再発した場合 できるだけ早く 通知を受け取ることが重要になります それには 期間セレクタをクリックし アラートの設定を変更して 1時間あたりのエラー率を 監視するようにします
デフォルトでは アラートには コンテナの平均使用量に基づく アラートしきい値が設定されます 重大なスパイクが発生したときだけ アラートが通知されるようにしたいので しきい値を少し引き上げて修正します
これでプレビューグラフが更新され アラート基準に加えた 変更の効果を視覚的に 確認できるようになります アラートの条件に基づいて わかりやすい デフォルトのアラート名が生成されます 今回はデフォルト名を使いますが この名前は自分にとってわかりやすいものを 自由に設定できます
をクリックすると アラートの条件が保存され CloudKitコンテナの使用状況に対する 評価が開始されます 新しく作成したアラートの詳細ページが 表示されました 条件に適合した状況があれば すべてグラフ上に表示され さらに 先ほど行った 設定に基づいて通知が送られます
アラートは リクエスト エラー エラー率の テレメトリメトリクスに対して作成できます
エラー率のアラートの例を紹介しましたが 次に 異なるメトリックスを使った アラートの例を2つ見てみましょう 新しいプラットフォームで アプリを公開する場合 エラー数に基づくアラートを設定すると 新しい試みが成功したかどうかを 可視化できるほか 間違いがあれば 素早く対処することもできます アプリの同期ロジックが完成したら アラートを使用して 将来新たな問題が発生した場合に 検出することができます
例えば データ同期操作の予想回数が 平均ベースのしきい値を超過していないか チェックするアラートを作成しておけば 同期バグが発生した場合に 通知を受けることができます アラートの管理は サイドナビゲーションの セクションにある 新しいページで行います
このページでは すべてのアラートを一箇所にまとめ 一元的に有効化 無効化 または削除できます
この新しいCloudKit Consoleの ツールセットをぜひご利用ください
通知に関する様々な項目を設定すると 通知がEメールでも送信されるように 選択できます テレメトリグラフでは アプリがCloudKitと どのようにやり取りするかを視覚化できます
また アプリのCloudKit使用状況の 統計を確認すると アクティブユーザー デバイス ストレージの傾向を把握できます 重要なログやテレメトリクエリは保存して チームで共有できます そして最も重要なのは カスタムアラートを 作成することで CloudKitコンテナでの 重要なアクティビティに関する 通知が受けられることです ご視聴ありがとうございました
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。