The aim of this project is to provide a unified API for performance tracing in React Native applications, allowing developers to easily instrument their apps with various backends for tracing, profiling, and performance monitoring.
The core package - @ottrelite/core
- provides a so-called Development API (which is designed to be consumed by programmers) for instrumenting your application for purely development use cases (profiling your code, tracing performance issues, etc.). The actual implementation of recording / displaying / reporting of the data is provided by individual, pluggable packages (called backends). An arbitrary number of backends (0, 1 or more) can be installed simultaneously, allowing you to use multiple backends at once, or switch between them as needed.
For production use cases, Ottrelite integrates with OpenTelemetry (OTEL) JS API, supporting all OTEL community instrumentations, custom processors, etc. The only limitation is that the setup must follow our guidelines, which are described in this README.
Feature | Status |
---|---|
C++ API | ✅ |
JS API | ✅ |
Swift API | ⏳ (in progress) |
Java/Kotlin API | ✅ |
RN integration | ✅ |
Warning
Currently, Android builds are not working yet. This is because we didn't integrate the native C++ code builds into Gradle yet. Please stay tuned for new updates soon. If you want to try out the Android API with RN internals tracing, please switch to the feature/gradle-plugin
branch.
Feature | Status |
---|---|
OTEL-JS interop | ✅ |
OTEL-CPP interop | ✅ |
OTEL-Java interop | TBD |
OTEL-Swift interop | TBD |
RN integration | ✅ |
Platform | Status |
---|---|
iOS | Systrace.js enabled |
Android | ✅ |
First, install the package with:
npm install --save @ottrelite/core
# or
yarn add @ottrelite/core
# or
pnpm add @ottrelite/core
Then, follow the instructions from the respective section(s) below, depending on whether your use case involves production-time telemetry, development-time tracing or both.
Please consult the documentation website.