【鸿蒙学习】HarmonyOS应用开发者高级认证 - 应用DFX能力介绍(含闯关习题)


学完时间: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类别选项指定的跟踪数据。

实现原理

  1. 应用程序通过HiTraceMeter函数接口进行打点,HiTraceMeter函数将跟踪数据通过内核sysfs文件接口输出到内核的ftrace数据缓冲区。

  2. 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调用链,提供业务流程调用链跟踪的维测接口。

相关推荐
王俊山IT20 分钟前
C++学习笔记----10、模块、头文件及各种主题(一)---- 模块(5)
开发语言·c++·笔记·学习
Mephisto.java1 小时前
【大数据学习 | kafka高级部分】kafka中的选举机制
大数据·学习·kafka
南宫生2 小时前
贪心算法习题其三【力扣】【算法学习day.20】
java·数据结构·学习·算法·leetcode·贪心算法
长弓三石2 小时前
鸿蒙网络编程系列44-仓颉版HttpRequest上传文件示例
前端·网络·华为·harmonyos·鸿蒙
武子康3 小时前
大数据-212 数据挖掘 机器学习理论 - 无监督学习算法 KMeans 基本原理 簇内误差平方和
大数据·人工智能·学习·算法·机器学习·数据挖掘
使者大牙3 小时前
【大语言模型学习笔记】第一篇:LLM大规模语言模型介绍
笔记·学习·语言模型
As977_3 小时前
前端学习Day12 CSS盒子的定位(相对定位篇“附练习”)
前端·css·学习
ajsbxi3 小时前
苍穹外卖学习记录
java·笔记·后端·学习·nginx·spring·servlet
Rattenking3 小时前
React 源码学习01 ---- React.Children.map 的实现与应用
javascript·学习·react.js
SameX4 小时前
鸿蒙 Next 电商应用安全支付与密码保护实践
前端·harmonyos