跳转至

Trace 配置

本文用于承载 HarmonyOS Trace 初始化配置与链路追踪说明。

初始化配置

import { FTSDK } from '@guancecloud/ft_sdk/src/main/ets/components/FTSDK';
import { FTTraceConfig } from '@guancecloud/ft_sdk/src/main/ets/components/Configs';
import { TraceType } from '@guancecloud/ft_sdk/src/main/ets/components/trace/TraceType';

const traceConfig = new FTTraceConfig()
  .setSamplingRate(0.8)
  .setTraceType(TraceType.DDTRACE)
  .setEnableAutoTrace(true)
  .setEnableLinkRUMData(true);

FTSDK.installTraceConfig(traceConfig);
方法 类型 必须 说明
setSamplingRate number 采样率,范围 [0,1],默认 1
setTraceType TraceType 链路追踪类型,默认 DDTRACE
setEnableLinkRUMData boolean 是否与 RUM 数据关联,默认 false
setEnableAutoTrace boolean 是否开启自动 HTTP Trace,默认 false
setHeaderHandler HeaderHandler 设置全局 FTTraceHeaderHandler,用于自定义 Trace Header

自动追踪

开启 setEnableAutoTrace(true) 后,SDK 会自动为通过 RCP Session 或 HTTP/Axios 且挂载了 SDK 拦截器的请求注入 Trace Headers。

import { rcp } from '@kit.RemoteCommunicationKit';
import { createFTRCPTrackConfig } from '@guancecloud/ft_sdk/src/main/ets/components/network/FTHttpAutoTrack';

const session = rcp.createSession(createFTRCPTrackConfig({
  baseAddress: 'https://api.example.com'
}));

const request = new rcp.Request('/data', 'GET');
const response = await session.fetch(request);

手动获取 Trace Header

如果业务使用其他网络框架,可以手动获取 Trace Header 并添加到请求中:

import { FTTraceManager } from '@guancecloud/ft_sdk/src/main/ets/components/trace/FTTraceManager';
import http from '@ohos.net.http';

const url = 'https://api.example.com/data';
const resourceId = 'unique-resource-id';
const traceHeaders: Record<string, string> = FTTraceManager.getInstance().getTraceHeader(resourceId, url);

const httpRequest = http.createHttp();
const response = await httpRequest.request(url, {
  method: http.RequestMethod.GET,
  header: traceHeaders
});

Trace 类型

Trace 类型 协议 主要 Headers
DDTRACE DataDog Trace x-datadog-trace-idx-datadog-parent-idx-datadog-originx-datadog-sampling-priority
ZIPKIN_MULTI_HEADER Zipkin Multi-Header X-B3-TraceIdX-B3-SpanIdX-B3-ParentSpanIdX-B3-Sampled
ZIPKIN_SINGLE_HEADER Zipkin Single-Header b3
JAEGER Jaeger uber-trace-id
TRACEPARENT W3C Trace Context traceparenttracestate
SKYWALKING SkyWalking sw8

文档评价

文档内容是否对您有帮助? ×