1e41f4b71Sopenharmony_ci# Hitrace
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ci## 概述
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_cihiTraceMeter为开发者提供系统性能打点接口。
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ci开发者通过在自己的业务逻辑中的关键代码位置调用HiTraceMeter系统跟踪提供的API接口,能够有效进行关键执行流程耗时度量和问题定位。
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_cihitraceChain为开发者提供跨线程、跨进程的分布式跟踪能力。 HiTraceChain支持在业务执行流程中,生成和传递唯一跟踪标识,在业务流程中输出的各类调试信息中(包括应用事件、系统事件、日志等)携带该跟踪标识。 在调试、问题定位过程中,开发人员可以通过该唯一跟踪标识将本次业务流程端到端的各类信息快速关联起来。
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci**起始版本:** 10
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci## 汇总
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci### 文件
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci| 名称 | 描述 | 
23e41f4b71Sopenharmony_ci| -------- | -------- |
24e41f4b71Sopenharmony_ci| [trace.h](trace_8h.md) | HiTraceMeterH模块打点接口定义,通过这些接口实现性能打点相关功能。 | 
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci### 结构体
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci| 名称 | 描述 | 
30e41f4b71Sopenharmony_ci| -------- | -------- |
31e41f4b71Sopenharmony_ci| struct  [HiTraceId](_hi_trace_id.md) | HiTraceId定义 | 
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ci### 类型定义
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ci| 名称 | 描述 | 
37e41f4b71Sopenharmony_ci| -------- | -------- |
38e41f4b71Sopenharmony_ci| typedef enum [HiTraceId_Valid](#hitraceid_valid) [HiTraceId_Valid](#hitraceid_valid) | HiTraceId是否有效标志 | 
39e41f4b71Sopenharmony_ci| typedef enum [HiTrace_Version](#hitrace_version) [HiTrace_Version](#hitrace_version) | HiTrace版本号 | 
40e41f4b71Sopenharmony_ci| typedef enum [HiTrace_Flag](#hitrace_flag) [HiTrace_Flag](#hitrace_flag) | HiTrace标志位 | 
41e41f4b71Sopenharmony_ci| typedef enum [HiTrace_Tracepoint_Type](#hitrace_tracepoint_type) [HiTrace_Tracepoint_Type](#hitrace_tracepoint_type) | HiTrace打点类型 | 
42e41f4b71Sopenharmony_ci| typedef enum [HiTrace_Communication_Mode](#hitrace_communication_mode) [HiTrace_Communication_Mode](#hitrace_communication_mode) | HiTrace通信模式枚举 | 
43e41f4b71Sopenharmony_ci| typedef struct [HiTraceId](_hi_trace_id.md) HiTraceId | HiTraceId定义 | 
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci
46e41f4b71Sopenharmony_ci### 枚举
47e41f4b71Sopenharmony_ci
48e41f4b71Sopenharmony_ci| 名称 | 描述 | 
49e41f4b71Sopenharmony_ci| -------- | -------- |
50e41f4b71Sopenharmony_ci| [HiTraceId_Valid](#hitraceid_valid) { HITRACE_ID_INVALID = 0, HITRACE_ID_VALID = 1 } | HiTraceId是否有效标志 | 
51e41f4b71Sopenharmony_ci| [HiTrace_Version](#hitrace_version) { HITRACE_VER_1 = 0 } | HiTrace版本号 | 
52e41f4b71Sopenharmony_ci| [HiTrace_Flag](#hitrace_flag) {<br/>HITRACE_FLAG_DEFAULT = 0, HITRACE_FLAG_INCLUDE_ASYNC = 1 &lt;&lt; 0, HITRACE_FLAG_DONOT_CREATE_SPAN = 1 &lt;&lt; 1, HITRACE_FLAG_TP_INFO = 1 &lt;&lt; 2,<br/>HITRACE_FLAG_NO_BE_INFO = 1 &lt;&lt; 3, HITRACE_FLAG_DONOT_ENABLE_LOG = 1 &lt;&lt; 4, HITRACE_FLAG_FAULT_TRIGGER = 1 &lt;&lt; 5, HITRACE_FLAG_D2D_TP_INFO = 1 &lt;&lt; 6<br/>} | HiTrace标志位 | 
53e41f4b71Sopenharmony_ci| [HiTrace_Tracepoint_Type](#hitrace_tracepoint_type) {<br/>HITRACE_TP_CS = 0, HITRACE_TP_CR = 1, HITRACE_TP_SS = 2, HITRACE_TP_SR = 3,<br/>HITRACE_TP_GENERAL = 4<br/>} | HiTrace打点类型 | 
54e41f4b71Sopenharmony_ci| [HiTrace_Communication_Mode](#hitrace_communication_mode) { HITRACE_CM_DEFAULT = 0, HITRACE_CM_THREAD = 1, HITRACE_CM_PROCESS = 2, HITRACE_CM_DEVICE = 3 } | HiTrace通信模式枚举 | 
55e41f4b71Sopenharmony_ci
56e41f4b71Sopenharmony_ci
57e41f4b71Sopenharmony_ci### 函数
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci| 名称 | 描述 | 
60e41f4b71Sopenharmony_ci| -------- | -------- |
61e41f4b71Sopenharmony_ci| [HiTraceId](_hi_trace_id.md) [OH_HiTrace_BeginChain](#oh_hitrace_beginchain) (const char \*name, int flags) | 开始跟踪进程实现。 | 
62e41f4b71Sopenharmony_ci| void [OH_HiTrace_EndChain](#oh_hitrace_endchain) () | 如果给定的跟踪ID有效,则停止进程跟踪并清除当前线程的跟踪ID,否则不执行任何操作。 | 
63e41f4b71Sopenharmony_ci| [HiTraceId](_hi_trace_id.md) [OH_HiTrace_GetId](#oh_hitrace_getid) () | 获取当前线程的跟踪ID,如果没有属于当前线程的跟踪ID,则返回一个无效的跟踪ID | 
64e41f4b71Sopenharmony_ci| void [OH_HiTrace_SetId](#oh_hitrace_setid) (const [HiTraceId](_hi_trace_id.md) \*id) | 将id设置为当前线程的跟踪id。如果ID无效,则不执行任何操作。 | 
65e41f4b71Sopenharmony_ci| void [OH_HiTrace_ClearId](#oh_hitrace_clearid) (void) | 清除当前线程的跟踪ID并将其设置为无效。 | 
66e41f4b71Sopenharmony_ci| [HiTraceId](_hi_trace_id.md) [OH_HiTrace_CreateSpan](#oh_hitrace_createspan) (void) | 根据当前线程的跟踪id创建一个新的span id。 | 
67e41f4b71Sopenharmony_ci| void [OH_HiTrace_Tracepoint](#oh_hitrace_tracepoint) ([HiTrace_Communication_Mode](#hitrace_communication_mode) mode, [HiTrace_Tracepoint_Type](#hitrace_tracepoint_type) type, const [HiTraceId](_hi_trace_id.md) \*id, const char \*fmt,...) | 打印hitrace信息,包括跟踪ID信息。 | 
68e41f4b71Sopenharmony_ci| void [OH_HiTrace_InitId](#oh_hitrace_initid) ([HiTraceId](_hi_trace_id.md) \*id) | 初始化HiTraceId结构体。 | 
69e41f4b71Sopenharmony_ci| void [OH_HiTrace_IdFromBytes](#oh_hitrace_idfrombytes) ([HiTraceId](_hi_trace_id.md) \*id, const uint8_t \*pIdArray, int len) | 根据字节数组创建跟踪HiTraceId结构体。 | 
70e41f4b71Sopenharmony_ci| bool [OH_HiTrace_IsIdValid](#oh_hitrace_isidvalid) (const [HiTraceId](_hi_trace_id.md) \*id) | 判断trace id是否有效。 | 
71e41f4b71Sopenharmony_ci| bool [OH_HiTrace_IsFlagEnabled](#oh_hitrace_isflagenabled) (const [HiTraceId](_hi_trace_id.md) \*id, [HiTrace_Flag](#hitrace_flag) flag) | 判断跟踪id是否启用了跟踪标志。 | 
72e41f4b71Sopenharmony_ci| void [OH_HiTrace_EnableFlag](#oh_hitrace_enableflag) (const [HiTraceId](_hi_trace_id.md) \*id, [HiTrace_Flag](#hitrace_flag) flag) | 启用跟踪ID的指定跟踪标志。 | 
73e41f4b71Sopenharmony_ci| int [OH_HiTrace_GetFlags](#oh_hitrace_getflags) (const [HiTraceId](_hi_trace_id.md) \*id) | 获取HiTraceId结构体中设置的标志位。 | 
74e41f4b71Sopenharmony_ci| void [OH_HiTrace_SetFlags](#oh_hitrace_setflags) ([HiTraceId](_hi_trace_id.md) \*id, int flags) | 设置跟踪标志位到HiTraceId结构体中。 | 
75e41f4b71Sopenharmony_ci| uint64_t [OH_HiTrace_GetChainId](#oh_hitrace_getchainid) (const [HiTraceId](_hi_trace_id.md) \*id) | 获取跟踪链ID。 | 
76e41f4b71Sopenharmony_ci| void [OH_HiTrace_SetChainId](#oh_hitrace_setchainid) ([HiTraceId](_hi_trace_id.md) \*id, uint64_t chainId) | 设置跟踪链ID到HiTraceId结构体中。 | 
77e41f4b71Sopenharmony_ci| uint64_t [OH_HiTrace_GetSpanId](#oh_hitrace_getspanid) (const [HiTraceId](_hi_trace_id.md) \*id) | 获取当前HiTraceId结构体中的分支ID。 | 
78e41f4b71Sopenharmony_ci| void [OH_HiTrace_SetSpanId](#oh_hitrace_setspanid) ([HiTraceId](_hi_trace_id.md) \*id, uint64_t spanId) | 设置分支ID到HiTraceId结构体中。 | 
79e41f4b71Sopenharmony_ci| uint64_t [OH_HiTrace_GetParentSpanId](#oh_hitrace_getparentspanid) (const [HiTraceId](_hi_trace_id.md) \*id) | 获取当前HiTraceId结构体中的父分支ID。 | 
80e41f4b71Sopenharmony_ci| void [OH_HiTrace_SetParentSpanId](#oh_hitrace_setparentspanid) ([HiTraceId](_hi_trace_id.md) \*id, uint64_t parentSpanId) | 设置HiTraceId结构的parentSpanId字符。 | 
81e41f4b71Sopenharmony_ci| int [OH_HiTrace_IdToBytes](#oh_hitrace_idtobytes) (const [HiTraceId](_hi_trace_id.md) \*id, uint8_t \*pIdArray, int len) | 将HiTraceId结构体转换为字节数组,用于缓存或者通信传递。 | 
82e41f4b71Sopenharmony_ci| void [OH_HiTrace_StartTrace](#oh_hitrace_starttrace) (const char \*name) | 标记一个同步跟踪耗时任务的开始。 | 
83e41f4b71Sopenharmony_ci| void [OH_HiTrace_FinishTrace](#oh_hitrace_finishtrace) (void) | 标记一个同步跟踪耗时任务的结束。 | 
84e41f4b71Sopenharmony_ci| void [OH_HiTrace_StartAsyncTrace](#oh_hitrace_startasynctrace) (const char \*name, int32_t taskId) | 标记一个异步跟踪耗时任务的开始。 | 
85e41f4b71Sopenharmony_ci| void [OH_HiTrace_FinishAsyncTrace](#oh_hitrace_finishasynctrace) (const char \*name, int32_t taskId) | 标记一个异步跟踪耗时任务的结束。 | 
86e41f4b71Sopenharmony_ci| void [OH_HiTrace_CountTrace](#oh_hitrace_counttrace) (const char \*name, int64_t count) | 用于跟踪给定整数变量名和整数值。 | 
87e41f4b71Sopenharmony_ci
88e41f4b71Sopenharmony_ci
89e41f4b71Sopenharmony_ci### 变量
90e41f4b71Sopenharmony_ci
91e41f4b71Sopenharmony_ci| 名称 | 描述 | 
92e41f4b71Sopenharmony_ci| -------- | -------- |
93e41f4b71Sopenharmony_ci| uint64_t [HiTraceId::valid](#valid): 1 | HiTraceId是否有效 | 
94e41f4b71Sopenharmony_ci| uint64_t [HiTraceId::ver](#ver): 3 | HiTraceId的版本号 | 
95e41f4b71Sopenharmony_ci| uint64_t [HiTraceId::chainId](#chainid): 60 | HiTraceId的链Id | 
96e41f4b71Sopenharmony_ci| uint64_t [HiTraceId::flags](#flags): 12 | HiTraceId的标志位 | 
97e41f4b71Sopenharmony_ci| uint64_t [HiTraceId::spanId](#spanid): 26 | HiTraceId的当前跨度号 | 
98e41f4b71Sopenharmony_ci| uint64_t [HiTraceId::parentSpanId](#parentspanid): 26 | HiTraceId的父跨度号 | 
99e41f4b71Sopenharmony_ci
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci## 类型定义说明
102e41f4b71Sopenharmony_ci
103e41f4b71Sopenharmony_ci
104e41f4b71Sopenharmony_ci### HiTrace_Communication_Mode
105e41f4b71Sopenharmony_ci
106e41f4b71Sopenharmony_ci```
107e41f4b71Sopenharmony_citypedef enum HiTrace_Communication_Mode HiTrace_Communication_Mode
108e41f4b71Sopenharmony_ci```
109e41f4b71Sopenharmony_ci
110e41f4b71Sopenharmony_ci**描述**
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_ciHiTrace通信模式枚举
113e41f4b71Sopenharmony_ci
114e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
115e41f4b71Sopenharmony_ci
116e41f4b71Sopenharmony_ci**起始版本:** 12
117e41f4b71Sopenharmony_ci
118e41f4b71Sopenharmony_ci
119e41f4b71Sopenharmony_ci### HiTrace_Flag
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_ci```
122e41f4b71Sopenharmony_citypedef enum HiTrace_Flag HiTrace_Flag
123e41f4b71Sopenharmony_ci```
124e41f4b71Sopenharmony_ci
125e41f4b71Sopenharmony_ci**描述**
126e41f4b71Sopenharmony_ci
127e41f4b71Sopenharmony_ciHiTrace标志位
128e41f4b71Sopenharmony_ci
129e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
130e41f4b71Sopenharmony_ci
131e41f4b71Sopenharmony_ci**起始版本:** 12
132e41f4b71Sopenharmony_ci
133e41f4b71Sopenharmony_ci
134e41f4b71Sopenharmony_ci### HiTrace_Tracepoint_Type
135e41f4b71Sopenharmony_ci
136e41f4b71Sopenharmony_ci```
137e41f4b71Sopenharmony_citypedef enum HiTrace_Tracepoint_Type HiTrace_Tracepoint_Type
138e41f4b71Sopenharmony_ci```
139e41f4b71Sopenharmony_ci
140e41f4b71Sopenharmony_ci**描述**
141e41f4b71Sopenharmony_ci
142e41f4b71Sopenharmony_ciHiTrace打点类型
143e41f4b71Sopenharmony_ci
144e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
145e41f4b71Sopenharmony_ci
146e41f4b71Sopenharmony_ci**起始版本:** 12
147e41f4b71Sopenharmony_ci
148e41f4b71Sopenharmony_ci
149e41f4b71Sopenharmony_ci### HiTrace_Version
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_ci```
152e41f4b71Sopenharmony_citypedef enum HiTrace_Version HiTrace_Version
153e41f4b71Sopenharmony_ci```
154e41f4b71Sopenharmony_ci
155e41f4b71Sopenharmony_ci**描述**
156e41f4b71Sopenharmony_ci
157e41f4b71Sopenharmony_ciHiTrace版本号
158e41f4b71Sopenharmony_ci
159e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
160e41f4b71Sopenharmony_ci
161e41f4b71Sopenharmony_ci**起始版本:** 12
162e41f4b71Sopenharmony_ci
163e41f4b71Sopenharmony_ci
164e41f4b71Sopenharmony_ci### HiTraceId_Valid
165e41f4b71Sopenharmony_ci
166e41f4b71Sopenharmony_ci```
167e41f4b71Sopenharmony_citypedef enum HiTraceId_Valid HiTraceId_Valid
168e41f4b71Sopenharmony_ci```
169e41f4b71Sopenharmony_ci
170e41f4b71Sopenharmony_ci**描述**
171e41f4b71Sopenharmony_ci
172e41f4b71Sopenharmony_ciHiTraceId是否有效标志
173e41f4b71Sopenharmony_ci
174e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
175e41f4b71Sopenharmony_ci
176e41f4b71Sopenharmony_ci**起始版本:** 12
177e41f4b71Sopenharmony_ci
178e41f4b71Sopenharmony_ci
179e41f4b71Sopenharmony_ci## 枚举类型说明
180e41f4b71Sopenharmony_ci
181e41f4b71Sopenharmony_ci
182e41f4b71Sopenharmony_ci### HiTrace_Communication_Mode
183e41f4b71Sopenharmony_ci
184e41f4b71Sopenharmony_ci```
185e41f4b71Sopenharmony_cienum HiTrace_Communication_Mode
186e41f4b71Sopenharmony_ci```
187e41f4b71Sopenharmony_ci
188e41f4b71Sopenharmony_ci**描述**
189e41f4b71Sopenharmony_ci
190e41f4b71Sopenharmony_ciHiTrace通信模式枚举
191e41f4b71Sopenharmony_ci
192e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
193e41f4b71Sopenharmony_ci
194e41f4b71Sopenharmony_ci**起始版本:** 12
195e41f4b71Sopenharmony_ci
196e41f4b71Sopenharmony_ci| 枚举值 | 描述 | 
197e41f4b71Sopenharmony_ci| -------- | -------- |
198e41f4b71Sopenharmony_ci| HITRACE_CM_DEFAULT | 未指明<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
199e41f4b71Sopenharmony_ci| HITRACE_CM_THREAD | 线程间通信<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
200e41f4b71Sopenharmony_ci| HITRACE_CM_PROCESS | 进程间通信<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
201e41f4b71Sopenharmony_ci| HITRACE_CM_DEVICE | 设备间通信<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
202e41f4b71Sopenharmony_ci
203e41f4b71Sopenharmony_ci
204e41f4b71Sopenharmony_ci### HiTrace_Flag
205e41f4b71Sopenharmony_ci
206e41f4b71Sopenharmony_ci```
207e41f4b71Sopenharmony_cienum HiTrace_Flag
208e41f4b71Sopenharmony_ci```
209e41f4b71Sopenharmony_ci
210e41f4b71Sopenharmony_ci**描述**
211e41f4b71Sopenharmony_ci
212e41f4b71Sopenharmony_ciHiTrace标志位
213e41f4b71Sopenharmony_ci
214e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
215e41f4b71Sopenharmony_ci
216e41f4b71Sopenharmony_ci**起始版本:** 12
217e41f4b71Sopenharmony_ci
218e41f4b71Sopenharmony_ci| 枚举值 | 描述 | 
219e41f4b71Sopenharmony_ci| -------- | -------- |
220e41f4b71Sopenharmony_ci| HITRACE_FLAG_DEFAULT | 默认值<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
221e41f4b71Sopenharmony_ci| HITRACE_FLAG_INCLUDE_ASYNC | 跟踪同步和异步调用。默认:仅跟踪同步调用。<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
222e41f4b71Sopenharmony_ci| HITRACE_FLAG_DONOT_CREATE_SPAN | 不创建child span。默认创建。<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
223e41f4b71Sopenharmony_ci| HITRACE_FLAG_TP_INFO | 在span中输出跟踪点信息,默认不输出跟踪点信息。<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
224e41f4b71Sopenharmony_ci| HITRACE_FLAG_NO_BE_INFO | 不输出开始和结束信息,默认输出开始和结束信息。<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
225e41f4b71Sopenharmony_ci| HITRACE_FLAG_DONOT_ENABLE_LOG | 不添加id到日志中,默认添加id到日志中。<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
226e41f4b71Sopenharmony_ci| HITRACE_FLAG_FAULT_TRIGGER | 跟踪是由故障触发的。<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
227e41f4b71Sopenharmony_ci| HITRACE_FLAG_D2D_TP_INFO | 仅输出span中的设备到设备跟踪点信息。默认值:不输出设备到设备跟踪点信息。<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
228e41f4b71Sopenharmony_ci
229e41f4b71Sopenharmony_ci
230e41f4b71Sopenharmony_ci### HiTrace_Tracepoint_Type
231e41f4b71Sopenharmony_ci
232e41f4b71Sopenharmony_ci```
233e41f4b71Sopenharmony_cienum HiTrace_Tracepoint_Type
234e41f4b71Sopenharmony_ci```
235e41f4b71Sopenharmony_ci
236e41f4b71Sopenharmony_ci**描述**
237e41f4b71Sopenharmony_ci
238e41f4b71Sopenharmony_ciHiTrace打点类型
239e41f4b71Sopenharmony_ci
240e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
241e41f4b71Sopenharmony_ci
242e41f4b71Sopenharmony_ci**起始版本:** 12
243e41f4b71Sopenharmony_ci
244e41f4b71Sopenharmony_ci| 枚举值 | 描述 | 
245e41f4b71Sopenharmony_ci| -------- | -------- |
246e41f4b71Sopenharmony_ci| HITRACE_TP_CS | 客户端发送<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
247e41f4b71Sopenharmony_ci| HITRACE_TP_CR | 客户端接收<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
248e41f4b71Sopenharmony_ci| HITRACE_TP_SS | 服务端发送<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
249e41f4b71Sopenharmony_ci| HITRACE_TP_SR | 服务端接收<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
250e41f4b71Sopenharmony_ci| HITRACE_TP_GENERAL | 整体信息<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
251e41f4b71Sopenharmony_ci
252e41f4b71Sopenharmony_ci
253e41f4b71Sopenharmony_ci### HiTrace_Version
254e41f4b71Sopenharmony_ci
255e41f4b71Sopenharmony_ci```
256e41f4b71Sopenharmony_cienum HiTrace_Version
257e41f4b71Sopenharmony_ci```
258e41f4b71Sopenharmony_ci
259e41f4b71Sopenharmony_ci**描述**
260e41f4b71Sopenharmony_ci
261e41f4b71Sopenharmony_ciHiTrace版本号
262e41f4b71Sopenharmony_ci
263e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
264e41f4b71Sopenharmony_ci
265e41f4b71Sopenharmony_ci**起始版本:** 12
266e41f4b71Sopenharmony_ci
267e41f4b71Sopenharmony_ci| 枚举值 | 描述 | 
268e41f4b71Sopenharmony_ci| -------- | -------- |
269e41f4b71Sopenharmony_ci| HITRACE_VER_1 | 版本1<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
270e41f4b71Sopenharmony_ci
271e41f4b71Sopenharmony_ci
272e41f4b71Sopenharmony_ci### HiTraceId_Valid
273e41f4b71Sopenharmony_ci
274e41f4b71Sopenharmony_ci```
275e41f4b71Sopenharmony_cienum HiTraceId_Valid
276e41f4b71Sopenharmony_ci```
277e41f4b71Sopenharmony_ci
278e41f4b71Sopenharmony_ci**描述**
279e41f4b71Sopenharmony_ci
280e41f4b71Sopenharmony_ciHiTraceId是否有效标志
281e41f4b71Sopenharmony_ci
282e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
283e41f4b71Sopenharmony_ci
284e41f4b71Sopenharmony_ci**起始版本:** 12
285e41f4b71Sopenharmony_ci
286e41f4b71Sopenharmony_ci| 枚举值 | 描述 | 
287e41f4b71Sopenharmony_ci| -------- | -------- |
288e41f4b71Sopenharmony_ci| HITRACE_ID_INVALID | 无效HiTraceId<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
289e41f4b71Sopenharmony_ci| HITRACE_ID_VALID | 有效HiTraceId<br/>SysCap:<br/>SystemCapability.HiviewDFX.HiTrace | 
290e41f4b71Sopenharmony_ci
291e41f4b71Sopenharmony_ci
292e41f4b71Sopenharmony_ci## 函数说明
293e41f4b71Sopenharmony_ci
294e41f4b71Sopenharmony_ci
295e41f4b71Sopenharmony_ci### OH_HiTrace_BeginChain()
296e41f4b71Sopenharmony_ci
297e41f4b71Sopenharmony_ci```
298e41f4b71Sopenharmony_ciHiTraceId OH_HiTrace_BeginChain (const char * name, int flags )
299e41f4b71Sopenharmony_ci```
300e41f4b71Sopenharmony_ci
301e41f4b71Sopenharmony_ci**描述**
302e41f4b71Sopenharmony_ci
303e41f4b71Sopenharmony_ci开始跟踪进程实现。
304e41f4b71Sopenharmony_ci
305e41f4b71Sopenharmony_ci启动跟踪;生成HiTraceId结构体并设置到当前线程TLS中。第一次调用有效,否则无效。
306e41f4b71Sopenharmony_ci
307e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
308e41f4b71Sopenharmony_ci
309e41f4b71Sopenharmony_ci**起始版本:** 12
310e41f4b71Sopenharmony_ci
311e41f4b71Sopenharmony_ci**参数:**
312e41f4b71Sopenharmony_ci
313e41f4b71Sopenharmony_ci| 名称 | 描述 | 
314e41f4b71Sopenharmony_ci| -------- | -------- |
315e41f4b71Sopenharmony_ci| name | 跟踪业务名 | 
316e41f4b71Sopenharmony_ci| flags | 跟踪功能标志,见[HiTrace_Flag](#hitrace_flag)。  | 
317e41f4b71Sopenharmony_ci
318e41f4b71Sopenharmony_ci**返回:**
319e41f4b71Sopenharmony_ci
320e41f4b71Sopenharmony_ci生成的HitraceId,见[HiTraceId](_hi_trace_id.md)。
321e41f4b71Sopenharmony_ci
322e41f4b71Sopenharmony_ci
323e41f4b71Sopenharmony_ci### OH_HiTrace_ClearId()
324e41f4b71Sopenharmony_ci
325e41f4b71Sopenharmony_ci```
326e41f4b71Sopenharmony_civoid OH_HiTrace_ClearId (void )
327e41f4b71Sopenharmony_ci```
328e41f4b71Sopenharmony_ci
329e41f4b71Sopenharmony_ci**描述**
330e41f4b71Sopenharmony_ci
331e41f4b71Sopenharmony_ci清除当前线程的跟踪ID并将其设置为无效。
332e41f4b71Sopenharmony_ci
333e41f4b71Sopenharmony_ci清除当前线程TLS中的HiTraceId结构体。
334e41f4b71Sopenharmony_ci
335e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
336e41f4b71Sopenharmony_ci
337e41f4b71Sopenharmony_ci**起始版本:** 12
338e41f4b71Sopenharmony_ci
339e41f4b71Sopenharmony_ci
340e41f4b71Sopenharmony_ci### OH_HiTrace_CountTrace()
341e41f4b71Sopenharmony_ci
342e41f4b71Sopenharmony_ci```
343e41f4b71Sopenharmony_civoid OH_HiTrace_CountTrace (const char * name, int64_t count )
344e41f4b71Sopenharmony_ci```
345e41f4b71Sopenharmony_ci
346e41f4b71Sopenharmony_ci**描述**
347e41f4b71Sopenharmony_ci
348e41f4b71Sopenharmony_ci用于跟踪给定整数变量名和整数值。
349e41f4b71Sopenharmony_ci
350e41f4b71Sopenharmony_ci多次执行该接口可以跟踪给定整数变量在不同时刻的数值变化。
351e41f4b71Sopenharmony_ci
352e41f4b71Sopenharmony_ci**起始版本:** 10
353e41f4b71Sopenharmony_ci
354e41f4b71Sopenharmony_ci**参数:**
355e41f4b71Sopenharmony_ci
356e41f4b71Sopenharmony_ci| 名称 | 描述 | 
357e41f4b71Sopenharmony_ci| -------- | -------- |
358e41f4b71Sopenharmony_ci| name | 整数变量跟踪的名字,不必与真实变量名相同。 | 
359e41f4b71Sopenharmony_ci| count | 整数数值,一般可以传入整数变量。 | 
360e41f4b71Sopenharmony_ci
361e41f4b71Sopenharmony_ci
362e41f4b71Sopenharmony_ci### OH_HiTrace_CreateSpan()
363e41f4b71Sopenharmony_ci
364e41f4b71Sopenharmony_ci```
365e41f4b71Sopenharmony_ciHiTraceId OH_HiTrace_CreateSpan (void )
366e41f4b71Sopenharmony_ci```
367e41f4b71Sopenharmony_ci
368e41f4b71Sopenharmony_ci**描述**
369e41f4b71Sopenharmony_ci
370e41f4b71Sopenharmony_ci根据当前线程的跟踪id创建一个新的span id。
371e41f4b71Sopenharmony_ci
372e41f4b71Sopenharmony_ci根据当前线程TLS中的HiTraceId结构体,生成新的子分支以及对应的新HiTraceI结构体。
373e41f4b71Sopenharmony_ci
374e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
375e41f4b71Sopenharmony_ci
376e41f4b71Sopenharmony_ci**起始版本:** 12
377e41f4b71Sopenharmony_ci
378e41f4b71Sopenharmony_ci**返回:**
379e41f4b71Sopenharmony_ci
380e41f4b71Sopenharmony_ci有效的跨度跟踪ID,见[HiTraceId](_hi_trace_id.md)。否则,如果不允许创建跨度,则跟踪当前线程的ID。
381e41f4b71Sopenharmony_ci
382e41f4b71Sopenharmony_ci
383e41f4b71Sopenharmony_ci### OH_HiTrace_EnableFlag()
384e41f4b71Sopenharmony_ci
385e41f4b71Sopenharmony_ci```
386e41f4b71Sopenharmony_civoid OH_HiTrace_EnableFlag (const HiTraceId * id, HiTrace_Flag flag )
387e41f4b71Sopenharmony_ci```
388e41f4b71Sopenharmony_ci
389e41f4b71Sopenharmony_ci**描述**
390e41f4b71Sopenharmony_ci
391e41f4b71Sopenharmony_ci启用跟踪ID的指定跟踪标志。
392e41f4b71Sopenharmony_ci
393e41f4b71Sopenharmony_ci设置某跟踪标志位到HiTraceId结构体中。
394e41f4b71Sopenharmony_ci
395e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
396e41f4b71Sopenharmony_ci
397e41f4b71Sopenharmony_ci**起始版本:** 12
398e41f4b71Sopenharmony_ci
399e41f4b71Sopenharmony_ci**参数:**
400e41f4b71Sopenharmony_ci
401e41f4b71Sopenharmony_ci| 名称 | 描述 | 
402e41f4b71Sopenharmony_ci| -------- | -------- |
403e41f4b71Sopenharmony_ci| id | 需要启用标志的跟踪ID,见[HiTraceId](_hi_trace_id.md)。  | 
404e41f4b71Sopenharmony_ci| flag | 跟踪ID中需要启用的指定跟踪标志,见[HiTrace_Flag](#hitrace_flag)。 | 
405e41f4b71Sopenharmony_ci
406e41f4b71Sopenharmony_ci
407e41f4b71Sopenharmony_ci### OH_HiTrace_EndChain()
408e41f4b71Sopenharmony_ci
409e41f4b71Sopenharmony_ci```
410e41f4b71Sopenharmony_civoid OH_HiTrace_EndChain ()
411e41f4b71Sopenharmony_ci```
412e41f4b71Sopenharmony_ci
413e41f4b71Sopenharmony_ci**描述**
414e41f4b71Sopenharmony_ci
415e41f4b71Sopenharmony_ci如果给定的跟踪ID有效,则停止进程跟踪并清除当前线程的跟踪ID,否则不执行任何操作。
416e41f4b71Sopenharmony_ci
417e41f4b71Sopenharmony_ci停止跟踪;清除当前线程TLS中HiTraceId内容。
418e41f4b71Sopenharmony_ci
419e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
420e41f4b71Sopenharmony_ci
421e41f4b71Sopenharmony_ci**起始版本:** 12
422e41f4b71Sopenharmony_ci
423e41f4b71Sopenharmony_ci
424e41f4b71Sopenharmony_ci### OH_HiTrace_FinishAsyncTrace()
425e41f4b71Sopenharmony_ci
426e41f4b71Sopenharmony_ci```
427e41f4b71Sopenharmony_civoid OH_HiTrace_FinishAsyncTrace (const char * name, int32_t taskId )
428e41f4b71Sopenharmony_ci```
429e41f4b71Sopenharmony_ci
430e41f4b71Sopenharmony_ci**描述**
431e41f4b71Sopenharmony_ci
432e41f4b71Sopenharmony_ci标记一个异步跟踪耗时任务的结束。
433e41f4b71Sopenharmony_ci
434e41f4b71Sopenharmony_ci在异步操作完成后如回调函数中调用,进行结束打点。 和OH_HiTrace_StartAsyncTrace配对使用,参数name和taskId必须与异步跟踪的开始打点接口OH_HiTrace_StartAsyncTrace的对应参数值一致。
435e41f4b71Sopenharmony_ci
436e41f4b71Sopenharmony_ci**起始版本:** 10
437e41f4b71Sopenharmony_ci
438e41f4b71Sopenharmony_ci**参数:**
439e41f4b71Sopenharmony_ci
440e41f4b71Sopenharmony_ci| 名称 | 描述 | 
441e41f4b71Sopenharmony_ci| -------- | -------- |
442e41f4b71Sopenharmony_ci| name | 异步跟踪的名字。 | 
443e41f4b71Sopenharmony_ci| taskId | 异步跟踪的ID。异步跟踪开始和结束由于不是顺序发生的,所以需要通过name和每次执行唯一的taskId进行开始和结束的匹配。 | 
444e41f4b71Sopenharmony_ci
445e41f4b71Sopenharmony_ci
446e41f4b71Sopenharmony_ci### OH_HiTrace_FinishTrace()
447e41f4b71Sopenharmony_ci
448e41f4b71Sopenharmony_ci```
449e41f4b71Sopenharmony_civoid OH_HiTrace_FinishTrace (void )
450e41f4b71Sopenharmony_ci```
451e41f4b71Sopenharmony_ci
452e41f4b71Sopenharmony_ci**描述**
453e41f4b71Sopenharmony_ci
454e41f4b71Sopenharmony_ci标记一个同步跟踪耗时任务的结束。
455e41f4b71Sopenharmony_ci
456e41f4b71Sopenharmony_ci必须和OH_HiTrace_StartTrace配对使用。跟踪数据解析时,和其前执行流程中最近的OH_HiTrace_StartTrace进行匹配。
457e41f4b71Sopenharmony_ci
458e41f4b71Sopenharmony_ci**起始版本:** 10
459e41f4b71Sopenharmony_ci
460e41f4b71Sopenharmony_ci
461e41f4b71Sopenharmony_ci### OH_HiTrace_GetChainId()
462e41f4b71Sopenharmony_ci
463e41f4b71Sopenharmony_ci```
464e41f4b71Sopenharmony_ciuint64_t OH_HiTrace_GetChainId (const HiTraceId * id)
465e41f4b71Sopenharmony_ci```
466e41f4b71Sopenharmony_ci
467e41f4b71Sopenharmony_ci**描述**
468e41f4b71Sopenharmony_ci
469e41f4b71Sopenharmony_ci获取跟踪链ID。
470e41f4b71Sopenharmony_ci
471e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
472e41f4b71Sopenharmony_ci
473e41f4b71Sopenharmony_ci**起始版本:** 12
474e41f4b71Sopenharmony_ci
475e41f4b71Sopenharmony_ci**参数:**
476e41f4b71Sopenharmony_ci
477e41f4b71Sopenharmony_ci| 名称 | 描述 | 
478e41f4b71Sopenharmony_ci| -------- | -------- |
479e41f4b71Sopenharmony_ci| id | 需要获取跟踪链ID的HiTraceId结构体,见[HiTraceId](_hi_trace_id.md)。 | 
480e41f4b71Sopenharmony_ci
481e41f4b71Sopenharmony_ci**返回:**
482e41f4b71Sopenharmony_ci
483e41f4b71Sopenharmony_ciHiTraceId结构体中设置的跟踪链ID。
484e41f4b71Sopenharmony_ci
485e41f4b71Sopenharmony_ci### OH_HiTrace_GetFlags()
486e41f4b71Sopenharmony_ci
487e41f4b71Sopenharmony_ci```
488e41f4b71Sopenharmony_ciint OH_HiTrace_GetFlags (const HiTraceId * id)
489e41f4b71Sopenharmony_ci```
490e41f4b71Sopenharmony_ci
491e41f4b71Sopenharmony_ci**描述**
492e41f4b71Sopenharmony_ci
493e41f4b71Sopenharmony_ci获取HiTraceId结构体中设置的标志位。
494e41f4b71Sopenharmony_ci
495e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
496e41f4b71Sopenharmony_ci
497e41f4b71Sopenharmony_ci**起始版本:** 12
498e41f4b71Sopenharmony_ci
499e41f4b71Sopenharmony_ci**参数:**
500e41f4b71Sopenharmony_ci
501e41f4b71Sopenharmony_ci| 名称 | 描述 | 
502e41f4b71Sopenharmony_ci| -------- | -------- |
503e41f4b71Sopenharmony_ci| id | 需要获取标志位的HiTraceId结构体,见[HiTraceId](_hi_trace_id.md)。 | 
504e41f4b71Sopenharmony_ci
505e41f4b71Sopenharmony_ci**返回:**
506e41f4b71Sopenharmony_ci
507e41f4b71Sopenharmony_ciHiTraceId结构体中设置的标志位。
508e41f4b71Sopenharmony_ci
509e41f4b71Sopenharmony_ci
510e41f4b71Sopenharmony_ci### OH_HiTrace_GetId()
511e41f4b71Sopenharmony_ci
512e41f4b71Sopenharmony_ci```
513e41f4b71Sopenharmony_ciHiTraceId OH_HiTrace_GetId ()
514e41f4b71Sopenharmony_ci```
515e41f4b71Sopenharmony_ci**描述**
516e41f4b71Sopenharmony_ci获取当前线程的跟踪ID,如果没有属于当前线程的跟踪ID,则返回一个无效的跟踪ID。
517e41f4b71Sopenharmony_ci
518e41f4b71Sopenharmony_ci从当前线程TLS中获取跟踪标识。
519e41f4b71Sopenharmony_ci
520e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
521e41f4b71Sopenharmony_ci
522e41f4b71Sopenharmony_ci**起始版本:** 12
523e41f4b71Sopenharmony_ci
524e41f4b71Sopenharmony_ci**返回:**
525e41f4b71Sopenharmony_ci
526e41f4b71Sopenharmony_ci当前线程的[HiTraceId](_hi_trace_id.md)。如果调用线程没有HiTraceId,则返回无效的HiTraceId。
527e41f4b71Sopenharmony_ci
528e41f4b71Sopenharmony_ci
529e41f4b71Sopenharmony_ci### OH_HiTrace_GetParentSpanId()
530e41f4b71Sopenharmony_ci
531e41f4b71Sopenharmony_ci```
532e41f4b71Sopenharmony_ciuint64_t OH_HiTrace_GetParentSpanId (const HiTraceId * id)
533e41f4b71Sopenharmony_ci```
534e41f4b71Sopenharmony_ci
535e41f4b71Sopenharmony_ci**描述**
536e41f4b71Sopenharmony_ci
537e41f4b71Sopenharmony_ci获取当前HiTraceId结构体中的父分支ID。
538e41f4b71Sopenharmony_ci
539e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
540e41f4b71Sopenharmony_ci
541e41f4b71Sopenharmony_ci**起始版本:** 12
542e41f4b71Sopenharmony_ci
543e41f4b71Sopenharmony_ci**参数:**
544e41f4b71Sopenharmony_ci
545e41f4b71Sopenharmony_ci| 名称 | 描述 | 
546e41f4b71Sopenharmony_ci| -------- | -------- |
547e41f4b71Sopenharmony_ci| id | 需要获取父分支ID的HiTraceId结构体中,见[HiTraceId](_hi_trace_id.md)。 | 
548e41f4b71Sopenharmony_ci
549e41f4b71Sopenharmony_ci**返回:**
550e41f4b71Sopenharmony_ci
551e41f4b71Sopenharmony_ciHiTraceId结构体中设置的父分支ID。
552e41f4b71Sopenharmony_ci
553e41f4b71Sopenharmony_ci
554e41f4b71Sopenharmony_ci### OH_HiTrace_GetSpanId()
555e41f4b71Sopenharmony_ci
556e41f4b71Sopenharmony_ci```
557e41f4b71Sopenharmony_ciuint64_t OH_HiTrace_GetSpanId (const HiTraceId * id)
558e41f4b71Sopenharmony_ci```
559e41f4b71Sopenharmony_ci
560e41f4b71Sopenharmony_ci**描述**
561e41f4b71Sopenharmony_ci
562e41f4b71Sopenharmony_ci获取当前HiTraceId结构体中的分支ID。
563e41f4b71Sopenharmony_ci
564e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
565e41f4b71Sopenharmony_ci
566e41f4b71Sopenharmony_ci**起始版本:** 12
567e41f4b71Sopenharmony_ci
568e41f4b71Sopenharmony_ci**参数:**
569e41f4b71Sopenharmony_ci
570e41f4b71Sopenharmony_ci| 名称 | 描述 | 
571e41f4b71Sopenharmony_ci| -------- | -------- |
572e41f4b71Sopenharmony_ci| id | 需要获取分支ID的HiTraceId结构体,见[HiTraceId](_hi_trace_id.md)。 | 
573e41f4b71Sopenharmony_ci
574e41f4b71Sopenharmony_ci**返回:**
575e41f4b71Sopenharmony_ci
576e41f4b71Sopenharmony_ciHiTraceId结构体中设置的分支ID。
577e41f4b71Sopenharmony_ci
578e41f4b71Sopenharmony_ci### OH_HiTrace_IdFromBytes()
579e41f4b71Sopenharmony_ci
580e41f4b71Sopenharmony_ci```
581e41f4b71Sopenharmony_civoid OH_HiTrace_IdFromBytes (HiTraceId * id, const uint8_t * pIdArray, int len )
582e41f4b71Sopenharmony_ci```
583e41f4b71Sopenharmony_ci
584e41f4b71Sopenharmony_ci**描述**
585e41f4b71Sopenharmony_ci
586e41f4b71Sopenharmony_ci根据字节数组创建跟踪HiTraceId结构体。
587e41f4b71Sopenharmony_ci
588e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
589e41f4b71Sopenharmony_ci
590e41f4b71Sopenharmony_ci**起始版本:** 12
591e41f4b71Sopenharmony_ci
592e41f4b71Sopenharmony_ci**参数:**
593e41f4b71Sopenharmony_ci
594e41f4b71Sopenharmony_ci| 名称 | 描述 | 
595e41f4b71Sopenharmony_ci| -------- | -------- |
596e41f4b71Sopenharmony_ci| id | 需要创建的[HiTraceId](_hi_trace_id.md)。  | 
597e41f4b71Sopenharmony_ci| pIdArray | 字节数组。  | 
598e41f4b71Sopenharmony_ci| len | 字节数组长度。 | 
599e41f4b71Sopenharmony_ci
600e41f4b71Sopenharmony_ci
601e41f4b71Sopenharmony_ci### OH_HiTrace_IdToBytes()
602e41f4b71Sopenharmony_ci
603e41f4b71Sopenharmony_ci```
604e41f4b71Sopenharmony_ciint OH_HiTrace_IdToBytes (const HiTraceId * id, uint8_t * pIdArray, int len )
605e41f4b71Sopenharmony_ci```
606e41f4b71Sopenharmony_ci
607e41f4b71Sopenharmony_ci**描述**
608e41f4b71Sopenharmony_ci
609e41f4b71Sopenharmony_ci将HiTraceId结构体转换为字节数组,用于缓存或者通信传递。
610e41f4b71Sopenharmony_ci
611e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
612e41f4b71Sopenharmony_ci
613e41f4b71Sopenharmony_ci**起始版本:** 12
614e41f4b71Sopenharmony_ci
615e41f4b71Sopenharmony_ci**参数:**
616e41f4b71Sopenharmony_ci
617e41f4b71Sopenharmony_ci| 名称 | 描述 | 
618e41f4b71Sopenharmony_ci| -------- | -------- |
619e41f4b71Sopenharmony_ci| id | 需要转换的HiTraceId,见[HiTraceId](_hi_trace_id.md)。  | 
620e41f4b71Sopenharmony_ci| pIdArray | 字节数组。  | 
621e41f4b71Sopenharmony_ci| len | 字节数组长度。 | 
622e41f4b71Sopenharmony_ci
623e41f4b71Sopenharmony_ci**返回:**
624e41f4b71Sopenharmony_ci
625e41f4b71Sopenharmony_ci转换后的字节数组长度。
626e41f4b71Sopenharmony_ci
627e41f4b71Sopenharmony_ci### OH_HiTrace_InitId()
628e41f4b71Sopenharmony_ci
629e41f4b71Sopenharmony_ci```
630e41f4b71Sopenharmony_civoid OH_HiTrace_InitId (HiTraceId * id)
631e41f4b71Sopenharmony_ci```
632e41f4b71Sopenharmony_ci
633e41f4b71Sopenharmony_ci**描述**
634e41f4b71Sopenharmony_ci
635e41f4b71Sopenharmony_ci初始化HiTraceId结构体。
636e41f4b71Sopenharmony_ci
637e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
638e41f4b71Sopenharmony_ci
639e41f4b71Sopenharmony_ci**起始版本:** 12
640e41f4b71Sopenharmony_ci
641e41f4b71Sopenharmony_ci**参数:**
642e41f4b71Sopenharmony_ci
643e41f4b71Sopenharmony_ci| 名称 | 描述 | 
644e41f4b71Sopenharmony_ci| -------- | -------- |
645e41f4b71Sopenharmony_ci| id | 需要初始化的[HiTraceId](_hi_trace_id.md)。 | 
646e41f4b71Sopenharmony_ci
647e41f4b71Sopenharmony_ci
648e41f4b71Sopenharmony_ci### OH_HiTrace_IsFlagEnabled()
649e41f4b71Sopenharmony_ci
650e41f4b71Sopenharmony_ci```
651e41f4b71Sopenharmony_cibool OH_HiTrace_IsFlagEnabled (const HiTraceId * id, HiTrace_Flag flag )
652e41f4b71Sopenharmony_ci```
653e41f4b71Sopenharmony_ci
654e41f4b71Sopenharmony_ci**描述**
655e41f4b71Sopenharmony_ci
656e41f4b71Sopenharmony_ci判断跟踪id是否启用了跟踪标志。
657e41f4b71Sopenharmony_ci
658e41f4b71Sopenharmony_ciHiTraceId结构体的某标志是否置位。
659e41f4b71Sopenharmony_ci
660e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
661e41f4b71Sopenharmony_ci
662e41f4b71Sopenharmony_ci**起始版本:** 12
663e41f4b71Sopenharmony_ci
664e41f4b71Sopenharmony_ci**参数:**
665e41f4b71Sopenharmony_ci
666e41f4b71Sopenharmony_ci| 名称 | 描述 | 
667e41f4b71Sopenharmony_ci| -------- | -------- |
668e41f4b71Sopenharmony_ci| id | 需要判断的Trace id,见[HiTraceId](_hi_trace_id.md)。  | 
669e41f4b71Sopenharmony_ci| flag | 需要判断的flag,见[HiTrace_Flag](#hitrace_flag)。  | 
670e41f4b71Sopenharmony_ci
671e41f4b71Sopenharmony_ci**返回:**
672e41f4b71Sopenharmony_ci
673e41f4b71Sopenharmony_ci如果跟踪ID已启用标志,则为true。
674e41f4b71Sopenharmony_ci
675e41f4b71Sopenharmony_ci
676e41f4b71Sopenharmony_ci### OH_HiTrace_IsIdValid()
677e41f4b71Sopenharmony_ci
678e41f4b71Sopenharmony_ci```
679e41f4b71Sopenharmony_cibool OH_HiTrace_IsIdValid (const HiTraceId * id)
680e41f4b71Sopenharmony_ci```
681e41f4b71Sopenharmony_ci
682e41f4b71Sopenharmony_ci**描述**
683e41f4b71Sopenharmony_ci
684e41f4b71Sopenharmony_ci判断trace id是否有效。
685e41f4b71Sopenharmony_ci
686e41f4b71Sopenharmony_ciHiTraceId结构体是否有效。
687e41f4b71Sopenharmony_ci
688e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
689e41f4b71Sopenharmony_ci
690e41f4b71Sopenharmony_ci**起始版本:** 12
691e41f4b71Sopenharmony_ci
692e41f4b71Sopenharmony_ci**参数:**
693e41f4b71Sopenharmony_ci
694e41f4b71Sopenharmony_ci| 名称 | 描述 | 
695e41f4b71Sopenharmony_ci| -------- | -------- |
696e41f4b71Sopenharmony_ci| id | 需要判断的Trace id,见[HiTraceId](_hi_trace_id.md)。  | 
697e41f4b71Sopenharmony_ci
698e41f4b71Sopenharmony_ci**返回:**
699e41f4b71Sopenharmony_ci
700e41f4b71Sopenharmony_ci如果跟踪ID有效,则为True;否则为false。
701e41f4b71Sopenharmony_ci
702e41f4b71Sopenharmony_ci
703e41f4b71Sopenharmony_ci### OH_HiTrace_SetChainId()
704e41f4b71Sopenharmony_ci
705e41f4b71Sopenharmony_ci```
706e41f4b71Sopenharmony_civoid OH_HiTrace_SetChainId (HiTraceId * id, uint64_t chainId )
707e41f4b71Sopenharmony_ci```
708e41f4b71Sopenharmony_ci
709e41f4b71Sopenharmony_ci**描述**
710e41f4b71Sopenharmony_ci
711e41f4b71Sopenharmony_ci设置跟踪链ID到HiTraceId结构体中。
712e41f4b71Sopenharmony_ci
713e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
714e41f4b71Sopenharmony_ci
715e41f4b71Sopenharmony_ci**起始版本:** 12
716e41f4b71Sopenharmony_ci
717e41f4b71Sopenharmony_ci**参数:**
718e41f4b71Sopenharmony_ci
719e41f4b71Sopenharmony_ci| 名称 | 描述 | 
720e41f4b71Sopenharmony_ci| -------- | -------- |
721e41f4b71Sopenharmony_ci| id | 需要设置跟踪链ID的HiTraceId结构体,见[HiTraceId](_hi_trace_id.md)。  | 
722e41f4b71Sopenharmony_ci| chainId | 需要设置的跟踪链ID。 | 
723e41f4b71Sopenharmony_ci
724e41f4b71Sopenharmony_ci
725e41f4b71Sopenharmony_ci### OH_HiTrace_SetFlags()
726e41f4b71Sopenharmony_ci
727e41f4b71Sopenharmony_ci```
728e41f4b71Sopenharmony_civoid OH_HiTrace_SetFlags (HiTraceId * id, int flags )
729e41f4b71Sopenharmony_ci```
730e41f4b71Sopenharmony_ci
731e41f4b71Sopenharmony_ci**描述**
732e41f4b71Sopenharmony_ci
733e41f4b71Sopenharmony_ci设置跟踪标志位到HiTraceId结构体中。
734e41f4b71Sopenharmony_ci
735e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
736e41f4b71Sopenharmony_ci
737e41f4b71Sopenharmony_ci**起始版本:** 12
738e41f4b71Sopenharmony_ci
739e41f4b71Sopenharmony_ci**参数:**
740e41f4b71Sopenharmony_ci
741e41f4b71Sopenharmony_ci| 名称 | 描述 | 
742e41f4b71Sopenharmony_ci| -------- | -------- |
743e41f4b71Sopenharmony_ci| id | 需要设置跟踪标志位的HiTraceId结构体,见[HiTraceId](_hi_trace_id.md)。  | 
744e41f4b71Sopenharmony_ci| flags | 跟踪ID中需要设置的指定跟踪标志,见[HiTrace_Flag](#hitrace_flag)。 | 
745e41f4b71Sopenharmony_ci
746e41f4b71Sopenharmony_ci
747e41f4b71Sopenharmony_ci### OH_HiTrace_SetId()
748e41f4b71Sopenharmony_ci
749e41f4b71Sopenharmony_ci```
750e41f4b71Sopenharmony_civoid OH_HiTrace_SetId (const HiTraceId * id)
751e41f4b71Sopenharmony_ci```
752e41f4b71Sopenharmony_ci
753e41f4b71Sopenharmony_ci**描述**
754e41f4b71Sopenharmony_ci
755e41f4b71Sopenharmony_ci将id设置为当前线程的跟踪id。如果ID无效,则不执行任何操作。
756e41f4b71Sopenharmony_ci
757e41f4b71Sopenharmony_ci设置HiTraceId结构体内容到当前线程TLS中。
758e41f4b71Sopenharmony_ci
759e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
760e41f4b71Sopenharmony_ci
761e41f4b71Sopenharmony_ci**起始版本:** 12
762e41f4b71Sopenharmony_ci
763e41f4b71Sopenharmony_ci**参数:**
764e41f4b71Sopenharmony_ci
765e41f4b71Sopenharmony_ci| 名称 | 描述 | 
766e41f4b71Sopenharmony_ci| -------- | -------- |
767e41f4b71Sopenharmony_ci| id | 将id设置为当前线程的跟踪id,见[HiTraceId](_hi_trace_id.md)。 | 
768e41f4b71Sopenharmony_ci
769e41f4b71Sopenharmony_ci
770e41f4b71Sopenharmony_ci### OH_HiTrace_SetParentSpanId()
771e41f4b71Sopenharmony_ci
772e41f4b71Sopenharmony_ci```
773e41f4b71Sopenharmony_civoid OH_HiTrace_SetParentSpanId (HiTraceId * id, uint64_t parentSpanId )
774e41f4b71Sopenharmony_ci```
775e41f4b71Sopenharmony_ci
776e41f4b71Sopenharmony_ci**描述**
777e41f4b71Sopenharmony_ci
778e41f4b71Sopenharmony_ci设置HiTraceId结构的parentSpanId字符。
779e41f4b71Sopenharmony_ci
780e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
781e41f4b71Sopenharmony_ci
782e41f4b71Sopenharmony_ci**起始版本:** 12
783e41f4b71Sopenharmony_ci
784e41f4b71Sopenharmony_ci**参数:**
785e41f4b71Sopenharmony_ci
786e41f4b71Sopenharmony_ci| 名称 | 描述 | 
787e41f4b71Sopenharmony_ci| -------- | -------- |
788e41f4b71Sopenharmony_ci| id | 需要设置父分支ID的HiTraceId结构体中,见[HiTraceId](_hi_trace_id.md)。  | 
789e41f4b71Sopenharmony_ci| parentSpanId | 需要设置的父分支ID。 | 
790e41f4b71Sopenharmony_ci
791e41f4b71Sopenharmony_ci
792e41f4b71Sopenharmony_ci### OH_HiTrace_SetSpanId()
793e41f4b71Sopenharmony_ci
794e41f4b71Sopenharmony_ci```
795e41f4b71Sopenharmony_civoid OH_HiTrace_SetSpanId (HiTraceId * id, uint64_t spanId )
796e41f4b71Sopenharmony_ci```
797e41f4b71Sopenharmony_ci
798e41f4b71Sopenharmony_ci**描述**
799e41f4b71Sopenharmony_ci
800e41f4b71Sopenharmony_ci设置分支ID到HiTraceId结构体中。
801e41f4b71Sopenharmony_ci
802e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
803e41f4b71Sopenharmony_ci
804e41f4b71Sopenharmony_ci**起始版本:** 12
805e41f4b71Sopenharmony_ci
806e41f4b71Sopenharmony_ci**参数:**
807e41f4b71Sopenharmony_ci
808e41f4b71Sopenharmony_ci| 名称 | 描述 | 
809e41f4b71Sopenharmony_ci| -------- | -------- |
810e41f4b71Sopenharmony_ci| id | 需要设置分支ID的HiTraceId结构体。  | 
811e41f4b71Sopenharmony_ci| spanId | 需要设置的分支ID。 | 
812e41f4b71Sopenharmony_ci
813e41f4b71Sopenharmony_ci
814e41f4b71Sopenharmony_ci### OH_HiTrace_StartAsyncTrace()
815e41f4b71Sopenharmony_ci
816e41f4b71Sopenharmony_ci```
817e41f4b71Sopenharmony_civoid OH_HiTrace_StartAsyncTrace (const char * name, int32_t taskId )
818e41f4b71Sopenharmony_ci```
819e41f4b71Sopenharmony_ci
820e41f4b71Sopenharmony_ci**描述**
821e41f4b71Sopenharmony_ci
822e41f4b71Sopenharmony_ci标记一个异步跟踪耗时任务的开始。
823e41f4b71Sopenharmony_ci
824e41f4b71Sopenharmony_ci用于在异步操作前调用进行开始打点,异步跟踪开始和结束数据由于不是顺序发生的,所以解析时需要通过一个唯一的taskId进行识别,这个taskId作为异步接口的参数传入。 和OH_HiTrace_FinishAsyncTrace配对使用,参数name和taskId相同的这两个接口调用匹配成一个异步跟踪耗时任务。 如果有多个相同name的任务需要跟踪或者对同一个任务跟踪多次,并且任务同时被执行,则每次调用startTrace的taskId不相同。 如果具有相同name的任务是串行执行的,则taskId可以相同。
825e41f4b71Sopenharmony_ci
826e41f4b71Sopenharmony_ci**起始版本:** 10
827e41f4b71Sopenharmony_ci
828e41f4b71Sopenharmony_ci**参数:**
829e41f4b71Sopenharmony_ci
830e41f4b71Sopenharmony_ci| 名称 | 描述 | 
831e41f4b71Sopenharmony_ci| -------- | -------- |
832e41f4b71Sopenharmony_ci| name | 异步跟踪的名字。 | 
833e41f4b71Sopenharmony_ci| taskId | 异步跟踪的ID。 异步跟踪开始和结束由于不是顺序发生的,所以需要通过name和每次执行唯一的taskId进行开始和结束的匹配。 | 
834e41f4b71Sopenharmony_ci
835e41f4b71Sopenharmony_ci
836e41f4b71Sopenharmony_ci### OH_HiTrace_StartTrace()
837e41f4b71Sopenharmony_ci
838e41f4b71Sopenharmony_ci```
839e41f4b71Sopenharmony_civoid OH_HiTrace_StartTrace (const char * name)
840e41f4b71Sopenharmony_ci```
841e41f4b71Sopenharmony_ci
842e41f4b71Sopenharmony_ci**描述**
843e41f4b71Sopenharmony_ci
844e41f4b71Sopenharmony_ci标记一个同步跟踪耗时任务的开始。
845e41f4b71Sopenharmony_ci
846e41f4b71Sopenharmony_ci同步跟踪打点接口OH_HiTrace_StartTrace和OH_HiTrace_FinishTrace必须配对使用。 OH_HiTrace_StartTrace和OH_HiTrace_FinishTrace函数对可以以嵌套模式使用,跟踪数据解析时使用栈式数据结构进行匹配。
847e41f4b71Sopenharmony_ci
848e41f4b71Sopenharmony_ci**起始版本:** 10
849e41f4b71Sopenharmony_ci
850e41f4b71Sopenharmony_ci**参数:**
851e41f4b71Sopenharmony_ci
852e41f4b71Sopenharmony_ci| 名称 | 描述 | 
853e41f4b71Sopenharmony_ci| -------- | -------- |
854e41f4b71Sopenharmony_ci| name | 跟踪的名字。 | 
855e41f4b71Sopenharmony_ci
856e41f4b71Sopenharmony_ci
857e41f4b71Sopenharmony_ci### OH_HiTrace_Tracepoint()
858e41f4b71Sopenharmony_ci
859e41f4b71Sopenharmony_ci```
860e41f4b71Sopenharmony_civoid OH_HiTrace_Tracepoint (HiTrace_Communication_Mode mode, HiTrace_Tracepoint_Type type, const HiTraceId * id, const char * fmt,  ... )
861e41f4b71Sopenharmony_ci```
862e41f4b71Sopenharmony_ci
863e41f4b71Sopenharmony_ci**描述**
864e41f4b71Sopenharmony_ci
865e41f4b71Sopenharmony_ci打印hitrace信息,包括跟踪ID信息。
866e41f4b71Sopenharmony_ci
867e41f4b71Sopenharmony_ci输出埋点信息,包括通信方式、埋点类型、时间戳、分支等信息。
868e41f4b71Sopenharmony_ci
869e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiTrace
870e41f4b71Sopenharmony_ci
871e41f4b71Sopenharmony_ci**起始版本:** 12
872e41f4b71Sopenharmony_ci
873e41f4b71Sopenharmony_ci**参数:**
874e41f4b71Sopenharmony_ci
875e41f4b71Sopenharmony_ci| 名称 | 描述 | 
876e41f4b71Sopenharmony_ci| -------- | -------- |
877e41f4b71Sopenharmony_ci| mode | 跟踪通信模式,见[HiTrace_Communication_Mode](#hitrace_communication_mode)。  | 
878e41f4b71Sopenharmony_ci| type | 跟踪信息类型,见[HiTrace_Tracepoint_Type](#hitrace_tracepoint_type)。  | 
879e41f4b71Sopenharmony_ci| id | 需要打印的跟踪ID,见[HiTraceId](_hi_trace_id.md)。  | 
880e41f4b71Sopenharmony_ci| fmt | 需要打印的自定义信息。 | 
881e41f4b71Sopenharmony_ci
882e41f4b71Sopenharmony_ci
883e41f4b71Sopenharmony_ci## 变量说明
884e41f4b71Sopenharmony_ci
885e41f4b71Sopenharmony_ci
886e41f4b71Sopenharmony_ci### chainId
887e41f4b71Sopenharmony_ci
888e41f4b71Sopenharmony_ci```
889e41f4b71Sopenharmony_ciuint64_t HiTraceId::chainId
890e41f4b71Sopenharmony_ci```
891e41f4b71Sopenharmony_ci
892e41f4b71Sopenharmony_ci**描述**
893e41f4b71Sopenharmony_ci
894e41f4b71Sopenharmony_ciHiTraceId的链Id
895e41f4b71Sopenharmony_ci
896e41f4b71Sopenharmony_ci
897e41f4b71Sopenharmony_ci### flags
898e41f4b71Sopenharmony_ci
899e41f4b71Sopenharmony_ci```
900e41f4b71Sopenharmony_ciuint64_t HiTraceId::flags
901e41f4b71Sopenharmony_ci```
902e41f4b71Sopenharmony_ci
903e41f4b71Sopenharmony_ci**描述**
904e41f4b71Sopenharmony_ci
905e41f4b71Sopenharmony_ciHiTraceId的标志位
906e41f4b71Sopenharmony_ci
907e41f4b71Sopenharmony_ci
908e41f4b71Sopenharmony_ci### parentSpanId
909e41f4b71Sopenharmony_ci
910e41f4b71Sopenharmony_ci```
911e41f4b71Sopenharmony_ciuint64_t HiTraceId::parentSpanId
912e41f4b71Sopenharmony_ci```
913e41f4b71Sopenharmony_ci
914e41f4b71Sopenharmony_ci**描述**
915e41f4b71Sopenharmony_ci
916e41f4b71Sopenharmony_ciHiTraceId的父跨度号
917e41f4b71Sopenharmony_ci
918e41f4b71Sopenharmony_ci
919e41f4b71Sopenharmony_ci### spanId
920e41f4b71Sopenharmony_ci
921e41f4b71Sopenharmony_ci```
922e41f4b71Sopenharmony_ciuint64_t HiTraceId::spanId
923e41f4b71Sopenharmony_ci```
924e41f4b71Sopenharmony_ci
925e41f4b71Sopenharmony_ci**描述**
926e41f4b71Sopenharmony_ci
927e41f4b71Sopenharmony_ciHiTraceId的当前跨度号
928e41f4b71Sopenharmony_ci
929e41f4b71Sopenharmony_ci
930e41f4b71Sopenharmony_ci### valid
931e41f4b71Sopenharmony_ci
932e41f4b71Sopenharmony_ci```
933e41f4b71Sopenharmony_ciuint64_t HiTraceId::valid
934e41f4b71Sopenharmony_ci```
935e41f4b71Sopenharmony_ci
936e41f4b71Sopenharmony_ci**描述**
937e41f4b71Sopenharmony_ci
938e41f4b71Sopenharmony_ciHiTraceId是否有效
939e41f4b71Sopenharmony_ci
940e41f4b71Sopenharmony_ci
941e41f4b71Sopenharmony_ci### ver
942e41f4b71Sopenharmony_ci
943e41f4b71Sopenharmony_ci```
944e41f4b71Sopenharmony_ciuint64_t HiTraceId::ver
945e41f4b71Sopenharmony_ci```
946e41f4b71Sopenharmony_ci
947e41f4b71Sopenharmony_ci**描述**
948e41f4b71Sopenharmony_ci
949e41f4b71Sopenharmony_ciHiTraceId的版本号
950