getsentry / getsentry/sentry-react-native
Synchronize `PropagationContext` across layers
- 主要言語
- TypeScript
- スター
- 1.8k
- フォーク
- 366
- 平均マージ
- 1日 5時間
- マージ済み PR(30日)
- 93
説明
Currently, WebViews, RN and native layers keep their own traceId. We could enhance the debugging experience by sharing trace across the hybrid applications layers.
### Examples
- RN opens WebView and an error (Browser SDK in WebView captured an error) happens on the web due to RN not supplying needed data (error was capture by RN). These are not sharing the same trace as the SDK operate independently.
- Native SDK captures error, due to which data are missing in RN layer, and thus RN captures an error. Currently these errors are no covered by the same trace id.
```[tasklist]
### Tasks
- [ ] Pass trace from RN to native (if RN initialized first)
- [ ] React trace from native (if RN initialized second)
- [ ] Pass trace from RN to WebView
- [x] https://github.com/getsentry/sentry-java/pull/4137
- [x] https://github.com/getsentry/sentry-java/pull/4188
- [x] https://github.com/getsentry/sentry-cocoa/pull/5081
```
コントリビューションガイド
調査の方向性
まず、3つの未チェックのタスクリスト項目を対象範囲として、React Native、WebView、native の各レイヤーにおける PropagationContext と trace の処理を追跡します。RN-first と native-first のケースを検証し、続いて RN-to-WebView の伝播が issue に記載された例を網羅していること、および残りのすべてのタスクが完了していることを確認します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- react-native, typescript
- 領域
- mobile-dev, observability
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 25/100