• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# HiSysEvent打点指导<a name="ZH-CN_TOPIC_0000001231373947"></a>
2
3
4## 概述<a name="section77571101789"></a>
5
6### 功能简介<a name="section123133332175224"></a>
7
8HiSysEvent提供OpenHarmony打点接口,通过在关键路径打点记录系统在运行过程中的重要信息,辅助开发者定位问题,此外还支持开发者将数据上传到云进行大数据质量度量。
9
10### 约束与限制<a name="section123181432175224"></a>
11
12**HiSysEvent事件打点条件约束:**
13
14- 在进行HiSysEvent事件打点之前,需要先完成HiSysEvent打点配置,具体配置方法请参考[《HiSysEvent打点配置指导》](subsys-dfx-hisysevent-logging-config.md)。
15
16## 开发指导<a name="section314416685113"></a>
17
18### 接口说明<a name="section13480315886"></a>
19
20C++打点接口如下:
21
22HiSysEvent类,具体的API详见接口文档 。
23
24**表 1**  HiSysEvent接口介绍
25
26| 接口名称 | 描述  |
27| -------- | --------- |
28| template&lt;typename... Types&gt; static int Write(const std::string &amp;domain, const std::string &amp;eventName, EventType type, Types... keyValues) | 接口功能:记录系统事件。<br><br>输入参数:<ul><li>domain:事件的相关领域,需要使用预置领域请参考Domain,可自定义领域。自定义领域长度在16个字符以内,有效的字符是0-9、A-Z,以字母开头。</li><li>eventName:事件名,长度在32个字符以内,有效的字符是0-9、A-Z、下划线,以字母开头,不能以下划线结尾。</li><li>type:事件类型,参考EventType。</li><li>keyValues:事件参数键值对,支持基本的数据类型、std::string,以及std::vector&lt;基本类型&gt;、std:vector&lt;std::string&gt;。参数名长度在48个字符以内,有效的字符是0-9、A-Z、下划线,以字母开头,不能以下划线结尾。参数名的个数在32个以内。</li></ul>返回值:<ul><li>0:系统事件记录成功。</li><li>负值:系统事件记录失败。</li></ul> |
29
30**表 2**  HiSysEvent::Domain接口介绍
31
32| 成员名称 | 描述  |
33| -------- | --------- |
34| static const std::string AAFWK | 元能力子系统 |
35| static const std::string APPEXECFWK | 用户程序框架子系统 |
36| static const std::string ACCOUNT | 账号子系统 |
37| static const std::string ArkUI | ArkUI子系统 |
38| static const std::string AI | AI业务子系统 |
39| static const std::string BARRIER_FREE | 无障碍软件服务子系统 |
40| static const std::string BIOMETRICS | 生物特征识别服务子系统 |
41| static const std::string CCRUNTIME |C/C++运行环境子系统 |
42| static const std::string COMMUNICATION | 公共通信子系统 |
43| static const std::string DEVELOPTOOLS | 研发工具链子系统 |
44| static const std::string DISTRIBUTED_DATAMGR | 分布式数据管理子系统 |
45| static const std::string DISTRIBUTED_SCHEDULE | 分布式任务调度子系统 |
46| static const std::string GLOBAL | 全球化子系统 |
47| static const std::string GRAPHIC | 图形子系统 |
48| static const std::string HIVIEWDFX | DFX子系统 |
49| static const std::string IAWARE | 本地资源调度管控子系统 |
50| static const std::string INTELLI_ACCESSORIES | 智能配件业务子系统 |
51| static const std::string INTELLI_TV | 智能电视业务子系统 |
52| static const std::string IVI_HARDWARE | 车机专有硬件服务子系统 |
53| static const std::string LOCATION | 位置服务子系统 |
54| static const std::string MSDP | 综合传感处理平台子系统 |
55| static const std::string MULTI_MEDIA | 媒体子系统 |
56| static const std::string MULTI_MODAL_INPUT | 多模输入子系统 |
57| static const std::string NOTIFICATION | 事件通知子系统 |
58| static const std::string POWERMGR | 电源服务子系统 |
59| static const std::string ROUTER | 路由器业务子系统 |
60| static const std::string SECURITY | 安全子系统 |
61| static const std::string SENSORS | 泛Sensor服务子系统 |
62| static const std::string SOURCE_CODE_TRANSFORMER | 应用移植子系统 |
63| static const std::string STARTUP | 启动恢复子系统 |
64| static const std::string TELEPHONY | 电话服务子系统 |
65| static const std::string UPDATE | 升级服务子系统 |
66| static const std::string USB | USB服务子系统 |
67| static const std::string WEARABLE_HARDWARE | 穿戴专有硬件服务子系统 |
68| static const std::string WEARABLE_HARDWARE | 穿戴业务子系统 |
69| static const std::string OTHERS | 其它 |
70
71**表 3**  HiSysEvent::EventType接口介绍
72
73| 接口名称 | 描述  |
74| -------- | --------- |
75| FAULT | 故障类型事件 |
76| STATISTIC | 统计类型事件 |
77| SECURITY | 安全类型事件 |
78| BEHAVIOR | 系统行为事件 |
79
80### 开发实例<a name="section112771171317"></a>
81
82C++接口实例
83
841.  源代码开发
85
86    在类定义头文件或者类实现源文件中,包含HiSysEvent头文件:
87
88    ```
89    #include "hisysevent.h"
90    ```
91
92    假设在业务关注应用启动时间start\_app,在业务类实现相关源文件中使用(调用接口打点):
93
94    ```
95    HiSysEvent::Write(HiSysEvent::Domain::AAFWK, "start_app", HiSysEvent::EventType::FAULT, "app_name", "com.demo");
96    ```
97
982.  编译设置,在BUILD.gn里增加子系统SDK依赖:
99
100    ```
101    external_deps = [ "hisysevent_native:libhisysevent" ]
102    ```
103