简介
在复杂的分布式系统中,追踪跨设备、跨进程以及跨线程的业务流程是一项挑战。为了简化这一过程,Harmony推出了hiTraceChain,一款专为端侧业务设计的轻量级分布式跟踪解决方案。hiTraceChain在业务流程中生成并传递唯一的跟踪标识,确保所有相关的信息,如应用事件、系统时间、日志等,都能被统一标记,从而在调试和问题定位时,能够迅速关联起端到端的业务信息。
通过提供一系列易于使用的API,hiTraceChain帮助开发者轻松获取指定业务流程的调用链日志,有效定位跨域故障,提升维护效率。
基本概念
在hiTraceChain中,一个核心的概念是chainId
,它是HiTraceId
的一部分,用于唯一标识整个跟踪的业务流程。
接口说明
hiTraceChain提供了两个关键的接口用于分布式跟踪:
begin(name: string, flags: number = HiTraceFlag.DEFAULT)
: 开始一个新的跟踪会话,返回一个HiTraceId
实例。end(id: HiTraceId)
: 结束一个跟踪会话,接受HiTraceId
作为参数。
开发步骤
要在应用中集成hiTraceChain,你需要在业务流程的关键点调用上述API。下面是一个使用hiTraceChain的示例代码:
// 引入hiTraceChain模块
import hiTraceChain from '@ohos.hiTraceChain';
// 定义页面组件
export default {
data: {
title: ""
},
onInit() {
this.title = this.$t('strings.world');
// 开启分布式跟踪
const asyncTraceId = hiTraceChain.begin("business", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC | hiTraceChain.HiTraceFlag.DONOT_CREATE_SPAN);
// 业务流程开始
console.log(`business start`);
// 埋点操作
hiTraceChain.tracepoint(hiTraceChain.HiTraceCommunicationMode.THREAD, hiTraceChain.HiTraceTracepointType.SS, asyncTraceId, "Just a example");
// 业务流程执行中
console.log(`business running`);
// 业务流程结束
console.log(`business end`);
// 停止跟踪
hiTraceChain.end(asyncTraceId);
}
};
在上述代码中,我们首先导入了hiTraceChain模块,并在onInit
生命周期钩子中调用了begin
方法来启动跟踪。在业务流程的不同阶段,我们使用tracepoint
来记录关键事件,并最终调用end
方法来结束跟踪。
运行项目,你将能够在日志中看到带有跟踪标识的信息,这些信息对于分析业务流程的执行情况至关重要。
总结
hiTraceChain为开发者提供了一种简便的方式,以跟踪和诊断跨域业务流程中的问题。通过集成这一工具,你可以更加高效地定位故障,优化应用性能,确保用户获得无缝的体验。
本文档包含了完整的代码示例和必要的步骤,以帮助你快速上手并利用hiTraceChain的强大功能。如果你在使用过程中遇到任何问题,欢迎查阅官方文档或联系技术支持获取进一步的帮助。