Slide 1

Slide 1 text

FlutterKaigi 2025 長田 卓 馬 株式会社サイバーエージェント Flutterエンジニア Flutterアプリ運 用 の 現場で役 立 った監視Tips 5 選

Slide 2

Slide 2 text

FlutterKaigi 2025 2 自 己 紹介 長田 卓 馬 株式会社サイバーエージェント 21年度新卒 入 社 競輪 ・ オートレースの投票サービス「WINTICKET」 を作って います 最近はAIに仕事を増やされてます • GitHub ID: ostk 0 0 6 9 • X ID: ostk 0 0 6 9

Slide 3

Slide 3 text

FlutterKaigi 2025 3 AGENDA 1 . 高 ディメンションな状態を作る 2 . アラート通知する情報を精査する 3 . バージョンごとに監視する体制を作る 4 . 新規エラーはAIが勝 手 に調査するフローを作る 5 . 監視指標を段階リリースの評価に使う

Slide 4

Slide 4 text

FlutterKaigi 2025 4 ① 高 ディメンションな状態を作る

Slide 5

Slide 5 text

FlutterKaigi 2025 5 ① 高 ディメンションな状態を作る ディメンションはデータ内のキーの数を意味します。オブザーバビリ ティのあるシステムでは、テレメトリーデータは任意の幅広い構造を 持つイベントとして 生 成されます。イベントの幅が広ければ広いほ ど、イベントが発 生 したときのコンテキストが豊かになり、のちにデ バッグするときに何が起こったのかをより多く発 見 できます。 「オブザーバビリティ ・ エンジニアリング」より https://www.oreilly.co.jp/books/ 9 7 8 4 8 1 4 4 0 0 1 2 6 /

Slide 6

Slide 6 text

FlutterKaigi 2025 6 ① 高 ディメンションな状態を作る 多くの監視ツールでデフォルトで補完されているもの以外で、実際に有 用 だったものを紹介。 ユーザーの端末内設定(Shared Preference の中 身 ) Shared Preference の中 身 はユーザーによって異なり、その状態も本来監視できる状態が望ましい。 プライバシーポリシーや個 人 を特定できるような情報は監視対象から外すなどケアしながら進める必要がある。

Slide 7

Slide 7 text

FlutterKaigi 2025 7 ① 高 ディメンションな状態を作る 端末のスペック(Low / Middle / High) Sentry ではデフォルトで備わっている情報。Android は特に端末スペックがピンキリなので端末によって起きる起きない 事象が異なる。Low の端末でしか発 生 してない問題は優先度を上げる ・ 下げるなどの判断に 用 いる。 端末のメモリ容量、コア数などで分類する。 https://github.com/getsentry/sentry/discussions/ 4 4 4 2 2 #discussioncomment- 5 1 4 9 9 3 6 その他は割愛…!

Slide 8

Slide 8 text

FlutterKaigi 2025 8 ② アラート通知する情報を精査する

Slide 9

Slide 9 text

FlutterKaigi 2025 9 ② アラート通知する情報を精査する モバイルアプリの性質上、 下位バージョンのアプリをサポートする必要があり、バイナリによって発 生 する エラーが異なる。そのため、 どのプラットフォーム ・ バージョンで起きているかはアラート通知に必須な情 報になる。基本的に最新バージョンで発 生 しているエラーの 方 が過去バージョンで発 生 しているエラーより も対応優先度が 高 いことが多い。

Slide 10

Slide 10 text

FlutterKaigi 2025 1 0 ③ バージョンごとに監視する体制を作る

Slide 11

Slide 11 text

FlutterKaigi 2025 1 1 ③ バージョンごとに監視する体制を作る 🚨 アラート モバイルアプリにおいて最新バージョンのアプリが監視の温度感が 高 い対象であり、特に段階公開でアプリを公開する 場合は全体のアラートのみだとデグレに気づくのが遅れてしまう場合がある。 そのため、アプリリリース時に 自 動で管理しているアラートを最新バージョンに更新する仕組みを導 入 。

Slide 12

Slide 12 text

FlutterKaigi 2025 1 2 ③ バージョンごとに監視する体制を作る 📈 ダッシュボード アラートと同様の理由でバージョン単位でアプリの状態がわかるダッシュボードを作成。

Slide 13

Slide 13 text

FlutterKaigi 2025 1 3 ④ 新規エラーはAIが勝 手 に調査するフローを作る

Slide 14

Slide 14 text

