@nativescript/firebase-performance
NativeScript Firebase - 性能监控
npm i --save @nativescript/firebase-performance

@nativescript/firebase-performance

内容

简介

此插件允许您在 NativeScript 应用中使用 Firebase 性能监控 API。

image

为您的应用设置 Firebase

在您启用 Firebase 性能监控之前,需要为您的应用设置 Firebase。要为 NativeScript 应用设置和初始化 Firebase,请遵循 @nativescript/firebase-core 插件文档中的说明。

将 Firebase 性能监控 SDK 添加到您的应用中

要将 Firebase 性能监控添加到您的应用中,请按照以下步骤操作

  1. 在项目的根目录中运行以下命令以安装 @nativescript/firebase-performance 插件。
npm install @nativescript/firebase-performance
  1. 通过导入 @nativescript/firebase-performance 模块添加 SDK。您应该在应用的某个地方导入此模块一次,最好是在主文件中(例如 app.tsmain.ts)。
import '@nativescript/firebase-performance';

添加自定义跟踪

您可以使用自定义跟踪来测量您的应用完成特定任务所需的时间量。

您可以通过调用 startTrace 方法并传递一个字符串来标识跟踪来开始您的自定义跟踪。然后您可以向跟踪中添加自定义属性和指标。最后,通过调用 stop 方法停止跟踪。

import { firebase } from '@nativescript/firebase-core';
import '@nativescript/firebase-performance';
async function customTrace() {
// Define & start a trace
const trace = await firebase().perf().startTrace('custom_trace');

// Define trace meta details
trace.putAttribute('user', 'abcd');
trace.putMetric('credits', 30);

// Stop the trace
await trace.stop();
}

添加 HTTP 请求跟踪

要为网络请求创建跟踪,请按照以下步骤操作

  • 使用请求的 URL 和 HTTP 方法创建 HttpMetric 类的实例。
const metric = await firebase().perf().newHttpMetric(url, 'GET');
  • 向指标中添加自定义属性。
metric.putAttribute('user', 'abcd');
  • 启动指标。
await metric.start();
  • 执行 HTTP 请求并提供响应信息。
const response = await fetch(url);
metric.setHttpResponseCode(response.statusCode);
metric.setResponseContentType(response.headers['Content-Type']);
metric.setResponsePayloadSize(response.headers['Content-Length']);
  • 停止指标。
await metric.stop();

上述步骤组合如下

import { firebase } from '@nativescript/firebase-core';
import '@nativescript/firebase-performance';

async function getRequest(url) {
// Define the network metric
const metric = await firebase().perf().newHttpMetric(url, 'GET');

// Define meta details
metric.putAttribute('user', 'abcd');

// Start the metric
await metric.start();

// Perform a HTTP request and provide response information
const response = await fetch(url);
metric.setHttpResponseCode(response.statusCode);
metric.setResponseContentType(response.headers['Content-Type']);
metric.setResponsePayloadSize(response.headers['Content-Length']);

// Stop the metric
await metric.stop();

return response.toJSON();
}

// Call API
getRequest('https://api.com').then((json) => {
console.log(json);
});

API

性能类

android

import { firebase } from '@nativescript/firebase-core';

performanceAndroid: com.google.firebase.perf.FirebasePerformance = firebase().perf().android;

一个只读属性,返回 Android 的性能监控实例。


ios

import { firebase } from '@nativescript/firebase-core';

performanceIOS: FIRPerformance = firebase().perf().ios;

一个只读属性,返回 iOS 的性能监控实例。


app

import { firebase } from '@nativescript/firebase-core';

performanceApp: FirebaseApp = firebase().perf().app;

一个只读属性,返回当前应用的 FirebaseApp 实例。


isPerformanceCollectionEnabled

import { firebase } from '@nativescript/firebase-core';

isPerformanceCollectionEnabled: boolean = firebase().perf().isPerformanceCollectionEnabled;
// or
firebase().perf().isPerformanceCollectionEnabled = true;

一个可读写属性,返回 truefalse,表示是否启用了性能监控。您还可以设置此属性来启用或禁用性能监控。


newHttpMetric()

import { firebase } from '@nativescript/firebase-core';

