getsentry / getsentry/sentry-react-native
Capture transaction on crash
- 主要言語
- 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