OpenHarmony HiSysEvent打点调用实践(L2)
2023-04-18 16:40:25 时间
简介
设备开发,通常的问题分析主要靠日志记录,Openharmony的日志记录分很多种,我们用的最多的是Hilog。
此文章以openharmony 3.1代码基础,介绍另外一种记录: 事件打点(HiSysEvent)。
- 打点源码分析。
- 打点在代码中应用。
- 打点测试工程的编译配置。
- 打点测试操作步骤。
- 本用例开发板(3516开发板:HiSpark_AI_Hi3516D_One_Light_VER.B开发板上测试)。
打点源码
主要的源码目录
- 打点调用库目录:basehiviewdfxhisyseventinterfaces ativeinnerkitshisysevent。
- 打点信息搜集存储进程:basehiviewdfxhiview。
- 打点测试进程(自己添加):myapphisysevent_test 源码见附件。
测试进程和信息搜集进程流程
- 打点调用进程通过套接字,发送打点信息。
- hiview进程通过套接字接收打点信息,进行处理存储。
- 事件处理插件配置的初始化读取。
1.事件是否通过线程来处理的配置:systemetchiviewplugin_config,解析函数Plugin::BindWorkLoop2.事件格式的配置:systemetchiviewhisysevent.def,解析函数SysEventService::OnLoad。hisysevent.def中没有定义的事件,不会存储在/data/log/LogService/sys_event_db/hisysevent.db中。 - 接收数据的处理。
1.插件初始化的配置中配置了线程来处理,则接收消息会调用EventLoop::AddEvent进行处理存储。2.插件初始化的配置中未配置线程处理,则接收消息会调用Pipeline::ProcessEvent进行处理存储。
测试工程配置
代码目录结构
源码见附件。
子系统配置
buildsubsystem_config.json。
"myapp": {
"path":"myapp",
"name": "myapp"
}
产品配置
productdefinecommonproductsHi3516DV300.json。
"myapp:hisysevent_test":{}
事件domain配置(myapp源文件不包含,需要学习者自行配置)
basehiviewdfxhisyseventinterfaces ativeinnerkitshisyseventincludehisysevent.h。
static constexpr char HISYSEVENTTEST[] = "HISYSEVENTTEST";
bundle.json配置
格式定义和打点调用对比
编译
- 全量编译:./build.sh --product-name Hi3516DV300 --ccache需要全量编译,才能将myapphisysevent_testhisysevent_test.yaml的打点格式编译到hisysevent.def中去。
- 测试工程编译:./build.sh --product-name Hi3516DV300 --ccache --build-target hisyseventTest。
测试
- 修改开发板的读写权限。
进入终端:hdc_std.exe shell
修改权限:mount -o remount,rw /
添加test目录:mkdir /data/test/
- 将编译文件发送到开发板对应目录:
测试应用:hdc_std.exe file send Z:L2.31outhi3516dv300myapphisysevent_testhisyseventTest /data/test/
打点信息格式文件:hdc_std.exe file send Z:L2.31outhi3516dv300packagesphonesystemetchiviewhisysevent.def /system/etc/hiview/
注意:如果hisysevent_test.yaml没有编入hisysevent.def,则需要去掉–ccache参数重新进行全量编译。
- 修改打点测试应用的执行权限。
切到对应的目录:cd /data/test/
修改成可执行:chmod 0755 hisyseventTest
- 修改系统时间,便于查看打点消息。
修改系统时间搓: date 2022-06-21
同步硬件时钟: hwclock -w
查询时间: date
- 终端1:实时查看tag为HisysEvTest的打点消息。
hisysevent -r -t HisysEvTest
- 终端2:执行测试打点的应用。
/data/test/hisyseventTest
- 终端3:查看存储的打点消息。
hisysevent -l
事件数据格式配置。
文章相关附件可以点击下面的原文链接前往下载:
- myapp.rar。
- 打点代码分析.ppt。
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击