背景
Woltでは、iOSアプリ内のフルスクリーン画面で分析イベントを確認していました。確認はできましたが、機能開発中に使うには時間がかかりました。検索もフィルタもなく、ビューアを開くとテスト中の画面が隠れます。イベントが多いセッションでは、目的の1件を見つけるために前後のデータを順番に読む必要がありました。そのため、新しいイベントの検証、想定外のデータの調査、リリース前の計測確認に時間がかかっていました。ペイロードは見えていても、調べたいイベントや項目へすぐ絞り込めませんでした。
そこで、確認作業を短くするため、Telemetry Viewerを自分から立ち上げ、単独で開発しました。アプリを通常どおり操作しながら、Mac側でイベントを見られる状態が目標でした。
作ったもの
iOSアプリからローカルWebSocket経由でmacOSクライアントへテレメトリイベントを送ります。デスクトップアプリでは、バックエンドに送るイベント名とペイロードを表示し、検索とフィルタで調査対象のデータに絞り込めます。バックエンドへ送るペイロード全体を表示するため、イベント名だけでなく各項目も確認できます。
ビューアをmacOS側に置くことで、iPhoneにはテスト中の機能を表示したままにできます。
展開
最初は少人数のエンジニアに共有し、その後デモを通じて利用者を増やしました。最初の構想から、複数チームへ展開するところまで担当しました。
Androidエンジニアが同じ考え方のツールを作るときにも協力しました。また、アプリが送信するデータを確認する、プライバシー関連のテレメトリ作業にも使われました。
結果
Telemetry Viewerは、分析イベントの検証、想定外のイベントのデバッグ、実験用計測の確認に使われました。確認画面をMacに移したことで作業が速くなり、iPhoneにはテスト中の機能を表示したままにできました。リリース確認でも使われ、ロールアウト前に計測が意図した動作と一致しているかを確認しやすくなりました。
次に取り組むこと
続けるなら、繰り返し使われる検索やペイロード確認を調べ、その作業を自動化します。また、iOS版とAndroid版の動作をそろえるため、小さな互換性ルールを文書にします。
