【鸿蒙学习】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调用链,提供业务流程调用链跟踪的维测接口。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/408260.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Prometheus学习

监控架构介绍: 基本架构: Prometheus 和 Zabbix 的对比: 安装和使用: Prometheus 采集、存储数据Grafana 用于图表展示alertmanager 用于接收 Prometheus 发送的警告信息node-exporter 用于收集操作系统和硬件信息的 metrics …

Linux:Bash中的命令介绍(简单命令、管道以及命令列表)

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 在Bash中,命令执行的方式可以分为简单命令、管道和命令列表组成。这些结构提供了强大的工具,允许用户组合命令并精确控制其执行方式。以下是对这…

Ubuntu24.04安装MYSQL8.0

更新源 sudo apt update安装mysql服务 默认安装最新版本 sudo apt install mysql-server检查安装版本 mysql --version检查mysql运行状态 systemctl status mysql开启远程访问,在ubuntu下mysql默认是只允许本地访问 sudo vim /etc/mysql/mysql.conf.d/mysqld.…

新疆旅游今年为什么这么火热?

今年新疆旅游火爆全网,不夸张的说,打开朋友圈,几乎一半人在新疆旅游、还有一半人在去新疆旅游的路上。 大家也纷纷在小红书上晒出新疆相关的笔记,覆盖旅游、美食、穿搭、养生、摄影等众多热门行业,相关话题多次登上小…

【C++】12.智能指针

在上一篇博客【C】11.异常中我们知道有些时候会造成内存空间的未释放从而导致内存泄漏,因此本篇博客的内容就是如何减少内存泄漏——智能指针。 一、RAII RAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资…

垃圾分类笔记YOLOV5(一)-pip换源-口罩识别-训练自己的数据集

pip换源网址 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple不进行配置的是临时换源 1、从github上下载YOLOV5的代码 翻墙软件clash 数据集地址roboflow clash配置一键导入 哔哩哔哩视频地址 数据集的下载格式: 2、修改自己的数据…

Webots与ROS1、ROS2接口变迁-2024-

三大免费仿真器CoppeliaSim、Gazebo和Webots。 Gazebo接口总结: Gazebo与ROS1、ROS2接口变迁-2005-2024--CSDN博客 缺点:版本绑定策略 早期webots版本和ros版本绑定 后期,webots接口最新版本和ros特定版本最匹配。 例如: 最好按…

Scrapy 分布式爬虫框架 Scrapy-Redis

github官网代码示例:https://github.com/rmax/scrapy-redis/blob/master/example-project/example/spiders/myspider_redis.py 什么是 Scrapy-Redis Scrapy-Redis 是一个基于 Scrapy 的扩展,用于实现分布式爬虫。它利用 Redis 作为分布式队列来共享待爬…

R 语言学习教程,从入门到精通,R 绘图饼图(23)

1、R 绘图 条形图 条形图,也称为柱状图条形图,是一种以长方形的长度为变量的统计图表。 条形图可以是水平或垂直的,每个长方形可以有不同的颜色。 R 语言使用 barplot() 函数来创建条形图,格式如下: barplot(H,xlab,…

JavaScript初级——DOM和事件简介

一、什么是DOM? 二、模型 三、对象的 HTML DOM 树 四、节点 浏览器已经为我们提供了文档节点对象,这个对象是window属性,可以再网页中直接使用,文档节点代表的是整个网页。 五、事件简介 事件,就是用户和浏览器之间的交…

【每日一题】【素数筛板子题】又是一年毕业季 牛客小白月赛99 D题 C++

牛客小白月赛99 D题 又是一年毕业季 题目背景 牛客小白月赛99 题目描述 样例 #1 样例输入 #1 3 4 2 4 6 5 5 6 2 5 3 2333333 8 11 4 5 14 19 19 8 10样例输出 #1 3 7 2做题思路 首先观察到 即需要保证拍照的时刻 大于等于 2 那么就从2开始往上走,如果有人…

【精选】推荐7款AI论文一键生成论文、开题报告和文献综述网站

在当前的学术研究和写作中,AI技术的应用已经变得越来越普遍。特别是对于论文、开题报告和文献综述的生成,许多平台提供了便捷的一键生成服务。以下是七款推荐的AI论文一键生成工具,包括千笔-aipaperpass。 1. 千笔-aipaperpass 千笔-aipape…

文心快码(Baidu Comate)初体验

文心快码(Baidu Comate)初体验 1文心快码简介和安装:简要介绍文心快码(Baidu Comate)、安装方法、使用方法等; Baidu Comate 是由百度自主研发,基于文心大模型,结合百度丰富的编程现…

主机安全-网络攻击监测

目录 概述暴力破解(SSH爆破为例)原理规则攻击模拟告警 端口扫描原理规则攻击模拟告警 流量劫持原理规则攻击模拟告警 参考 概述 本文介绍主机网络层面上的攻击场景,每种攻击场景举一个例子。监测方面以字节跳动的开源HIDS elkeid举例。 针对…

当前A股平均市盈率

再写一篇【不务正业】的 2023-08-23A股平均市盈率 来自乐咕乐股网 当前A股市盈率是否为低点? 不言而喻 ‌当前A股市场的市盈率确实处于相对低位。‌ 根据东方财富Choice最新数据显示数据,截至2024年8月23日,全A市盈率为13.06倍,…

初识C语言指针(3)

目录 1. 数组名的理解 2. 使⽤指针访问数组 3. ⼀维数组传参的本质 4. 冒泡排序 5. 二级指针 6. 指针数组 7. 指针数组模拟⼆维数组 结语 1. 数组名的理解 对于数组名想必大家并不陌生,数组名就是该数组首元素的地址,设想有一个arr 数组。我们…

解决github访问慢的问题

GitHub是全球开发者广泛使用的代码托管平台,但有时由于网络问题,访问速度可能会受到影响,这对于依赖GitHub进行日常开发工作的程序员来说是一个不小的困扰。为了解决这一问题,我们可以通过修改本地hosts文件来尝试提升访问速度。 …

如何将 Parallels Desktop 许可证密钥移至新的 Mac?

根据 Parallels 最终用户许可协议(EULA)的规定,您最多可以在一台设备上下载、安装和使用 Parallels Desktop 的一个原始副本。但是面对更换新机的用户,可以通过迁移的方式把 Parallels Desktop 许可证密钥移至新的 Mac&#xff0c…

大数据-91 Spark 集群 RDD 编程-高阶 RDD广播变量 RDD累加器 Spark程序优化

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

井盖异动传感器:为城市安全加码

城市的地下管网错综复杂,井盖作为连接地面与地下的重要通道,其安全性至关重要。然而,由于各种原因导致的井盖丢失或损坏事件时有发生,给行人和车辆带来了极大的安全隐患。 一、智能科技,守护脚下安全 旭华智能井盖异…