
Ottrelite - Unified, extensible, cross-language tracing toolkit for React Native ⚡️🔎
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 | ✅ |
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.