当前位置:网站首页>#夏日挑战赛# OpenHarmony HiSysEvent打点调用实践(L2)
#夏日挑战赛# OpenHarmony HiSysEvent打点调用实践(L2)
2022-06-27 18:25:00 【51CTO】
目录
简介
设备开发,通常的问题分析主要靠日志记录,Openharmony的日志记录分很多种,我们用的最多的是Hilog。
此文章以openharmony 3.1代码基础,介绍另外一种记录: 事件打点(HiSysEvent)。
- 打点源码分析
- 打点在代码中应用
- 打点测试工程的编译配置
- 打点测试操作步骤
- 本用例开发板(3516开发板:HiSpark_AI_Hi3516D_One_Light_VER.B开发板上测试)
打点源码
主要的源码目录
打点调用库目录:base\hiviewdfx\hisysevent\interfaces\native\innerkits\hisysevent
打点信息搜集存储进程:base\hiviewdfx\hiview
打点测试进程(自己添加):myapp\hisysevent_test源码见附件
测试进程和信息搜集进程流程

- 打点调用进程通过套接字,发送打点信息。
- hiview进程通过套接字接收打点信息,进行处理存储。
- 事件处理插件配置的初始化读取
1.事件是否通过线程来处理的配置:system\etc\hiview\plugin_config,解析函数Plugin::BindWorkLoop
2.事件格式的配置:system\etc\hiview\hisysevent.def,解析函数SysEventService::OnLoad。hisysevent.def中没有定义的事件,不会存储在/data/log/LogService/sys_event_db/hisysevent.db中。 - 接收数据的处理
1.插件初始化的配置中配置了线程来处理,则接收消息会调用EventLoop::AddEvent进行处理存储。
2.插件初始化的配置中未配置线程处理,则接收消息会调用Pipeline::ProcessEvent进行处理存储。
测试工程配置
代码目录结构

源码见附件
子系统配置
build\subsystem_config.json

产品配置
productdefine\common\products\Hi3516DV300.json

事件domain配置(myapp源文件不包含,需要学习者自行配置)
base\hiviewdfx\hisysevent\interfaces\native\innerkits\hisysevent\include\hisysevent.h

bundle.json配置

格式定义和打点调用对比

编译
- 全量编译:
./build.sh --product-name Hi3516DV300 --ccache
需要全量编译,才能将myapp\hisysevent_test\hisysevent_test.yaml的打点格式编译到hisysevent.def中去。 - 测试工程编译:
./build.sh --product-name Hi3516DV300 --ccache --build-target hisyseventTest
测试
- 修改开发板的读写权限

- 将编译文件发送到开发板对应目录:

注意:如果hisysevent_test.yaml没有编入hisysevent.def,则需要去掉–ccache参数重新进行全量编译
- 修改打点测试应用的执行权限
- 修改系统时间,便于查看打点消息
- 终端1:实时查看tag为
HisysEvTest的打点消息
- 终端2:执行测试打点的应用
- 终端3:查看存储的打点消息
附件链接:
myapp.rar( https://ost.51cto.com/resource/2079)
打点代码分析.ppt( https://ost.51cto.com/resource/2080)
边栏推荐
- Oracle 架构汇总
- UE4:Build Configuration和Config的解释
- Manage rust project through cargo
- Accumulating power in the middle stage, UFIDA IUAP builds a new base for digital intelligence of social enterprises
- muduo
- 1025 PAT Ranking
- UE4: explanation of build configuration and config
- [login interface]
- ABAP随笔-面试回忆 望大家 需求不增 人天飙升
- [数组]BM99 顺时针旋转矩阵-简单
猜你喜欢
随机推荐
As a software engineer, give advice to young people (Part 2)
UE4 realizes long press function
嵌入式软件开发中必备软件工具
Graylog 新一代日志收集预警系统安装配置
ABAP随笔-通过api获取新冠数据
安装NFS服务
muduo
Oracle 架构汇总
Leetcode 821. 字符的最短距离(简单) - 续集
数据库锁问题
Grasp the detailed procedure of function call stack from instruction reading
SQL审核平台权限模块介绍和账号创建教程
刷题笔记-树(Easy)-更新中
Summary of redis big key problem handling
Golang map 并发读写问题源码分析
数组练习 后续补充
云原生存储解决方案Rook-Ceph与Rainbond结合的实践
数据库索引
Summary of submarine cable detection technology
使用MySqlBulkLoader批量插入数据











