UNPKG

react-native-newrelic

Version:
166 lines (115 loc) 4.11 kB
# react-native-newrelic New Relic event reporting for react native. > also check out https://github.com/wix/sentry-monitor ## Features * `overrideConsole` will send all console.log, warn and errors to New Relic. * `reportUncaughtExceptions` will send uncaught Javascript exceptions to New Relic. More to come! ## Installation ### Install react-native-newrelic ```bash npm install react-native-newrelic --save ``` ## iOS #### 1. Install New RelicAgent in your project as a pod In the Podfile for your project, add the following line: `pod 'NewRelicAgent'` Make sure Xcode is closed and run: `pod install` #### 2. Add the project to Xcode In the project navigator: - Right click Libraries - Add Files to [your project's name] - Go to node_modules/react-native-newrelic - Add the .xcodeproj file In the project navigator, select your project. - Add the libRNNewRelic.a to your project's Build Phases ➜ Link Binary With Libraries - Click .xcodeproj file you added before in the project navigator and go the Build Settings tab. Make sure 'All' is toggled on (instead of 'Basic'). #### 3. In your AppDelegate.m Add the following: ``` objective-c -(void)setupNewRelic{ NSString* token; if(isDebug) { token = @"<your new relic dev token (optional)>"; } else { token = @"<your new relic production token"; } [NewRelicAgent startWithApplicationToken:token]; } ``` And add the following line to the top of your didFinishLaunchingWithOptions function: ``` objective-c [self setupNewRelic]; ``` #### 4. Add a prefix header to your iOS project Add a `PrefixHeader.pch` file as explained [here](https://docs.newrelic.com/docs/mobile-monitoring/mobile-monitoring-installation/ios/adding-prefix-header-ios-project) Your file should look like this: ``` objective-c #ifdef __OBJC__ #import <NewRelicAgent/NewRelic.h> #endif ``` ## Android (gradle only) #### 1. Add NewRelic agent to your Android project **[This link](https://docs.newrelic.com/docs/mobile-monitoring/new-relic-mobile-android/install-configure/installing-android-apps-gradle-android-studio) describes how to add the original NewRelic agent to your project. This guide only requires a part of the original steps (some of the steps are already integrated in `react-native-newrelic`:** In `MainApplication.java` import Newrelic and override the following method: ``` java import com.newrelic.agent.android.NewRelic; public class MainApplication extends Application implements ReactApplication { ... public void onCreate() { super.onCreate(); NewRelic.withApplicationToken("yourApplicationToken").start(this); } ... } ``` Create `newrelic.properties` in your root android dir: ``` com.newrelic.application_token= yourApplicationToken ``` > Get your application token from newrelic.com #### 2. Add the `react-native-newrelic` module to your Android project In `settings.gradle`: ``` gradle include ':react-native-newrelic' project(':react-native-newrelic').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-newrelic/android') ``` In your project level `build.gradle`: ``` dependencies { ... classpath "com.newrelic.agent.android:agent-gradle-plugin:5.11.+" ... } ``` In your app level `build.gradle`: ``` gradle apply plugin: 'newrelic' dependencies { ... compile project(":react-native-newrelic") compile fileTree(dir: "node_modules/react-native-newrelic/android/libs", include: ["*.jar"]) ... } ``` Add `new RNNewRelicPackage()` to your list of packages in `getPackages()` in `MainApplication.java` : ``` java @Override public List<ReactPackage> getPackages() { return Arrays.<ReactPackage>asList(... new RNNewRelicPackage()); } ``` ## Configuration Add the following to your app root (e.g. `app.ios.js` ): ```javascript import {default as newRelic} from 'react-native-newrelic'; newRelic.init({ overrideConsole: true, reportUncaughtExceptions: true, globalAttributes: { 'this-string': 'will be sent with every event that is being reported' } }); ``` Credits to [@DanielZlotin](https://github.com/danielzlotin) for the initial version