提交 b4d4153b 编写于 作者: X xuyong

HiTrace JS api更新

Signed-off-by: Nxuyong <xuyong59@huawei.com>
上级 bf5b91bd
...@@ -66,9 +66,9 @@ ...@@ -66,9 +66,9 @@
- [设置系统时间](js-apis-system-time.md) - [设置系统时间](js-apis-system-time.md)
- [动画](js-apis-basic-features-animator.md) - [动画](js-apis-basic-features-animator.md)
- [应用打点](js-apis-hiappevent.md) - [应用打点](js-apis-hiappevent.md)
- [性能打点](js-apis-bytrace.md) - [性能打点](js-apis-hitracemeter.md)
- [故障日志获取](js-apis-faultLogger.md) - [故障日志获取](js-apis-faultLogger.md)
- [分布式跟踪](js-apis-hitrace.md) - [分布式跟踪](js-apis-hitracechain.md)
- 语言基础类库 - 语言基础类库
- [获取进程相关的信息](js-apis-process.md) - [获取进程相关的信息](js-apis-process.md)
- [URL字符串解析](js-apis-url.md) - [URL字符串解析](js-apis-url.md)
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
## 导入模块 ## 导入模块
``` ```
import hitrace from '@ohos.hitrace'; import hiTraceChain from '@ohos.hiTraceChain';
``` ```
## 系统能力 ## 系统能力
...@@ -62,7 +62,7 @@ SystemCapability.HiviewDFX.HiTrace ...@@ -62,7 +62,7 @@ SystemCapability.HiviewDFX.HiTrace
| parentSpanId | number | 否 | 父分支标识。 | | parentSpanId | number | 否 | 父分支标识。 |
| flags | number | 否 | 跟踪标志组合。 | | flags | number | 否 | 跟踪标志组合。 |
## hitrace.begin ## hiTraceChain.begin
begin(name: string, flags: number = HiTraceFlag.DEFAULT): HiTraceId begin(name: string, flags: number = HiTraceFlag.DEFAULT): HiTraceId
...@@ -80,10 +80,10 @@ begin(name: string, flags: number = HiTraceFlag.DEFAULT): HiTraceId ...@@ -80,10 +80,10 @@ begin(name: string, flags: number = HiTraceFlag.DEFAULT): HiTraceId
- 示例: - 示例:
``` ```
let asyncTraceId = hitrace.begin("business", hitrace.HiTraceFlag.INCLUDE_ASYNC | hitrace.HiTraceFlag.DONOT_CREATE_SPAN); let asyncTraceId = hiTraceChain.begin("business", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC | hiTraceChain.HiTraceFlag.DONOT_CREATE_SPAN);
``` ```
## hitrace.end ## hiTraceChain.end
end(id: HiTraceId): void end(id: HiTraceId): void
...@@ -96,12 +96,12 @@ end(id: HiTraceId): void ...@@ -96,12 +96,12 @@ end(id: HiTraceId): void
- 示例: - 示例:
``` ```
let asyncTraceId = hitrace.begin("business"); let asyncTraceId = hiTraceChain.begin("business");
// 若干业务逻辑完成后,结束跟踪。 // 若干业务逻辑完成后,结束跟踪。
hitrace.end(asyncTraceId); hiTraceChain.end(asyncTraceId);
``` ```
## hitrace.getId ## hiTraceChain.getId
getId(): HiTraceId getId(): HiTraceId
...@@ -114,12 +114,12 @@ getId(): HiTraceId ...@@ -114,12 +114,12 @@ getId(): HiTraceId
- 示例: - 示例:
``` ```
let traceId = hitrace.begin("business"); let traceId = hiTraceChain.begin("business");
// 若干业务逻辑完成后,获取当前HiTraceId。 // 若干业务逻辑完成后,获取当前HiTraceId。
let curTraceId = hitrace.getId(); let curTraceId = hiTraceChain.getId();
``` ```
## hitrace.setId ## hiTraceChain.setId
setId(id: HiTraceId): void setId(id: HiTraceId): void
...@@ -132,12 +132,12 @@ setId(id: HiTraceId): void ...@@ -132,12 +132,12 @@ setId(id: HiTraceId): void
- 示例: - 示例:
``` ```
let traceId = hitrace.begin("business"); let traceId = hiTraceChain.begin("business");
// 若干业务逻辑完成后,设置当前HiTraceId。 // 若干业务逻辑完成后,设置当前HiTraceId。
hitrace.setId(asyncTraceId); hiTraceChain.setId(asyncTraceId);
``` ```
## hitrace.clearId ## hiTraceChain.clearId
clearId(): void clearId(): void
...@@ -145,12 +145,12 @@ clearId(): void ...@@ -145,12 +145,12 @@ clearId(): void
- 示例: - 示例:
``` ```
let traceId = hitrace.begin("business"); let traceId = hiTraceChain.begin("business");
// 若干业务逻辑完成后,清除当前HiTraceId。 // 若干业务逻辑完成后,清除当前HiTraceId。
hitrace.clearId(); hiTraceChain.clearId();
``` ```
## hitrace.createSpan ## hiTraceChain.createSpan
createSpan(): HiTraceId createSpan(): HiTraceId
...@@ -163,12 +163,12 @@ createSpan(): HiTraceId ...@@ -163,12 +163,12 @@ createSpan(): HiTraceId
- 示例: - 示例:
``` ```
let traceId = hitrace.begin("business"); let traceId = hiTraceChain.begin("business");
// 若干业务逻辑完成后,创建跟踪分支。 // 若干业务逻辑完成后,创建跟踪分支。
let spanTraceId = hitrace.createSpan(); let spanTraceId = hiTraceChain.createSpan();
``` ```
## hitrace.tracepoint ## hiTraceChain.tracepoint
tracepoint(mode: HiTraceCommunicationMode, type: HiTraceTracePointType, id: HiTraceId, msg?: string): void tracepoint(mode: HiTraceCommunicationMode, type: HiTraceTracePointType, id: HiTraceId, msg?: string): void
...@@ -184,12 +184,12 @@ tracepoint(mode: HiTraceCommunicationMode, type: HiTraceTracePointType, id: HiTr ...@@ -184,12 +184,12 @@ tracepoint(mode: HiTraceCommunicationMode, type: HiTraceTracePointType, id: HiTr
- 示例: - 示例:
``` ```
let asyncTraceId = hitrace.begin("business", hitrace.HiTraceFlag.INCLUDE_ASYNC | hitrace.HiTraceFlag.DONOT_CREATE_SPAN); let asyncTraceId = hiTraceChain.begin("business", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC | hiTraceChain.HiTraceFlag.DONOT_CREATE_SPAN);
// 若干业务逻辑完成后,触发信息埋点操作。 // 若干业务逻辑完成后,触发信息埋点操作。
hitrace.tracepoint(hitrace.HiTraceCommunicationMode.THREAD, hitrace.HiTraceTracePointType.SS, asyncTraceId, "Just a example"); hiTraceChain.tracepoint(hiTraceChain.HiTraceCommunicationMode.THREAD, hiTraceChain.HiTraceTracePointType.SS, asyncTraceId, "Just a example");
``` ```
## hitrace.isValid ## hiTraceChain.isValid
isValid(id: HiTraceId): boolean isValid(id: HiTraceId): boolean
...@@ -206,11 +206,11 @@ isValid(id: HiTraceId): boolean ...@@ -206,11 +206,11 @@ isValid(id: HiTraceId): boolean
- 示例: - 示例:
``` ```
let traceId = hitrace.begin("business"); let traceId = hiTraceChain.begin("business");
let traceIdIsvalid = hitrace.isValid(traceId); let traceIdIsvalid = hiTraceChain.isValid(traceId);
``` ```
## hitrace.isFlagEnabled ## hiTraceChain.isFlagEnabled
isFlagEnabled(id: HiTraceId, flag: HiTraceFlag): boolean isFlagEnabled(id: HiTraceId, flag: HiTraceFlag): boolean
...@@ -227,12 +227,12 @@ isFlagEnabled(id: HiTraceId, flag: HiTraceFlag): boolean ...@@ -227,12 +227,12 @@ isFlagEnabled(id: HiTraceId, flag: HiTraceFlag): boolean
| boolean | 返回true标识HiTraceId已置位指定的flag,否则没有置位。 | | boolean | 返回true标识HiTraceId已置位指定的flag,否则没有置位。 |
- 示例: - 示例:
``` ```
let asyncTraceId = hitrace.begin("business", hitrace.HiTraceFlag.INCLUDE_ASYNC); let asyncTraceId = hiTraceChain.begin("business", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC);
// enabledDoNotCreateSpanFlag为true // enabledDoNotCreateSpanFlag为true
let enabledDoNotCreateSpanFlag = hitrace.isFlagEnabled(asyncTraceId, hitrace.HiTraceFlag.INCLUDE_ASYNC); let enabledDoNotCreateSpanFlag = hiTraceChain.isFlagEnabled(asyncTraceId, hiTraceChain.HiTraceFlag.INCLUDE_ASYNC);
``` ```
## hitrace.enableFlag ## hiTraceChain.enableFlag
enableFlag(id: HiTraceId, flag: HiTraceFlag): void enableFlag(id: HiTraceId, flag: HiTraceFlag): void
...@@ -246,8 +246,8 @@ enableFlag(id: HiTraceId, flag: HiTraceFlag): void ...@@ -246,8 +246,8 @@ enableFlag(id: HiTraceId, flag: HiTraceFlag): void
- 示例: - 示例:
``` ```
let asyncTraceId = hitrace.begin("business", hitrace.HiTraceFlag.INCLUDE_ASYNC); let asyncTraceId = hiTraceChain.begin("business", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC);
hitrace.enable(asyncTraceId, hitrace.HiTraceFlag.DONOT_CREATE_SPAN); hiTraceChain.enable(asyncTraceId, hiTraceChain.HiTraceFlag.DONOT_CREATE_SPAN);
// enabledDoNotCreateSpanFlag为true // enabledDoNotCreateSpanFlag为true
let enabledDoNotCreateSpanFlag = hitrace.isFlagEnabled(asyncTraceId, hitrace.HiTraceFlag.DONOT_CREATE_SPAN); let enabledDoNotCreateSpanFlag = hiTraceChain.isFlagEnabled(asyncTraceId, hiTraceChain.HiTraceFlag.DONOT_CREATE_SPAN);
``` ```
# 性能打点
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```
import hiTraceMeter from '@ohos.hiTraceMeter';
```
## 系统能力
SystemCapability.HiviewDFX.HiTrace
## hiTraceMeter.startTrace
startTrace(name: string, taskId: number, expectedTime?: number): void
标记一个预追踪耗时任务的开始,expectedTime是可选参数,标识该任务的期望耗时。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | string | 是 | 要追踪的任务名称 |
| taskId | number | 是 | 任务id |
| expectedTime | number | 否 | 期望的耗时时间,单位:ms |
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 如果有多个相同name的任务需要追踪或者对同一个任务要追踪多次,并且这些会同时被执行,则每次调用startTrace的taskId必须不一致。如果具有相同name的任务是串行执行的,则taskId可以相同。在下面hiTraceMeter.finishTrace的示例中会举例说明。
- 示例:
```
hiTraceMeter.startTrace("myTestFunc", 1);
hiTraceMeter.startTrace("myTestFunc", 1, 5); //从startTrace到finishTrace流程的耗时期望为5ms
```
## hiTraceMeter.finishTrace
finishTrace(name: string, taskId: number): void
标记一个预追踪耗时任务的结束。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | string | 是 | 要追踪的任务名称 |
| taskId | number | 是 | 任务id |
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> finishTrace的name和taskId必须与流程开始的startTrace对应参数值一致。
- 示例:
```
hiTraceMeter.finishTrace("myTestFunc", 1);
```
```
//追踪并行执行的同名任务
hiTraceMeter.startTrace("myTestFunc", 1);
//业务流程......
hiTraceMeter.startTrace("myTestFunc", 2); //第二个追踪的任务开始,同时第一个追踪的同名任务还没结束,出现了并行执行,对应接口的taskId需要不同。
//业务流程......
hiTraceMeter.finishTrace("myTestFunc", 1);
//业务流程......
hiTraceMeter.finishTrace("myTestFunc", 2);
```
```
//追踪串行执行的同名任务
hiTraceMeter.startTrace("myTestFunc", 1);
//业务流程......
hiTraceMeter.finishTrace("myTestFunc", 1); //第一个追踪的任务结束
//业务流程......
hiTraceMeter.startTrace("myTestFunc", 1); //第二个追踪的同名任务开始,同名的待追踪任务串行执行。
//业务流程......
hiTraceMeter.finishTrace("myTestFunc", 1);
```
## hiTraceMeter.traceByValue
traceByValue(name: string, value: number): void
用来标记一个预追踪的数值变量,该变量的数值会不断变化。
- 参数:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| name | string | 是 | 要追踪的数值变量名称 |
| value | number | 是 | 变量的值 |
- 示例:
```
let traceCount = 3;
hiTraceMeter.traceByValue("myTestCount", traceCount);
traceCount = 4;
hiTraceMeter.traceByValue("myTestCount", traceCount);
//业务流程......
```
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册