Security News
Input Validation Vulnerabilities Dominate MITRE's 2024 CWE Top 25 List
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
@bibabovn/react-native-newrelic
Advanced tools
This module utilizes native New Relic agents to expose the Javascript environment. The New Relic SDKs collect crashes, network traffic, and other information for hybrid apps using native components.
yarn add @bibabovn/react-native-newrelic
Install the New Relic native Android agent (instructions here)
Update build.gradle:
buildscript {
...
repositories {
...
mavenCentral()
}
dependencies {
...
classpath "com.newrelic.agent.android:agent-gradle-plugin:5.+"
}
}
Update app/build.gradle
apply plugin: "com.android.application"
apply plugin: 'newrelic' // <-- add this
...
dependencies {
...
implementation "com.newrelic.agent.android:android-agent:5.+"
}
Update the app's MainApplication.java
file (./android/app/src/main/java/'{package}/MainApplication.java')
import com.newrelic.agent.android.NewRelic;
NewRelic.start(Context)
call from the default (Main) activity
(as detailed in step #5 of the agent installation instructions) to the MainApplication.onCreate()
method.
Context
parameter from this.getApplication()
to this
GENERATED_TOKEN
has been replaced with a valid New Relic application token@Override
public void onCreate() {
super.onCreate();
NewRelic.withApplicationToken("GENERATED_TOKEN").start(this);
...
}
Set app permissions
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
NewRelic doesn't officially support React Native yet, so some RN features may not work well with NewRelic like Flipper on iOS. So if you want to use RNNewRelic for development you'll need to disable it
// add this
pod 'NewRelicAgent'
pod install
AppDelegate.m
file #import <NewRelicAgent/NewRelic.h>
application:didFinishLaunchingWithOptions
[NewRelicAgent startWithApplicationToken:@"GENERATED_TOKEN"];
SCRIPT=`/usr/bin/find "${SRCROOT}" -name newrelic_postbuild.sh | head -n 1`
/bin/sh "${SCRIPT}" "YOUR_GENERATED_TOKEN"
PrefixHeader.pch
file as explained here Your file should look like this: #ifdef __OBJC__
#import <NewRelicAgent/NewRelic.h>
#endif
Call this to initialize the SDK. Pass a name of the app's landing screen as an argument.
firstScreen
is textCall this to record a custom error event.
inError
is JavaScript exceptionCall this to record a custom error event at
error
level.
inError
is JavaScript exceptionCall this to record a custom error event at
warning
level.
inError
is JavaScript exceptionCall this to record a custom error event at
critical
level.
inError
is JavaScript exceptionCall this to associate a user with custom events.
userId
is textCall this to record an interaction event.
screen
is textCall this to record a custom metric.
sampledata
is JSONimport * as React from 'react';
import {
StyleSheet,
View,
Text,
FlatList,
Button,
SafeAreaView,
} from 'react-native';
import {
nrInit,
nrAddUserId,
nrError,
nrInteraction,
nrCritical,
nrRecordMetric,
} from 'react-native-newrelic';
export default function App() {
const [dataSource, setResult] = React.useState<any>([]);
const [isLoading, setLoading] = React.useState<boolean>(true);
React.useEffect(() => {
nrInit('Test-Screen');
nrAddUserId('TestUser');
nrInteraction('TestScreen');
}, []);
React.useEffect(() => {
fetch('https://facebook.github.io/react-native/movies.json')
.then((response) => response.json())
.then((responseJson) => {
console.log(responseJson);
setLoading(false);
setResult(responseJson.movies);
})
.catch((error) => {
// logging function can be added here as well
console.error(error);
nrError(error);
});
}, []);
React.useEffect(() => {
// Create Custom event tables in New Relic Insights
const sampledata = {
cityName: 'Philadelphia',
zipCode: 19134,
username: 'bob',
alive: true,
};
nrRecordMetric('MyCustomMetric', sampledata);
}, []);
const badApiLoad = () => {
setLoading(true);
fetch('https://facebook.github.io/react-native/moviessssssssss.json')
.then((response) => response.json())
.then((responseJson) => {
console.log(responseJson);
setLoading(false);
setResult(responseJson.movies);
})
.catch((error) => {
setLoading(false);
console.error(error);
// logging function can be added here as well
nrCritical(error);
});
};
return (
<SafeAreaView style={styles.container}>
<Button title={'Bad API'} onPress={badApiLoad} color={'#3365f3'} />
<FlatList
style={{ flex: 1 }}
data={dataSource}
renderItem={({ item }) => (
<Text>
{item.title}, {item.releaseYear}
</Text>
)}
keyExtractor={({ id }) => id}
ListEmptyComponent={
<View>{isLoading ? <Text>Loading...</Text> : null}</View>
}
/>
</SafeAreaView>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
padding: 16,
},
box: {
width: 60,
height: 60,
marginVertical: 20,
},
});
MIT
FAQs
New relic module for react native IOS and Android app
The npm package @bibabovn/react-native-newrelic receives a total of 11 weekly downloads. As such, @bibabovn/react-native-newrelic popularity was classified as not popular.
We found that @bibabovn/react-native-newrelic demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.