getsentry / getsentry/sentry-react-native

Capture transaction on crash

オープン
#4,427 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
Improvement React-Native Spans
主要言語
TypeScript
スター
1.8k
フォーク
366
平均マージ
1日 6時間
マージ済み PR(30日)
94

説明

### Description

The React Native SDK does not capture unfinished transactions on application crash. Because performance is handled in JS we need to ensure transactions are saved in the following cases:

- **JS Unhandled Error** End and save unfinished JS transaction in global error handler (currently we only handle errors).
- **iOS Crash** End and save unfinished JS transaction when native signal handler is triggered.
- **Android JVM Crash** End and save unfinished JS transaction when JVM DefaultUncaughtExceptionHandler triggered.
- **Android Native Crash** End and save unfinished JS transaction when native signal handler is triggered.

---

Context for calling JS from native during exception handling. https://github.com/a7ul/react-native-exception-handler

`sentry-java` implementation https://github.com/getsentry/sentry-java/blob/94071dac205bde6a3126cae0a3e35b559e5e915d/sentry/src/main/java/io/sentry/UncaughtExceptionHandlerIntegration.java#L109-L113

`sentry-cocoa` implementation (not by default) https://github.com/getsentry/sentry-cocoa/blob/0d38adaabb4ae206e7237ec24647751558142548/Sources/Sentry/SentryCrashIntegration.m#L41-L49 (flag https://github.com/getsentry/sentry-cocoa/blob/0d38adaabb4ae206e7237ec24647751558142548/Sources/Sentry/SentryCrashIntegration.m#L127-L129)

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

React Native のグローバルエラーハンドラーと、issue に記載されているネイティブのシグナルハンドラーから始めてください。関連する例外パスについては、react-native-exception-handler、sentry-java's UncaughtExceptionHandlerIntegration.java、sentry-cocoa's SentryCrashIntegration.m を読んでください。JS、iOS、Android JVM、Android ネイティブのクラッシュについて、未完了の JS トランザクションが終了されて保存されれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
android, ios, javascript, react-native, typescript
領域
mobile
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。