WWDC Quick Look 💓 By SwiftGGTeam
Use CloudKit Console to monitor and optimize database activity

Use CloudKit Console to monitor and optimize database activity

元の動画を見る

ハイライト

CloudKit Console は WWDC 2024 で開発者通知、Telemetry 可視化分析、構造化ログクエリ、カスタムアラートの 4 機能を追加。開発者がコードを書かずに CloudKit 使用問題を特定・解決可能に。

主要内容

app が CloudKit で iCloud にデータ同期。本番で問題が発生——どうする?以前は Xcode ログを掘るだけ。原因を推測。特定プラットフォームのエラー率が急上昇、またはユーザーの Quota 超過で大量の失敗リクエスト——ローカルログでは発見困難。CloudKit Console は WWDC 2024 でこの空白を埋め、4 つの可観測性機能を追加:開発者通知、Telemetry チャート、ログクエリ、カスタムアラート。

開発者通知でコンテナ内の出来事を最初に把握——schema 変更、データベースアラート、promotion 操作。Console 通知ベルとメールにプッシュ。Telemetry は app の CloudKit リクエストを requests、errors、error rate、latency、bandwidth の 5 次元で可視化。platform、operation でグループ化。時間範囲とフィルタをサポート。Session デモの典型シナリオ:Error Rate チャートで Apple Watch 端のエラー率異常を発見→Group By operation で問題操作を特定→ログにジャンプして単一リクエストの完全データを確認→単一ユーザーが大量 Quota Exceeded をトリガーしていることを発見。カスタムアラートで Telemetry 指標に閾値を設定。問題再発時に自動通知。

詳細

開発者通知(00:35

Console 上部の通知ベルが入口。CloudKit 開発者通知のイベントタイプ:database alerts、schema changes、promotions、resets、authorization token status。通知をタップすると Console 対応ページへ——schema 変更通知は Schema History ページへ。チームのコンテナ schema 全履歴変更を記録(02:38)。

通知はコンテナ粒度で設定可能。Settings > Notifications で受信タイプと Web/Email を選択。「Manage Containers」有効化後、関連コンテナのみ選択。テストコンテナの通知ノイズを回避(02:57)。

Telemetry 可視化分析(04:06

Telemetry は 5 つのコア指標チャート:

  • Requests:リクエスト総量
  • Errors:エラー総量
  • Error Rate:エラー率(エラー数 / 総リクエスト数のパーセント)
  • Latency:レイテンシ
  • Bandwidth:帯域幅

各チャートは Group By(platform、operation など)、時間範囲フィルタ、クエリ条件フィルタをサポート。Session の排查パス:

  1. database alert 通知を受信、alert details ページへ(04:34
  2. Group By を platform に変更。Watch 端エラー数が異常に高い(05:13
  3. Error Rate チャートに切替。Watch エラー率が他プラットフォームを大きく上回る(05:41
  4. query builder で platform を Watch にフィルタ、Group By を operation に変更。問題操作を特定(06:03

Telemetry クエリ URL はチームメンバーと直接共有可能。全員が同じ分析ビューを表示(06:48)。Usage ページはアクティブユーザー数、デバイス分布、records と assets のストレージ比率も提供(06:55)。

ログクエリ(07:15

Logs ページで app がトリガーする各 CloudKit 操作の完全リクエストデータを表示。Telemetry ページから「Query in Logs」をクリック。全フィルタ条件が自動引き継ぎ。再設定不要(07:39)。

ログは Table View モードをサポート。テーブル列をカスタマイズ可能。Session デモで userId 列追加後、単一ユーザーが大量 Quota Exceeded をトリガーしていることを即座に発見(08:27)。単一ログ展開でイベントの完全リクエストデータを表示。クエリ結果は CSV または JSON でエクスポート可能(08:54)。クエリ条件保存または「Copy Log Link」でチーム共有。

カスタムアラート(09:26

カスタムアラートは Requests、Errors、Error Rate の 3 指標に閾値ルールを設定可能。作成フロー:Telemetry チャート下の「Create Alert」をクリック。アラート作成ダイアログを開く。ダイアログにアラートプレビューチャート——ハイライト領域が閾値範囲。ハイライト領域と交差する瞬間がアラートトリガー(10:15)。

アラートフィルタ条件は現在の Telemetry クエリフィルタを自動継承。関心のある問題のみを対象。監視周期(毎時など)を設定。閾値はデフォルトでコンテナ履歴平均値。手動調整も可能(10:42)。作成後は Alerts ページで統一管理。有効化、無効化、削除をサポート(12:27)。

Session の 2 つのアラート適用シナリオ:新プラットフォーム上架時、errors 数量にアラートを設定して上架品質を追跡。同期ロジック最適化完了後、同期操作数量に平均値ベースの閾値アラートを設定してリグレッションを検出(11:49)。

重要ポイント

  • やること:本番環境 CloudKit コンテナにカスタムアラートを設定。価値がある理由:オンライン問題はユーザーが先に発見し開発者が後から知ることが多い。アラートで応答時間を「ユーザー苦情」から「分単位自動通知」に短縮。始め方:CloudKit Console Telemetry ページで Error Rate 指標を選択。platform でグループ化後「Create Alert」。閾値をコンテナ履歴平均値の 2〜3 倍に設定。

  • やること:Xcode ログを掘る排查モードを Telemetry + Logs 組み合わせに置き換え。価値がある理由:Xcode ログはローカル単一デバイスのデータのみ。Telemetry は全ユーザーの集約データ。Logs は単一リクエストの完全コンテキスト。両者配合でグローバル問題か単一ユーザー問題かを素早く特定。始め方:次回 CloudKit 同期問題で Console Error Rate チャートを開く。Group By platform で範囲を絞り、「Query in Logs」で失敗リクエスト詳細を確認。

  • やること:常用 Telemetry クエリとログクエリを共有可能リンクとしてチームドキュメントに保存。価値がある理由:同じ問題を異なる人が排查すると同じクエリ条件を再構築。保存・共有で重複労働を排除。on-call 時の迅速な立ち上がりにも。始め方:Telemetry または Logs ページでフィルタ条件設定後、ブラウザ URL をコピーまたは「Copy Log Link」をクリック。チーム Slack または Confluence ページに貼り付け。

関連セッション

コメント

GitHub Issues · utterances