[perf][android] Add documentation
This commit is contained in:
parent
66d7e3c944
commit
d0d09163df
@ -0,0 +1,58 @@
|
|||||||
|
package io.invertase.firebase.perf;
|
||||||
|
|
||||||
|
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.facebook.react.bridge.ReactApplicationContext;
|
||||||
|
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||||
|
import com.facebook.react.bridge.ReactMethod;
|
||||||
|
import com.google.firebase.perf.FirebasePerformance;
|
||||||
|
import com.google.firebase.perf.metrics.Trace;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
public class RNFirebasePerformance extends ReactContextBaseJavaModule {
|
||||||
|
|
||||||
|
private static final String TAG = "RNFirebasePerformance";
|
||||||
|
private HashMap<String, Trace> traces = new HashMap<>();
|
||||||
|
|
||||||
|
public RNFirebasePerformance(ReactApplicationContext reactContext) {
|
||||||
|
super(reactContext);
|
||||||
|
Log.d(TAG, "New instance");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return TAG;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void start(String identifier) {
|
||||||
|
Trace trace = getOrCreateTrace(identifier);
|
||||||
|
trace.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void stop(String identifier) {
|
||||||
|
Trace trace = getOrCreateTrace(identifier);
|
||||||
|
trace.stop();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ReactMethod
|
||||||
|
public void incrementCounter(String identifier, String event) {
|
||||||
|
Trace trace = getOrCreateTrace(identifier);
|
||||||
|
trace.incrementCounter(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Trace getOrCreateTrace(String identifier) {
|
||||||
|
if (traces.containsKey(identifier)) {
|
||||||
|
return traces.get(identifier);
|
||||||
|
}
|
||||||
|
Trace trace = FirebasePerformance.getInstance().newTrace(identifier);
|
||||||
|
traces.put(identifier, trace);
|
||||||
|
return trace;
|
||||||
|
}
|
||||||
|
}
|
54
docs/modules/perf.md
Normal file
54
docs/modules/perf.md
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
# Performance Monitoring
|
||||||
|
|
||||||
|
!> Performance monitoring requires react-native-firebase version 1.2.0.
|
||||||
|
|
||||||
|
?> If you plan on using this module in your own application, please ensure the optional setup instructions for
|
||||||
|
[Android](#) and [iOS](#) have been followed.
|
||||||
|
|
||||||
|
Out of the box, [Firebase Performance Monitoring](https://firebase.google.com/docs/perf-mon/automatic) monitors a number of
|
||||||
|
[automatic traces](https://firebase.google.com/docs/perf-mon/automatic) such as app start/background/foreground response times.
|
||||||
|
You can easily trace your own events with RNFirebase:
|
||||||
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
#### newTrace(id: `string`): `Trace`
|
||||||
|
|
||||||
|
Returns a new instance of Trace (see API below). The id is the unique name of something you'd like to run performance
|
||||||
|
monitoring against.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const trace = firebase.perf().newTrace("test_trace");
|
||||||
|
```
|
||||||
|
|
||||||
|
### Trace
|
||||||
|
|
||||||
|
#### start()
|
||||||
|
|
||||||
|
Initializes the trace to start tracing performance to relay back to Firebase.
|
||||||
|
|
||||||
|
```js
|
||||||
|
trace.start();
|
||||||
|
```
|
||||||
|
|
||||||
|
#### incrementCounter(event: string)
|
||||||
|
|
||||||
|
Notifies Firebase an event has occured. These events will be visible on Firebase once your trace has stopped.
|
||||||
|
|
||||||
|
```js
|
||||||
|
someCacheService.get('user:123')
|
||||||
|
.then((user) => {
|
||||||
|
if (user) {
|
||||||
|
trace.incrementCounter('user_cache_hit');
|
||||||
|
} else {
|
||||||
|
trace.incrementCounter('user_cache_missed');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
#### stop()
|
||||||
|
|
||||||
|
Stops performance tracing. The completed trace stats are now sent to Firebase.
|
||||||
|
|
||||||
|
```js
|
||||||
|
trace.stop();
|
||||||
|
```
|
Loading…
x
Reference in New Issue
Block a user