Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
1人で頑張らない! チームでSentryを活用する エラー管理体制の構築について
Search
solnce
August 30, 2023
Programming
1
2.6k
1人で頑張らない! チームでSentryを活用する エラー管理体制の構築について
solnce
August 30, 2023
Tweet
Share
Other Decks in Programming
See All in Programming
Macとオーディオ再生 2024/11/02
yusukeito
0
370
Snowflake x dbtで作るセキュアでアジャイルなデータ基盤
tsoshiro
2
520
Duckdb-Wasmでローカルダッシュボードを作ってみた
nkforwork
0
130
Make Impossible States Impossibleを 意識してReactのPropsを設計しよう
ikumatadokoro
0
220
카카오페이는 어떻게 수천만 결제를 처리할까? 우아한 결제 분산락 노하우
kakao
PRO
0
110
AWS Lambdaから始まった Serverlessの「熱」とキャリアパス / It started with AWS Lambda Serverless “fever” and career path
seike460
PRO
1
260
最新TCAキャッチアップ
0si43
0
190
Why Jakarta EE Matters to Spring - and Vice Versa
ivargrimstad
0
1.1k
WebフロントエンドにおけるGraphQL(あるいはバックエンドのAPI)との向き合い方 / #241106_plk_frontend
izumin5210
4
1.4k
ActiveSupport::Notifications supporting instrumentation of Rails apps with OpenTelemetry
ymtdzzz
1
240
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
170
Contemporary Test Cases
maaretp
0
140
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Gamification - CAS2011
davidbonilla
80
5k
How GitHub (no longer) Works
holman
310
140k
A Modern Web Designer's Workflow
chriscoyier
693
190k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Building an army of robots
kneath
302
43k
Building Adaptive Systems
keathley
38
2.3k
Transcript
© Magic Moment 2023 1人で頑張らない! チームでSentryを活用する エラー管理体制の構築について © Magic Moment
2023 株式会社Magic Moment Technologiesチーム Takahiro Ishida
© Magic Moment 2023 自己紹介 2 • Takahiro Ishida •
株式会社Magic Moment • フロントエンド テックリード • GitHub: @solnce • Twitter: @solnce3 • 自作キーボードにハマっています
© Magic Moment 2023 Magic Moment / 営業行動支援システムMagic Moment Playbookについて①
3 • 株式会社Magic Moment • 営業行動支援システム 「Magic Moment Playbook」の開発・提供 • 開発組織は23名(フロント6名)+業務委託 • 昨年9月にシリーズB完了で累計調達額20億円 • React / SPAの運用上で Sentry を使っています
© Magic Moment 2023 Magic Moment / 営業行動支援システムMagic Moment Playbookについて②
4
© Magic Moment 2023 今日話すこと 5 Sentryを活用して みんなでエラーを管理したい! 🛠🛠🛠🛠
© Magic Moment 2023 Sentryを運用する上での課題 課題 6 Sentryを導入してからエラーハンドリングがしやすくなりましたが チームの運用課題がいろいろと出てきました
© Magic Moment 2023 課題 7 運用が属人化しがち
© Magic Moment 2023 運用が属人化しがち 課題 8 見る人もエラー修正する人も、有志による特定の人に寄りがち
© Magic Moment 2023 自分が実装していない部分は 対応に時間がかかる 😵 課題 9
© Magic Moment 2023 自分が実装していない部分は 対応に時間がかかる 😵 課題 10 対象範囲のドメイン知識が不足していたり、実装が複雑な箇所だと難しい
© Magic Moment 2023 エラー対応のやりかたが 技術力や経験によって変わる 🥺 課題 11
© Magic Moment 2023 エラー対応のやりかたが 技術力や経験によって変わる 🥺 課題 12 どこまで影響範囲を考慮するべきなのか、実装で対処できるものか判断が難しい
© Magic Moment 2023 発生件数が少ないエラーを 対応するかの判断が人による 🧐 課題 13
© Magic Moment 2023 発生件数が少ないエラーを 対応するかの判断が人による 🧐 課題 14 リリースした機能によっては使われるまでにタイムラグがあり
発生件数を対応条件にしていると対応の判断がしにくい
© Magic Moment 2023 どうやって対策しているか 15 私達はこうやって対策しました 🤟🤟🤟
© Magic Moment 2023 どうやって対策しているか 16 毎週1時間、フロント全員で Sentry を確認・修正する時間を確保する
© Magic Moment 2023 どうやって対策しているか 17 ◦ 1週間で発生した課題の対応方法について全員で議論しています ◦ 品質に関わるので、参加者が少なくても必ずやるようにしています
毎週1時間、フロント全員で Sentry を確認・修正する時間を確保する
© Magic Moment 2023 どうやって対策しているか 18 ⭕ 運用が属人化しがち 毎週1時間、フロント全員で Sentry
を確認・修正する時間を確保する
© Magic Moment 2023 どうやって対策しているか 19 ペアタスクでエラーを調査・修正する 🙌
© Magic Moment 2023 どうやって対策しているか 20 ◦ ドメインに詳しい人を交えて、影響範囲や不明点を減らしています ◦ 再現方法の調査や実装方針も話し合い、最適な方法で解決します
ペアタスクでエラーを調査・修正する 🙌
© Magic Moment 2023 どうやって対策しているか 21 ⭕ ドメイン知識不足 ⭕ 対応方法の判断
ペアタスクでエラーを調査・修正する 🙌
© Magic Moment 2023 どうやって対策しているか 22 過去3回以上発生したら エラー対応の対象とする ⏳
© Magic Moment 2023 どうやって対策しているか 23 ◦ 毎週集計しているのを利用して、会の回数でトリアージしています ◦ 件数が多い場合やクリティカルなものはチームで確認して即時対応します
過去3回以上発生したら エラー対応の対象とする ⏳
© Magic Moment 2023 どうやって対策しているか 24 ⭕ 発生件数が少ないエラーの判断 過去3回以上発生したら エラー対応の対象とする
⏳
© Magic Moment 2023 実際に管理している画面 25
© Magic Moment 2023 実際に管理している画面 26 その週で発生したエラーを見て、 対応方法の案や、やるべきかどうかをチームで話し合います
© Magic Moment 2023 実際に管理している画面 27
© Magic Moment 2023 実際に管理している画面 28 件数自体は少ないが3週に渡って発生しているので対応するようにしています
© Magic Moment 2023 運用する上でのTips 🍟 Tips 29 エラートラッキングを楽にする仕組み
© Magic Moment 2023 • リリースバージョンを設定する ◦ デプロイ時にリリースごとのファイルハッシュを使って、どのリリースに起因して発生 したエラーなのかを追えるようにしています •
環境名を送信 ◦ 社内本番(テスト環境)とお客様環境を区別して、重大なエラーがあっても早く対応で きるようにしています • SourceMapのアップロード ◦ どのファイルで発生したのか、原因箇所の特定を早くしています ◦ webpack の devtools で hidden-source-map を指定してから Sentry にアッ プロードしています Tips 30
© Magic Moment 2023 今後やっていきたいこと 🤓 今後やっていきたいこと 31
© Magic Moment 2023 • TagやBreadcrumbsに適切な情報を追加したい ◦ 分析に役立つ情報を弊社に合わせてカスタマイズしたい ◦ どういうのを送信すればいいのか設計中
• SourceMapのbuildの改善 ◦ SourceMapを生成するとbuild時間がながいので簡易的なSourceMapを送るよ うにしたい 今後やっていきたいこと 32
© Magic Moment 2023 まとめ まとめ 33
© Magic Moment 2023 • 継続的な取り組みからSentryが活用できる • 発生件数が少ないエラーでも会を区切る方法でトリアージができる • みんなで協力してやればエラーは怖くない!
まとめ 34 運用の仕方についても毎週チームで議論していて改善しています!
© Magic Moment 2023 宣伝 35 バックエンド、フロントエンド、 サーバーサイド、QAエンジニアなど 幅広く募集中です! https://www.magicmoment.jp/recruit/
Wantedly のブログ記事も ぜひご覧ください! https://www.wantedly.com/companies/magicmoment/stories ZennでTechBlogやっています! https://zenn.dev/magicmoment We’re Hiring!
© Magic Moment 2023 THANK YOU © Magic Moment 2023
36