未验证 提交 30744945 编写于 作者: O openharmony_ci 提交者: Gitee

!7151 【OpenHarmony开源贡献者计划2022】ubsys-dfx-hisysevent-logging.md 表达问题

Merge pull request !7151 from HYC/0726-c
......@@ -8,7 +8,7 @@ HiSysEvent打点提供了事件埋点功能,开发者可以通过在关键路
### 运作机制
在进行HiSysEvent事件埋点之前,需要先完成HiSysEvent打点配置,具体配置方法请参考[《HiSysEvent打点配置指导》](subsys-dfx-hisysevent-logging-config.md)
在进行HiSysEvent事件埋点之前,需要先完成HiSysEvent打点配置,具体配置方法请参考[HiSysEvent打点配置指导](subsys-dfx-hisysevent-logging-config.md)
## 开发指导
......@@ -18,28 +18,29 @@ HiSysEvent打点提供了事件埋点功能,开发者可以通过在关键路
### 接口说明
#### c++接口说明
#### C++接口说明
c++事件埋点开发能力如下:HiSysEvent类,具体的API详见接口文档 。
C++事件埋点开发能力如下:HiSysEvent类,具体的API详见接口文档 。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 在OpenHarmony-3.2-Beta3版本中,为避免打点风暴事件引发性能问题,对HiSysEvent打点进行了管控,表1中的HiSysEvent::Write打点API接口被表2中的HiSysEventWrite宏接口取代。HiSysEvent::Write接口已废弃,请使用HiSysEventWrite宏完成HiSysEvent事件打点。
>
> 在OpenHarmony-3.2-Beta3版本中,为避免打点风暴事件引发性能问题,对HiSysEvent打点进行了管控。表1中的HiSysEvent::Write打点API接口被表2中的HiSysEventWrite宏接口取代。HiSysEvent::Write接口已废弃,请使用HiSysEventWrite宏完成HiSysEvent事件打点。
**表1** c++事件埋点API接口功能介绍(已废弃)
**表1** C++事件埋点API接口功能介绍(已废弃)
| 接口名 | 描述 |
| ------------------------------------------------------------ | ---------------------- |
| ------------------------------------------------------------ | --------------------- |
| template&lt;typename...&nbsp;Types&gt;&nbsp;<br>static&nbsp;int&nbsp;Write(const&nbsp;std::string&nbsp;&amp;domain,&nbsp;const&nbsp;std::string&nbsp;&amp;eventName,&nbsp;EventType&nbsp;type,&nbsp;Types...&nbsp;keyValues) | 将打点事件数据进行落盘 |
**表2** c++事件埋点API接口功能介绍
**表2** C++事件埋点API接口功能介绍
| 接口名 | 描述 |
| ------------------------------------------------------------ | ---------------------- |
| HiSysEventWrite(domain, eventName, type, ...) | 将打点事件数据进行落盘|
| ------------------------------------------------------------ | --------------------- |
| HiSysEventWrite(domain, eventName, type, ...) | 将打点事件数据进行落盘 |
**表3** c++事件类型API接口介绍
**表3** C++事件类型介绍
| 接口名 | 描述 |
| --------- | ------------ |
| 事件类型 | 描述 |
| --------- | ----------- |
| FAULT | 故障类型事件 |
| STATISTIC | 统计类型事件 |
| SECURITY | 安全类型事件 |
......@@ -52,17 +53,17 @@ kernel事件埋点开发能力如下:
**表4** kernel事件埋点API接口功能介绍
| 接口名 | 描述 |
| ------------------------------------------------------------ | ------------------------------------ |
| struct hiview_hisysevent *hisysevent_create(const char *domain, const char *name, enum hisysevent_type type); | 创建一个事件对象 |
| void hisysevent_destroy(struct hiview_hisysevent *event); | 销毁一个事件对象 |
| int hisysevent_put_integer(struct hiview_hisysevent *event, const char *key, long long value); | 将整数类型的事件参数添加到事件对象 |
| ------------------------------------------------------------ | ----------------------------------- |
| struct hiview_hisysevent *hisysevent_create(const char *domain, const char *name, enum hisysevent_type type); | 创建一个事件对象 |
| void hisysevent_destroy(struct hiview_hisysevent *event); | 销毁一个事件对象 |
| int hisysevent_put_integer(struct hiview_hisysevent *event, const char *key, long long value); | 将整数类型的事件参数添加到事件对象 |
| int hisysevent_put_string(struct hiview_hisysevent *event, const char *key, const char *value); | 将字符串类型的事件参数添加到事件对象 |
| int hisysevent_write(struct hiview_hisysevent *event); | 将事件对象数据进行落盘 |
| int hisysevent_write(struct hiview_hisysevent *event); | 将事件对象数据进行落盘 |
**表5** kernel事件类型API接口介绍
**表5** kernel事件类型介绍
| 接口名 | 描述 |
| --------- | ------------ |
| 事件类型 | 描述 |
| --------- | ----------- |
| FAULT | 故障类型事件 |
| STATISTIC | 统计类型事件 |
| SECURITY | 安全类型事件 |
......@@ -70,9 +71,9 @@ kernel事件埋点开发能力如下:
### 开发步骤
#### c++埋点开发步骤
#### C++埋点开发步骤
1. 在需要埋点的地方直接调用埋点接口,并传入相应事件参数即可:
1. 在需要埋点的地方直接调用埋点接口,并传入相应事件参数
```c++
HiSysEventWrite(HiSysEvent::Domain::AAFWK, "START_APP", HiSysEvent::EventType::BEHAVIOR, "APP_NAME", "com.ohos.demo");
......@@ -80,13 +81,13 @@ kernel事件埋点开发能力如下:
#### kernel埋点开发步骤
1. 根据事件领域、事件名称、事件类型参数,创建一个基础的事件对象
1. 根据事件领域、事件名称、事件类型参数,创建一个基础的事件对象
```c
struct hiview_hisysevent *event = hisysevent_create("KERNEL", "BOOT", BEHAVIOR);
```
2. 将自定义的事件参数,传入到事件对象里
2. 将自定义的事件参数,传入到事件对象里
```c
// 添加整数类型参数
......@@ -96,13 +97,13 @@ kernel事件埋点开发能力如下:
hisysevent_put_string(event, "MSG", "This is a test message");
```
3. 在事件对象构建完成后,将事件进行上报
3. 在事件对象构建完成后,将事件进行上报
```c
hisysevent_write(event);
```
4. 事件上报完成后,需要手动将对象销毁
4. 事件上报完成后,需要手动将对象销毁
```c
hisysevent_destroy(&event);
......@@ -110,7 +111,7 @@ kernel事件埋点开发能力如下:
#### 事件领域屏蔽的步骤
1. 在相应的文件中定义名称为“DOMAIN_MASKS”,内容形如“DOMAIN_NAME_1|DOMAIN_NAME_2|...|DOMAIN_NAME_n”共有三种屏蔽场景:
1. 在相应的文件中定义名称为“DOMAIN_MASKS”,内容形如“DOMAIN_NAME_1|DOMAIN_NAME_2|...|DOMAIN_NAME_n”共有三种屏蔽场景:
- 只屏蔽当前源码文件中的相应事件领域的HiSysEvent打点,在该cpp文件引入hisysevent.h头文件之前定义宏DOMAIN_MASKS即可。
```c++
......@@ -125,7 +126,7 @@ kernel事件埋点开发能力如下:
}
```
- 全局屏蔽相应事件领域的HiSysEvent打点,则在/build/config/compiler/BUILD.gn中定义宏DIMAIN_MASKS即可。
- 全局屏蔽相应事件领域的HiSysEvent打点,则在/build/config/compiler/BUILD.gn中定义宏DOMAIN_MASKS即可。
```gn
cflags_cc += ["-DDOMAIN_MASKS=\"DOMAIN_NAME_1|DOMAIN_NAME_2|...|DOMAIN_NAME_n\""]
```
......@@ -140,17 +141,17 @@ kernel事件埋点开发能力如下:
### 开发实例
#### c++埋点开发实例
#### C++埋点开发实例
假设业务模块需要在应用启动时进行埋点来记录应用启动事件,且需要记录应用的包名信息,完整使用示例如下所示:
1. 首先,需要在业务模块的在BUILD.gn里增加HiSysEvent部件依赖
1. 首先,需要在业务模块的在BUILD.gn里增加HiSysEvent部件依赖
```c++
external_deps = [ "hisysevent_native:libhisysevent" ]
```
2. 在业务模块的应用启动函数StartAbility()中,调用埋点接口并传入对应事件参数
2. 在业务模块的应用启动函数StartAbility()中,调用埋点接口并传入对应事件参数
```c++
#include "hisysevent.h"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册