FlutterKaigi 2025 1 4 ④ 新規エラーはAIが勝 手 に調査するフローを作る 🔥 エラーが発 生 監視ツールで検知 GitHub Issue を作成 AI ツールによる調査 と修正対応 AI ツールを使うことでこれまで 人 間がおこなってきたエラー調査やその対応を代替。 これまで優先度の 高 い問題にしか対応できなかったのが、対応の範囲を広げることも可能に。 Github Actions 経由で Playbook を呼び出す

Slide 15

Slide 15 text

FlutterKaigi 2025 1 5 ④ 新規エラーはAIが勝 手 に調査するフローを作る 🔥 エラーが発 生 監視ツールで検知 GitHub Issue を作成 AI ツールによる調査 と修正対応 Devin は Sentry、Datadog MCP にも対 応しており、詳細な調査も可能 AI ツールを使うことでこれまで 人 間がおこなってきたエラー調査やその対応を代替。 これまで優先度の 高 い問題にしか対応できなかったのが、対応の範囲を広げることも可能に。 Github Actions 経由で Playbook を呼び出す

Slide 16

Slide 16 text

FlutterKaigi 2025 1 6 ⑤ 監視指標を段階リリースの評価に使う

Slide 17

Slide 17 text

FlutterKaigi 2025 1 7 ⑤ 監視指標を段階リリースの評価に使う モバイルアプリを安全にリリースする 方 法として段階公開がある。新しいバイナリを利 用 するユーザー を段階的に広げることで、不具合があった時に最 小 限のユーザーに影響を 止 めることができる。 しかし、どのタイミングで 100% の公開を 行 うかの判断するかは難しい。 「WINTICKET」では、独 自 の評価指標で 一 定のサンプルが溜まってたタイミングでレポートが作成。 これにより段階公開中のバイナリを 100% 公開するべきかを判断可能に。

Slide 18

Slide 18 text

FlutterKaigi 2025 1 8 ⑤ 監視指標を段階リリースの評価に使う SLI については以下を参照 https://speakerdeck.com/ostk 0 0 6 9 /slowoyong-itayuzati-yan-noke-shi-hua-toji-ce-ji-pan-gou-zhu

Slide 19

Slide 19 text

FlutterKaigi 2025 1 9 ⑤ 監視指標を段階リリースの評価に使う 段階公開中の最新バージョンで計測した 値を表 示 SLI については以下を参照 https://speakerdeck.com/ostk 0 0 6 9 /slowoyong-itayuzati-yan-noke-shi-hua-toji-ce-ji-pan-gou-zhu

Slide 20

Slide 20 text

FlutterKaigi 2025 2 0 ⑤ 監視指標を段階リリースの評価に使う 全バージョンの直近2週間の計測した値を 表 示 SLI については以下を参照 https://speakerdeck.com/ostk 0 0 6 9 /slowoyong-itayuzati-yan-noke-shi-hua-toji-ce-ji-pan-gou-zhu

Slide 21

Slide 21 text

FlutterKaigi 2025 2 1 ⑤ 監視指標を段階リリースの評価に使う 累計セッション数とUUが 一 定のラインに 到達したら100%に公開するかどうかの判 断を 行 う SLI については以下を参照 https://speakerdeck.com/ostk 0 0 6 9 /slowoyong-itayuzati-yan-noke-shi-hua-toji-ce-ji-pan-gou-zhu

Slide 22

Slide 22 text

FlutterKaigi 2025 2 2 ⑤ 監視指標を段階リリースの評価に使う Q. どのように指標とそのボーダーを決めるのがいいか A. プロダクトによって異なる ECサイトで「99% のユーザーが購 入 成功している状態」を正常な状態として定義したときに、標本数 はいくつあればそうだと判断できるか。誤差 0.5% を許容する場合、2640 件の購 入 結果があれば判断 できる。( 母比 率の推定による計算) 2 セッションに 1 セッションが購 入 処理をしている場合、ざっくり 5000 件のセッションがあれば必要 な標本が集まることになる

Slide 23

Slide 23 text

FlutterKaigi 2025 2 3 ⑤ 監視指標を段階リリースの評価に使う おまけ( 母比 率の推定解説) 母比 率の信頼区間の誤差を基に、標本数 𝑛 は次式で求められる 𝑍 :信頼 水 準に対応する標準正規分布の値(95%→1.96、99%→2.58 など) 𝐸 :許容誤差(例:0.01) 𝑝 :成功率の想定値(例:0.99)

Slide 24

Slide 24 text

FlutterKaigi 2025 2 4 ご清聴ありがとうございました 🙌 監視まわりで 色 々話せたらと思うのでお気軽に声をかけてください🙏