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
C++でシェーダを書く
fadis
6
3.8k
アジャイルを支えるテストアーキテクチャ設計/Test Architecting for Agile
goyoki
9
3.1k
Hotwire or React? ~Reactの録画機能をHotwireに置き換えて得られた知見~ / hotwire_or_react
harunatsujita
8
4.8k
Identifying User Idenity
moro
6
9.2k
CSC509 Lecture 08
javiergs
PRO
0
110
受け取る人から提供する人になるということ
little_rubyist
0
170
Importmapを使ったJavaScriptの 読み込みとブラウザアドオンの影響
swamp09
4
1.3k
『ドメイン駆動設計をはじめよう』のモデリングアプローチ
masuda220
PRO
8
480
Tuning GraphQL on Rails
pyama86
2
1.2k
GCCのプラグインを作る / I Made a GCC Plugin
shouth
1
150
3rd party scriptでもReactを使いたい! Preact + Reactのハイブリッド開発
righttouch
PRO
1
580
Sidekiqで実現する 長時間非同期処理の中断と再開 / Pausing and Resuming Long-Running Asynchronous Jobs with Sidekiq
hypermkt
6
2.9k
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
520
39k
Ruby is Unlike a Banana
tanoku
96
11k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
2k
[RailsConf 2023] Rails as a piece of cake
palkan
51
4.9k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
7
520
Practical Orchestrator
shlominoach
186
10k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
For a Future-Friendly Web
brad_frost
175
9.4k
A Philosophy of Restraint
colly
203
16k
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