提交 b4d4153b 编写于 作者: X xuyong

HiTrace JS api更新

Signed-off-by: Nxuyong <xuyong59@huawei.com>
上级 bf5b91bd
......@@ -66,9 +66,9 @@
- [设置系统时间](js-apis-system-time.md)
- [动画](js-apis-basic-features-animator.md)
- [应用打点](js-apis-hiappevent.md)
- [性能打点](js-apis-bytrace.md)
- [性能打点](js-apis-hitracemeter.md)
- [故障日志获取](js-apis-faultLogger.md)
- [分布式跟踪](js-apis-hitrace.md)
- [分布式跟踪](js-apis-hitracechain.md)
- 语言基础类库
- [获取进程相关的信息](js-apis-process.md)
- [URL字符串解析](js-apis-url.md)
......
......@@ -6,7 +6,7 @@
## 导入模块
```
import hitrace from '@ohos.hitrace';
import hiTraceChain from '@ohos.hiTraceChain';
```
## 系统能力
......@@ -62,7 +62,7 @@ SystemCapability.HiviewDFX.HiTrace
| parentSpanId | number | 否 | 父分支标识。 |
| flags | number | 否 | 跟踪标志组合。 |
## hitrace.begin
## hiTraceChain.begin
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
......@@ -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
......@@ -114,12 +114,12 @@ getId(): HiTraceId
- 示例:
```
let traceId = hitrace.begin("business");
let traceId = hiTraceChain.begin("business");
// 若干业务逻辑完成后,获取当前HiTraceId。
let curTraceId = hitrace.getId();
let curTraceId = hiTraceChain.getId();
```
## hitrace.setId
## hiTraceChain.setId
setId(id: HiTraceId): void
......@@ -132,12 +132,12 @@ setId(id: HiTraceId): void
- 示例:
```
let traceId = hitrace.begin("business");
let traceId = hiTraceChain.begin("business");
// 若干业务逻辑完成后,设置当前HiTraceId。
hitrace.setId(asyncTraceId);
hiTraceChain.setId(asyncTraceId);
```
## hitrace.clearId
## hiTraceChain.clearId
clearId(): void
......@@ -145,12 +145,12 @@ clearId(): void
- 示例:
```
let traceId = hitrace.begin("business");
let traceId = hiTraceChain.begin("business");
// 若干业务逻辑完成后,清除当前HiTraceId。
hitrace.clearId();
hiTraceChain.clearId();
```
## hitrace.createSpan
## hiTraceChain.createSpan
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
......@@ -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
......@@ -206,11 +206,11 @@ isValid(id: HiTraceId): boolean
- 示例:
```
let traceId = hitrace.begin("business");
let traceIdIsvalid = hitrace.isValid(traceId);
let traceId = hiTraceChain.begin("business");
let traceIdIsvalid = hiTraceChain.isValid(traceId);
```
## hitrace.isFlagEnabled
## hiTraceChain.isFlagEnabled
isFlagEnabled(id: HiTraceId, flag: HiTraceFlag): boolean
......@@ -227,12 +227,12 @@ isFlagEnabled(id: HiTraceId, flag: HiTraceFlag): boolean
| boolean | 返回true标识HiTraceId已置位指定的flag,否则没有置位。 |
- 示例:
```
let asyncTraceId = hitrace.begin("business", hitrace.HiTraceFlag.INCLUDE_ASYNC);
let asyncTraceId = hiTraceChain.begin("business", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC);
// 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
......@@ -246,8 +246,8 @@ enableFlag(id: HiTraceId, flag: HiTraceFlag): void
- 示例:
```
let asyncTraceId = hitrace.begin("business", hitrace.HiTraceFlag.INCLUDE_ASYNC);
hitrace.enable(asyncTraceId, hitrace.HiTraceFlag.DONOT_CREATE_SPAN);
let asyncTraceId = hiTraceChain.begin("business", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC);
hiTraceChain.enable(asyncTraceId, hiTraceChain.HiTraceFlag.DONOT_CREATE_SPAN);
// 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.
先完成此消息的编辑!
想要评论请 注册