HarmonyOS-高级(五)

ops/2024/12/15 15:21:15/

文章目录

      • HiTraceMeter
      • HiTraceChain
      • 错误管理
      • 故障分析

https://i-blog.csdnimg.cn/blog_migrate/58966ddd9b29aabe8841f5ec34f0d31c.gif

🏡作者主页:点击!

🤖HarmonyOS专栏:点击!

⏰️创作时间:2024年12月11日12点12分

在这里插入图片描述

HiTraceMeter

HiTraceMeter提供系统性能打点接口。开发者通过在关键代码位置调用HiTraceMeter接口提供的API接口,能够有效跟踪进程轨迹、查看系统性能

HiTraceMeter Tag:跟踪数据使用类别分类,称作HiTraceMeter Tag或HiTraceMeter Category

每个软件子系统对应一个Tag,该Tag在打点API中以类别Tag参数传入

HiTraceMeter命令行工具采集跟踪数据时,只采集给定的Tag类别选项指定的跟踪数据

实现原理

  1. 应用程序通过HiTraceMeter函数接口进行打点,HiTraceMeter函数将跟踪数据通过内核 sysfs 文件接口输出到内核的 ftrace数据缓冲区。
  2. HiTraceMeter命令行工具读取内核ftrace缓冲区中的跟踪数据,将文本格式的跟踪数据保存到设备侧的文件中

HiTraceMeter打点接口按功能/行为分类,主要分三类:同步时间片跟踪接口、异步时间片跟踪接口和整数跟踪接口

无论同步时间片跟踪接口还是异步时间片跟踪接口,接口本身都是同步接口,不是异步接口,都用在同一线程中,不支持跨线程打点和分析

  • 同步时间片跟踪接口用于顺序执行的打点场景,目前ArkTS/JS暂未提供相关接口。
  • 异步时间片跟踪接口用于在操作调用前开始打点,在操作完成后进行结束打点。异步跟踪的开始和结束由于不是顺序发生的,解析trace时需要通过唯一的taskid进行识别,taskid作为异步跟踪trace接口的参数传入。
  • 整数跟踪接口用于跟踪数值变量

HiTrace

HiTrace为开发者提供业务流程调用链跟踪的维测接口。该接口所提供的功能,可以帮助开发者迅速获取指定业务流程调用链的运行日志、定位跨设备/跨进程/跨线程的故障问题

查看HITraceMeter

  1. 执行hilog -b D,修改日志打印级别。
  2. 执行hilog |grep hitrace即可查看hitrace相关日志

HiTraceChain

HiTraceChain是基于云计算分布式跟踪调用链思想,在端侧业务流程(涉及跨线程、跨进程、跨设备)中的一种轻量级实现

chainId:分布式跟踪标识,属于HiTraceId的一部分,用于标识当前跟踪的业务流程

跨进程/跨设备分布式跟踪依赖于HarmonyOS各模块相应业务接口的napi实现是否存在进程及设备之间的通信调用

错误管理

错误管理开发

应用的代码存在规范问题或错误时,会在运行中产生异常和错误,如应用未捕获异常、应用生命周期超时等

使用errormanager接口监听异常和错误后,应用不会退出,建议在回调函数执行完后,增加同步退出操作,如果只是为了获取错误日志,建议使用 hiappevent

应用错误管理接口由 errorManager 模块提供,开发者通过 import 引入

当采用callback作为异步回调时,可以在callback中进行下一步处理。当采用Promise对象返回时,可以在Promise对象中类似地处理接口返回值

应用恢复开发

应用在运行中不可避免会产生一些非预期的行为,如运行时抛出未处理的异常和错误,违反框架的调用/运行约束等

应用故障恢复接口由appRecovery模块提供,开发者可以通过import引入

故障分析

JS Crash多为应用问题,开发者可通过崩溃文件中的 Error message 和 StackTrace 来定位问题

问题定位思路

  • 通过DevEco Studio获取日志
  • 通过 HiAppEvent 接口订阅

http://www.ppmy.cn/ops/142139.html

相关文章

分类算法评估标准综述

目录 ​编辑 混淆矩阵(Confusion Matrix) 准确率(Accuracy) 精确率(Precision) 召回率(Recall) F1分数(F1 Score) ROC曲线和AUC值 P-R曲线 马修斯相…

【Linux课程学习】:第20弹---信号入门专题(基础部分)

🎁个人主页:我们的五年 🔍系列专栏:Linux课程学习 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 ​ Linux学习笔记: https://blog.csdn.n…

外卖开发(九)——Excel数据报表ApachePOI

外卖开发(九)——Excel数据报表 一、ApachePOI二、入门案例三、导出运营数据报表1、ReportController2、ReportService 一、ApachePOI Apache POl是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是,我们可以使用POI在Java程…

LINUX——shell编程

Shell 简介 Shell 是一个 C 语言编写的脚本语言,它是用户与 Linux 的桥梁,用户输入命令交给 Shell 处理, Shell 将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户。 下面是流程示意图&#xff…

【4】数据分析基础(pandas中的series 1)

学习目标2 pandas模块的学习。 pandas是一个基于NumPy的模块,它的功能在于数据的筛选清洗和处理,与NumPy模块相比,pandas模块更擅长处理二维数据。 pandas模块主要有Series和DataFrame两种数据结构。 接下来,我们先学习Series…

Kubernetes 的 Web UI 仪表板部署以及使用

前言 Kubernetes 仪表盘为集群提供了基于网页的用户界面。人们可以使用该仪表盘在集群上部署应用程序,也可以对集群中已有的应用程序进行故障排查。此外,该仪表盘还能让人深入了解集群中的资源情况。它由 Kubernetes 官方提供,人们能够通过它…

使用DuckDB 加载和清洗数据

DuckDB CLI是允许用户直接从命令行与DuckDB交互的工具。前文你看到了如何使用Python与DuckDB交互。但是,有时你只是想直接使用数据库—例如在创建新表、从不同数据源导入数据以及执行与数据库相关的任务时。在这种情况下,直接使用DuckDB CLI要有效得多。…

AI来了,云原生更稳了

不了解AI的时候,往往会将其视为洪水猛兽,因为AI确实具有颠覆一切的巨大能量;但是当你慢慢接近它、拥抱它甚至尝试驾驭它,你会发现AI如同其他许多新技术一样,都需要扎根的土壤、生长的养分和成熟过程中适宜的环境等。 “…