学完时间:2024年8月24日
学完排名:第1698名
一、Performance Analysis Kit简介
Performance Analysis Kit(性能分析服务)为开发者提供应用事件、日志、跟踪分析工具,可观测应用运行时状态,用于行为分析、故障分析、安全分析、统计分析,帮助开发者持续改进应用体验。
使用场景
- 应用调试:
提供流水日志功能,帮助开发者记录和获取日志,进行问题分析。 - 问题定位:
提供各类场景的故障现场,包含可靠性、性能、功耗、分布式故障相关的日志、事件、跟踪。 - 线上监控:
提供应用构建线上观测所需的日志、事件、跟踪接口,方便开发者记录、分析应用线上运行情况。
能力范围 - HiLog流水日志,提供开发者记录和获取流水日志能力。
- HiTraceMeter和HiTraceChain跟踪,提供开发者Trace度量和跨线程跨进程分布式跟踪的能力。
- HiAppEvent应用事件,提供开发者记录故障、行为、安全、统计事件的能力,并订阅系统事件,设置数据处理者完成数据上传。
- FaultLogger故障日志管理,提供开发者主动查询故障日志的通道。
- HiDebug资源采集,提供开发者获取应用、系统资源的使用情况。
亮点/特征
便捷的构建APM系统
- 提供接口(HiDebug、HiAppEvent、HiLog)可自建端侧APM SDK,与厂商自研APM对接。
- 基于HiAppEvent自定义事件、订阅系统事件功能,快捷记录和收集运营和运维所需事件。
强悍的异常处理机制
- 提供精简标准完备的异常日志,支持精准记录异常传播路径。
- 全面的异常检测机制,实时感知异常,通知应用,自动拉起恢复。
全面的基础维测能力
- 日志提供分级分类功能,支持多语言,隐私处理和流量控制。
- 提供完备的事件框架和事件打点、记录、上报机制。
- 支持追踪进程轨迹,进行程序性能分析。
故障分析
基于 Performance Analysis Kit(性能分析服务),为开发者提供了完善的故障检测、异常处理等能力。由于故障种类异常繁多,产品和软件业务不同,故障的原因和表现也千差万别,因此分析定位疑难问题是对工程师经验、能力、智慧的多重考验。稳定性是应用的重要质量属性,很大程度上决定了应用的开发效率和交付成本,严重影响应用质量和体验。通常可以通过开发态和运行态的故障管理设计来提升版本质量,包括故障检测、故障分析、定位、恢复、质量度量等。
为了帮助开发者更好更快的定位和解决各位应用稳定性故障,本章节还会介绍JS Crash、CppCrash、AppFreeze、资源泄露等故障的通用定位方法以及一些通用分析案例。相关内容需要开发者有编程语言、操作系统等基础知识,案例分析过程还会关联 DevEco Studio 相关能力以及 SDK 相关套件的基础运用和实践。
使用HiLog打印日志(ArkTS)
在应用开发过程中,可在关键代码处输出日志信息。在运行应用后,通过查看日志信息来分析应用执行情况(如应用是否正常运行、代码运行时序、运行逻辑分支是否正常等)。
系统提供不同的API供开发者调用并输出日志信息,即HiLog与console。两个API在使用时略有差异,本文重点介绍HiLog的用法。
HiLog中定义了DEBUG、INFO、WARN、ERROR、FATAL五种日志级别,并提供了对应的方法输出不同级别的日志
参数解析
说明
isLoggable()和具体日志打印接口使用的domain和tag应保持一致。
isLoggable()使用的level,应和具体日志打印接口级别保持一致。
-
domain:
用于指定输出日志所对应的业务领域,取值范围为0x0000~0xFFFF,开发者可以根据需要进行自定义。 -
tag:
用于指定日志标识,可以为任意字符串,建议标识调用所在的类或者业务行为。 -
level:
用于指定日志级别。取值见LogLevel。 -
format:
格式字符串,用于日志的格式化输出。日志打印的格式化参数需按照“%{private flag}specifier”的格式打印。
约束与限制
日志打印最多打印4096字节,超出限制文本将被截断。
HiAppEvent是在系统层面为应用开发者提供的一种事件打点机制,帮助应用记录在运行过程中发生的故障信息、统计信息、安全信息、用户行为信息,支撑开发者分析应用的运行情况。以便进一步统计分析访问数、日常用户活跃数量、用户操作习惯以及其他影响用户使用产品的关键因素。
三、HiAppEvent介绍
基本概念
打点: 记录由用户操作引起的变化,提供业务数据信息,供开发、产品、运维分析。
事件设计规范
-
事件领域:
标识事件的领域,建议设置为业务模块名称,以便于区分不同的业务模块。 -
事件名称:
指定事件的名称,建议设置为具体的业务名称,以便于描述实际的业务意义。 -
事件类型:
指定事件的类型,支持以下四种类型事件:- 行为事件:记录用户日常操作行为的事件,例如按钮点击、界面跳转等行为。
- 故障事件:定位和分析应用故障的事件,例如界面卡顿、掉网掉话等异常。
- 统计事件:统计和度量应用关键行为的事件,例如对使用时长、访问数等的统计。
- 安全事件:记录涉及应用安全行为的事件,例如密码修改、用户授权等行为。
- 事件参数:指定事件的参数,每个事件可以包含一组参数,建议设置为事件属性或事件发生上下文信息,以便于描述事件的详细信息。
四、使用HiTraceMeter跟踪性能(ArkTS)
简介
HiTraceMeter提供系统性能打点接口。开发者通过在关键代码位置调用HiTraceMeter接口提供的API接口,能够有效跟踪进程轨迹、查看系统性能。
基本概念
HiTraceMeter Tag:跟踪数据使用类别分类,称作HiTraceMeter Tag或HiTraceMeter Category。一般每个软件子系统对应一个Tag,该Tag在打点API中以类别Tag参数传入。HiTraceMeter命令行工具采集跟踪数据时,只采集给定的Tag类别选项指定的跟踪数据。
实现原理
-
应用程序通过HiTraceMeter函数接口进行打点,HiTraceMeter函数将跟踪数据通过内核sysfs文件接口输出到内核的ftrace数据缓冲区。
-
HiTraceMeter命令行工具读取内核ftrace缓冲区中的跟踪数据,将文本格式的跟踪数据保存到设备侧的文件中。
五、闯关习题
判断题
1.HiAppEvent提供事件监听功能,开发者不能监听到系统事件:
答案:错误(False)
2.HiTraceMeter用于追踪进程轨迹,进行程序性能分析,支持内核ftrace预置埋点和用户态打点:
答案:正确(True)
单选题
1.关于HiLog日志打印规则,下列说法错误的是:
答案:B. 日志中可以打印用户个人隐私信息。
2.下列哪一项不是HiLog定义的日志级别:
答案:E. FAIL
多选题
1.DFX设计范围主要包含以下哪些:
答案: 全选
A. HiLog日志,基础流水日志打印。
B. HiAppEvent应用事件,事件埋点接口,提供事件的埋点写入。
C. HiTrace Meter跟踪,提供追踪进程轨迹,进行程序性能分析。
D. HiTrace Chain调用链,提供业务流程调用链跟踪的维测接口。