Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
30744945
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
30744945
编写于
8月 08, 2022
作者:
O
openharmony_ci
提交者:
Gitee
8月 08, 2022
浏览文件
操作
浏览文件
下载
差异文件
!7151 【OpenHarmony开源贡献者计划2022】ubsys-dfx-hisysevent-logging.md 表达问题
Merge pull request !7151 from HYC/0726-c
上级
0e0b3dee
ac30d8f9
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
32 addition
and
31 deletion
+32
-31
zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-logging.md
zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-logging.md
+32
-31
未找到文件。
zh-cn/device-dev/subsystems/subsys-dfx-hisysevent-logging.md
浏览文件 @
30744945
...
...
@@ -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
<
typename...
Types
>
<br>
static
int
Write(const
std::string
&
domain,
const
std::string
&
eventName,
EventType
type,
Types...
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中定义宏D
I
MAIN_MASKS即可。
-
全局屏蔽相应事件领域的HiSysEvent打点,则在/build/config/compiler/BUILD.gn中定义宏D
O
MAIN_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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录