httpMetric: HttpMetric = firebase().perf().newHttpMetric(url, httpMethod);

创建一个新的 HttpMetric 实例,用于表示带有给定 URL 和 httpMethod 的 HTTP 请求跟踪。

参数 类型 描述
url 字符串
httpMethod HttpMethod

newTrace()

import { firebase } from '@nativescript/firebase-core';

trace: Trace = firebase().perf().newTrace(identifier);

创建一个新的 Trace 实例,带有给定的标识符。

参数 类型 描述
identifier 字符串

startTrace()

import { firebase } from '@nativescript/firebase-core';

trace: Trace = firebase().perf().startTrace(identifier);

创建并启动一个新的 Trace 实例,带有给定的标识符。

参数 类型 描述
identifier 字符串

HttpMetric 类

android

import { firebase } from '@nativescript/firebase-core';

httpMetricAndroid: com.google.firebase.perf.metrics.HttpMetric = httpMetric.android;

一个只读属性,返回 Android 的 HttpMetrics 实例。


ios

import { firebase } from '@nativescript/firebase-core';

httpMetricIOS: FIRHTTPMetric = httpMetric.ios;

一个只读属性,用于返回iOS的HttpMetric实例。


getAttribute()

someAttribute: string = httpMetric.getAttribute(attribute);

返回指定属性的值。

参数 类型 描述
属性 字符串 要获取值的属性名称。

getAttributes()

attributes: { [key: string]: string } = httpMetric.getAttributes();

putAttribute()

httpMetric.putAttribute(attribute, value);

关于此方法的描述,请参阅Firebase文档中的putAttribute()

参数 类型 描述
属性 字符串 要设置的属性名称。
字符串 要设置的属性值。

removeAttribute()

httpMetric.removeAttribute(attribute);

从跟踪度量中移除指定的属性。


setHttpResponseCode()

httpMetric.setHttpResponseCode(code);
参数 类型 描述
代码 数字 HTTP响应代码。

setRequestPayloadSize()

httpMetric.setRequestPayloadSize(bytes);
参数 类型 描述
字节 数字 请求数据负载的大小。

setResponseContentType()

httpMetric.setResponseContentType(contentType);
参数 类型 描述
contentType 字符串 HTTP响应的内容类型。例如:text/htmlapplication/json

start()

httpMetric.start();

标记HTTP请求/响应跟踪的开始。


stop()

httpMetric.stop();

标记响应的结束时间,并将网络请求度量在设备上排队以传输。


Trace 类

android

traceAndroid: com.google.firebase.perf.metrics.Trace = trace.android;

一个只读属性,用于返回Android的Trace实例。


ios

traceIOS: FIRTrace = trace.ios;

一个只读属性,用于返回iOS的Trace实例。


getAttribute()

someAttribute: string = trace.getAttribute(attribute);

返回跟踪的指定属性值。

参数 类型 描述
属性 字符串 要获取值的属性名称。

getMetric()

someMetric: number = trace.getMetric(metricName);

获取当前跟踪中给定名称的度量值。更多信息请参阅Firebase文档中的getMetric()

参数 类型 描述
metricName 字符串 要获取值的度量名称。

getMetrics()

metrics: { [key: string]: number } = trace.getMetrics();

incrementMetric()

trace.incrementMetric(metricName, incrementBy);

关于此方法的描述,请参阅Firebase文档中的incrementMetric()

参数 类型 描述
metricName 字符串 要增加的跟踪度量名称。
incrementBy 数字 增加度量的值。

putAttribute()

trace.putAttribute(attribute, value);

关于此方法的描述,请参阅Firebase文档中的putAttribute()

参数 类型 描述
属性 字符串
字符串

putMetric()

trace.putMetric(metricName, value);

关于此方法的描述,请参阅Firebase文档中的putMetric()

参数 类型 描述
metricName 字符串 要设置的跟踪度量名称。
数字 设置度量的值。

removeMetric()

trace.removeMetric(metricName);
参数 类型 描述
metricName 字符串 要从Trace实例中移除的跟踪度量名称。

start()

trace.start();

标记跟踪的开始时间。


stop()

trace.stop();

标记跟踪的结束时间,并将跟踪在设备上排队以传输。


许可

Apache License Version 2.0