You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Wire TurboModulePerfLogger on iOS and Android #6162
Install a Sentry-owned facebook::react::TurboModulePerfLogger implementation on both platforms so the SDK receives callbacks for every TurboModule lifecycle event. This is the foundation that all later issues build on.
Goal
Implement SentryTurboModulePerfLogger : public facebook::react::TurboModulePerfLogger in C++ (shared header/impl under packages/core/cpp/ or platform-specific files).
Register it as early as possible:
iOS: call facebook::react::TurboModulePerfLogger::enableLogging(...) from RNSentry.mm during module init, or expose a helper that the host's AppDelegate calls before RCTBridge/RCTHost is created.
Android: install from a JNI OnLoad hook (mirroring samples/react-native/android/app/src/main/jni/OnLoad.cpp) or from RNSentryPackage via ReactPackageTurboModuleManagerDelegate glue. Sentry must not require the user to modify their OnLoad.cpp — provide a one-call helper.
Cover the full perf logger surface: moduleDataCreateStart/End, moduleCreateStart/End, moduleCreateFail, moduleCreateCacheHit, moduleCreateConstructStart/End, moduleCreateSetUpStart/End, syncMethodCallStart/End/Fail, asyncMethodCallStart/End/Fail, asyncMethodCallDispatch, asyncMethodCallExecutionStart/End/Fail.
Forward each callback to a single C++ sink that the higher-level features (issues 2 / 3 / 4) plug into. Behind a runtime flag (enableTurboModuleTracking, default false for the first release) so we can ship safely.
Why is it needed?
JSI HostObjects don't always expose methods to JS
Today the integration auto-wraps only RNSentry. Every other TurboModule (RN's built-ins, third-party) needs the user to manually register it via turboModuleContextIntegration({ modules: [...] }). A native perf logger gives universal coverage of every TurboModule in the app, including ones the user has never heard of, for free.
Activity
linear-code commentedon May 18, 2026
RN-638
test(turbomodule): Cover perf-logger controller and JVM tracker latch
feat(core): Wire TurboModulePerfLogger on iOS and Android
test(turbomodule): Cover perf-logger controller and JVM tracker latch
feat(core): Wire TurboModulePerfLogger on iOS and Android (getsentry#…
github-actions commentedon Jul 2, 2026
A PR closing this issue has just been released 🚀
This issue was referenced by PR #6307, which was included in the 8.17.0 release.