Trace 配置¶
Trace 初始化配置¶
let traceConfig: FTTraceConfig = {
enableNativeAutoTrace: true,
};
await FTReactNativeTrace.setConfig(traceConfig);
| 字段 | 类型 | 必须 | 说明 |
|---|---|---|---|
| sampleRate | number | 否 | 采样率,取值范围 [0,1],0 表示不采集,1 表示全采集,默认值为 1 |
| traceType | enum TraceType | 否 | 链路类型,默认 TraceType.ddTrace。支持 TraceType.ddTrace、TraceType.zipkinMulti、TraceType.zipkinSingle、TraceType.traceparent、TraceType.skywalking、TraceType.jaeger |
| enableLinkRUMData | boolean | 否 | 是否与 RUM 数据关联,默认 false |
| enableNativeAutoTrace | boolean | 否 | 是否开启原生网络自动追踪 iOS NSURLSession、Android OKhttp。由于 React Native 的网络请求在 iOS、Android 端是使用系统 API 实现的,开启后,所有 React Native 请求数据能够一并追踪 |
Tracer 网络链路追踪¶
SDK 初始化 Trace 配置 时可以开启自动网络链路追踪,也支持用户自定义采集。
使用方法¶
/**
* 获取 trace HTTP 请求头数据。
* @deprecated use getTraceHeaderFields() replace.
*/
getTraceHeader(key: String, url: String): Promise<object>;
/**
* 获取 trace HTTP 请求头数据。
*/
getTraceHeaderFields(url: String, key?: String): Promise<object>;
使用示例¶
import { FTReactNativeTrace } from '@cloudcare/react-native-mobile';
async function getHttp(url: string) {
const key = Utils.getUUID();
const traceHeader = await FTReactNativeTrace.getTraceHeaderFields(url);
const fetchOptions = {
method: 'GET',
headers: Object.assign(
{
Accept: 'application/json',
'Content-Type': 'application/json',
},
traceHeader,
),
};
fetch(url, fetchOptions);
}