@middleware.io/middleware-react-native
v1.0.6
Published
Middleware React Native real user monitoring SDK
Downloads
101
Readme
Middleware React Native SDK
Middleware React Native Real User Monitoring SDK
Features
- AutoInstrumentation HTTP Monitoring
- AutoInstrumentaion JS Errors
- AutoInstrumenation navigation tracking for
react-navigation
- AutoInstrumenation native crash errors
- Custom Instrumenation using OpenTelemetry
- Custom logging
- RUM Session Tracking
- Session Recording
Documentation
Compatibility & Requirements
Middleware React Native for Mobile supports React Native 0.68 and higher.
The library is also compatible with the following frameworks and libraries:
- Expo framework
- React Navigation 5 and 6
Installation
yarn add @middleware.io/middleware-react-native
Usage
import { MiddlewareWrapper, type ReactNativeConfiguration } from '@middleware.io/middleware-react-native';
const MiddlewareConfig: ReactNativeConfiguration = {
serviceName: 'Mobile-SDK-ReactNative',
projectName: '$Mobile-SDK-ReactNative',
accountKey: '<middleware-account-key>',
target: '<target-url>',
deploymentEnvironment: 'PROD',
globalAttributes: {
name: '<your-name>',
},
};
export default function App() {
return (
<MiddlewareWrapper configuration={MiddlewareConfig}>
// Application Components
</MiddlewareWrapper>
);
}
Custom logging
You can add custom logs such as debug, error, warn, info these logs will be shown on Middleware Logs Dashboard
MiddlewareRum.debug("I am debug");
MiddlewareRum.error("I am error");
MiddlewareRum.info("I am info");
MiddlewareRum.warn("I am warn");
Setting Global Attributes
You can set global attributes by calling setGlobalAttributes
function.
MiddlewareRum.setGlobalAttributes({
"name": "Middleware",
"app.version": "1.0.0",
"custom_key": "some value"
});
Reporting custom errors
You can report handled errors, exceptions, and messages using the reportError
function
try{
throw new Error("I am error")
} catch (err) {
MiddlewareRum.reportError(err);
}
Updating location information
You can set latitude & longitde as global attributes.
MiddlewareRum.updateLocation(latitude: number, longitude: number)
Enable session recording
By default session recording is enabled, to disable session recording pass sessionRecording: false
configuration as follows -
const MiddlewareConfig: ReactNativeConfiguration = {
serviceName: 'Mobile-SDK-ReactNative',
projectName: '$Mobile-SDK-ReactNative',
accountKey: '<middleware-account-key>',
target: '<target-url>',
sessionRecording: false,
deploymentEnvironment: 'PROD',
globalAttributes: {
name: '<your-name>',
},
};
Sanitizing views in session recording
Views will get blurred hiding sensitive information in session recording.
<MiddlewareSanitizedView>
<Component/>
</MiddlewareSanitizedView>
Contributing
See the contributing guide to learn how to contribute to the repository and the development workflow.
License
Apache 2.0