鸿蒙开发系统基础能力:【@ohos.hiTraceChain (分布式跟踪)】
分布式跟踪
本模块提供了端侧业务流程调用链跟踪的打点能力,包括业务流程跟踪的启动、结束、信息埋点等能力。
说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
导入模块
import hiTraceChain from '@ohos.hiTraceChain';
HiTraceFlag
跟踪标志组合类型枚举。
系统能力: 以下各项对应的系统能力均为SystemCapability.HiviewDFX.HiTrace。
名称 | 默认值 | 说明 |
---|---|---|
DEFAULT | 0 | 缺省标志。 |
INCLUDE_ASYNC | 1 | 异步调用标志。启动跟踪时,缺省只跟踪同步调用。设置该标志,同时跟踪同步、异步调用。 |
DONOT_CREATE_SPAN | 1 << 1 | 无分支标志。启动跟踪时,在同步、异步调用时缺省自动创建分支信息。设置该标志,指示不创建分支。 |
TP_INFO | 1 << 2 | 埋点标志。启动跟踪式时,缺省不进行埋点。调试场景下设置该标志,在同步、异步调用的收发侧自动埋点,输出埋点信息和时间戳。收发埋点按照client、server分为[client send(CS)、server receive(SR)、server send(SS)、client receive(CR)]四类信息。一次同步调用输出CS/SR/SS/CR,一次异步调用输出CS/SR/SS三个埋点信息。 |
NO_BE_INFO | 1 << 3 | 无起始结束标志。启动跟踪时,缺省打印启动及结束跟踪信息。设置该标志,指示不打印启动及结束跟踪信息。 |
DISABLE_LOG | 1 << 4 | 日志关联标志。设置该标志,指示隐藏日志中的跟踪信息。 |
FAILURE_TRIGGER | 1 << 5 | 故障触发标志。预置标志,暂时没有作用。 |
D2D_TP_INFO | 1 << 6 | 设备间埋点标志。TP_INFO的一个子集,设置该标志,只进行设备间的调用埋点。 |
HiTraceTracepointType
跟踪埋点类型枚举。
系统能力: 以下各项对应的系统能力均为SystemCapability.HiviewDFX.HiTrace。
名称 | 默认值 | 说明 |
---|---|---|
CS | 0 | 客户端发送类型,标识client侧的发送埋点。 |
CR | 1 | 客户端接收类型,标识client侧的接收埋点。 |
SS | 2 | 服务端发送类型,标识server侧的发送埋点。 |
SR | 3 | 服务端接收类型,标识server侧的接收埋点。 |
GENERAL | 4 | 一般类型,标识CS、CR、SS、SR四种场景之外的埋点。 |
HiTraceCommunicationMode
跟踪通信类型枚举。
系统能力: 以下各项对应的系统能力均为SystemCapability.HiviewDFX.HiTrace。
名称 | 默认值 | 说明 |
---|---|---|
DEFAULT | 0 | 缺省通信类型 |
THREAD | 1 | 线程间通信类型 |
PROCESS | 2 | 进程间通信类型 |
DEVICE | 3 | 设备间通信类型 |
HiTraceId
此接口为HiTraceId对象接口。
系统能力: 以下各项对应的系统能力均为SystemCapability.HiviewDFX.HiTrace。
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
chainId | bigint | 是 | 跟踪链标识。 |
spanId | number | 否 | 分支标识。 |
parentSpanId | number | 否 | 父分支标识。 |
flags | number | 否 | 跟踪标志组合。 |
hiTraceChain.begin
begin(name: string, flags: number = HiTraceFlag.DEFAULT): HiTraceId
开始跟踪,同步接口。
系统能力: SystemCapability.HiviewDFX.HiTrace
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 跟踪业务名。 |
flags | number | 是 | 跟踪标志组合,具体可参考[HiTraceFlag] |
返回值:
类型 | 说明 |
---|---|
[HiTraceId] | HiTraceId实例。 |
示例:
let asyncTraceId = hiTraceChain.begin("business", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC | hiTraceChain.HiTraceFlag.DONOT_CREATE_SPAN);
hiTraceChain.end
end(id: HiTraceId): void
结束跟踪,同步接口。
系统能力: SystemCapability.HiviewDFX.HiTrace
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
id | [HiTraceId] | 是 | HiTraceId实例。 |
示例:
let asyncTraceId = hiTraceChain.begin("business");
// 若干业务逻辑完成后,结束跟踪。
hiTraceChain.end(asyncTraceId);
hiTraceChain.getId
getId(): HiTraceId
获取跟踪标识,同步接口。
系统能力: SystemCapability.HiviewDFX.HiTrace
返回值:
类型 | 说明 |
---|---|
[HiTraceId] | HiTraceId实例。 |
示例:
let traceId = hiTraceChain.begin("business");
// 若干业务逻辑完成后,获取当前HiTraceId。
let curTraceId = hiTraceChain.getId();
hiTraceChain.setId
setId(id: HiTraceId): void
设置跟踪标识,同步接口。
系统能力: SystemCapability.HiviewDFX.HiTrace
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
id | [HiTraceId] | 是 | HiTraceId实例。 |
示例:
let asyncTraceId;
let traceId = hiTraceChain.begin("business");
// 若干业务逻辑完成后,设置当前HiTraceId。
hiTraceChain.setId(asyncTraceId);
hiTraceChain.clearId
clearId(): void
清除跟踪标识,同步接口。
系统能力: SystemCapability.HiviewDFX.HiTrace
示例:
let traceId = hiTraceChain.begin("business");
// 若干业务逻辑完成后,清除当前HiTraceId。
hiTraceChain.clearId();
hiTraceChain.createSpan
createSpan(): HiTraceId
创建跟踪分支,同步接口。
系统能力: SystemCapability.HiviewDFX.HiTrace
返回值:
类型 | 说明 |
---|---|
[HiTraceId] | HiTraceId实例。 |
示例:
let traceId = hiTraceChain.begin("business");
// 若干业务逻辑完成后,创建跟踪分支。
let spanTraceId = hiTraceChain.createSpan();
hiTraceChain.tracepoint
tracepoint(mode: HiTraceCommunicationMode, type: HiTraceTracepointType, id: HiTraceId, msg?: string): void
信息埋点,同步接口。
系统能力: SystemCapability.HiviewDFX.HiTrace
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mode | [HiTraceCommunicationMode] | 是 | 信息埋点需要指定的跟踪通信模式。 |
type | [HiTraceTracepointType] | 是 | 信息埋点需要指定的跟踪埋点类型。 |
id | [HiTraceId] | 是 | 实施信息埋点操作的HiTraceId实例。 |
msg | string | 否 | 信息埋点操作传入的trace说明信息。 |
示例:
let asyncTraceId = hiTraceChain.begin("business", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC | hiTraceChain.HiTraceFlag.DONOT_CREATE_SPAN);
// 若干业务逻辑完成后,触发信息埋点操作。
hiTraceChain.tracepoint(hiTraceChain.HiTraceCommunicationMode.THREAD, hiTraceChain.HiTraceTracepointType.SS, asyncTraceId, "Just a example");
hiTraceChain.isValid
isValid(id: HiTraceId): boolean
判断HiTraceId对象是否有效,同步接口。
系统能力: SystemCapability.HiviewDFX.HiTrace
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
id | [HiTraceId] | 是 | 需要判断是否有效的HiTraceId实例。 |
返回值:
类型 | 说明 |
---|---|
boolean | 返回true表示HiTraceId有效,否则无效。 |
示例:
let traceId = hiTraceChain.begin("business");
let traceIdIsvalid = hiTraceChain.isValid(traceId);
hiTraceChain.isFlagEnabled
isFlagEnabled(id: HiTraceId, flag: HiTraceFlag): boolean
判断HiTraceId对象中指定的跟踪标志是否已置位,同步接口。
系统能力: SystemCapability.HiviewDFX.HiTrace
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
id | [HiTraceId] | 是 | 需要判断指定跟踪标志是否置位的HiTraceId实例。 |
flag | [HiTraceFlag] | 是 | 指定的跟踪标志。 |
返回值:
类型 | 说明 |
---|---|
boolean | 返回true标识HiTraceId已置位指定的flag,否则没有置位。 |
示例:
let asyncTraceId = hiTraceChain.begin("business", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC);
// enabledDoNotCreateSpanFlag为true
let enabledDoNotCreateSpanFlag = hiTraceChain.isFlagEnabled(asyncTraceId, hiTraceChain.HiTraceFlag.INCLUDE_ASYNC);
hiTraceChain.enableFlag
enableFlag(id: HiTraceId, flag: HiTraceFlag): void
置位HiTraceId对象中指定的跟踪标志,同步接口。
系统能力: SystemCapability.HiviewDFX.HiTrace
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
id | [HiTraceId]( | 是 | 需要置位指定跟踪标志的HiTraceId实例。 |
flag | [HiTraceFlag] | 是 | 指定的跟踪标志。 |
示例:
let asyncTraceId = hiTraceChain.begin("business", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC);
hiTraceChain.enableFlag(asyncTraceId, hiTraceChain.HiTraceFlag.DONOT_CREATE_SPAN);
// enabledDoNotCreateSpanFlag为true
let enabledDoNotCreateSpanFlag = hiTraceChain.isFlagEnabled(asyncTraceId, hiTraceChain.HiTraceFlag.DONOT_CREATE_SPAN);
相关文章:

鸿蒙开发系统基础能力:【@ohos.hiTraceChain (分布式跟踪)】
分布式跟踪 本模块提供了端侧业务流程调用链跟踪的打点能力,包括业务流程跟踪的启动、结束、信息埋点等能力。 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import hi…...
.git目录解读
在执行 git init 命令时,Git 会在当前目录中创建一个名为 .git 的目录。该目录包含 Git 所需的所有元数据和对象,用于版本控制。以下是 .git 目录结构的示意图,并附有每个目录和文件的作用说明: .git #…...
如何在Java中处理InterruptedException异常?
如何在Java中处理InterruptedException异常? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在Java编程中,多线程是一个常见的应用场景…...
深入解读Netty中的NIO:原理、架构与实现详解
深入解读Netty中的NIO:原理、架构与实现详解 Netty是一个基于Java的异步事件驱动网络应用框架,广泛用于构建高性能、高可扩展性的网络服务器和客户端(学习netty请参考:深入浅出Netty:高性能网络应用框架的原理与实践&…...
Vim和Nano简介
**Vim**: - Vim 是一个文本编辑器,它是 Vi 编辑器的一个改进版本,Vi 编辑器最初由 Bill Joy 在1976年为 BSD Unix 开发。 - Vim 由 Bram Moolenaar 开发,其第一个版本在1991年发布。Vim 的设计理念是“持继改进”,它的…...
mysql的information_schema浅析
information_schema 是 MySQL 中的一个虚拟数据库,它包含了关于 MySQL 服务器的所有元数据。 information_schema 作用 元数据管理:提供关于数据库、表、列、索引、权限等的信息。 性能优化:帮助了解数据库结构和索引使用情况,便…...

力扣爆刷第153天之TOP100五连刷26-30(接雨水、环形链表、最长上升子序列)
力扣爆刷第153天之TOP100五连刷26-30(接雨水、环形链表、最长上升子序列) 文章目录 力扣爆刷第153天之TOP100五连刷26-30(接雨水、环形链表、最长上升子序列)一、300. 最长递增子序列二、415. 字符串相加三、143. 重排链表四、42.…...

【Linux】—Apache Hive 安装部署
文章目录 前言认识Metadata认识Metastoremetastore三种配置方式 一、安装前准备二、下载hive-3.1.2安装包三、下载完成后,通过xftp6上传到Linux服务器上四、解压Hive安装包五、配置Hive六、内嵌模型安装—Hive元数据配置到Derby七、本地模式安装—Hive元数据配置到M…...

组装盒示范程序
代码; #include <gtk-2.0/gtk/gtk.h> #include <glib-2.0/glib.h> #include <stdio.h>int main(int argc, char *argv[]) {gtk_init(&argc, &argv);GtkWidget *window;window gtk_window_new(GTK_WINDOW_TOPLEVEL);gtk_window_set_title(GTK_WINDO…...

推荐一款AI修图工具,支持AI去水印,AI重绘,AI抠图...
不知道大家有没有这样的一个痛点,发现了一张不错的“素材”, 但是有水印,因此不能采用,但找来找去,还是觉得初见的那个素材不错,怎么办? 自己先办法呗。 二师兄发现了一款功能强大的AI修图工具…...
2024广东省职业技能大赛云计算赛项实战——容器化部署Nginx
容器化部署Nginx 前言 编写Dockerfile文件构建nginx镜像,要求基于centos完成Nginx服务的安装和配置,并设置服务开机自启。 编写Dockerfile构建镜像erp-nginx:v1.0,要求使用centos7.9.2009镜像作为基础镜像,完成Nginx服务的安装&…...

压缩pdf文件大小在线,在线免费压缩pdf
在现在办公中,PDF文档已经成为我们日常工作中不可或缺的一部分。然而,随着文档内容的不断丰富,PDF文件的大小也逐渐增大,这不仅占用了大量的存储空间,而且在传输和共享时也显得尤为不便。所以有时候我们需要把pdf压缩小…...
薄冰英语语法学习--名词1
我用来教我自己3岁的小孩的。 有特殊的情况,暂时先不用管,3岁小孩,只用全部按非特殊情况算就ok了,以后长大了,遇到问题了,再微调一下。先解决百分之90的问题。 一般的复数,直接加s 特殊的词尾…...

oracle12c到19c adg搭建(六)切换后12c备库服务器安装19c软件在19c主库升级数据字典后尝试同步
一、安装19c软件 参考文章oracle12c到19c adg搭建(三)oracle19c数据库软件安装 二、原主库尝试通过19c软件启动数据库 2.1复制12c的相关参数文件和密码文件到19c目录 注意:密码文件需要从已切换主库19c传过来 [oracleo12u19p ~]$ cd /u01/app/oracle…...

Scope XY Project的使用
1.Scope XY Project的功能介绍与使用方法 添加监控变量 绘制成一个三角形 XY进行对调操作 修改XY轴的比例修改显示输出 2.Cursor的使用方法 游标线的添加测量 3.Reporting功能的使用方法 到处对应的报表数据 添加对应的报告数据...

Pytorch Geometric(PyG)入门
PyG (PyTorch Geometric) 是建立在 PyTorch 基础上的一个库,用于轻松编写和训练图形神经网络 (GNN),适用于与结构化数据相关的各种应用。官方文档 Install PyG PyG适用于python3.8-3.12 一般使用场景:pip install torch_geometric 或conda …...

大模型KV Cache节省神器MLA学习笔记(包含推理时的矩阵吸收分析)
首先,本文回顾了MHA的计算方式以及KV Cache的原理,然后深入到了DeepSeek V2的MLA的原理介绍,同时对MLA节省的KV Cache比例做了详细的计算解读。接着,带着对原理的理解理清了HuggingFace MLA的全部实现,每行代码都去对应…...

项目中eventbus和rabbitmq配置后,不起作用
如下:配置了baseService层和SupplyDemand层得RabbitMQ和EventBus 但是在执行订阅事件时,发送得消息在base项目中没有执行,后来发现是虚拟机使用得不是一个,即上图中得EventBus下得VirtualHost,修改成一直就可以了...

文库小程序搭建部署:实现资源共享正向反馈
文档库相信大家应该不陌生,日常我们的工作模板、会议模板、求职时的简历模板、教育界的教学模板等来源方式都出自于文档库,随着互联网的发展和工作需求,文档模板开启了新型的知识变现新途径,通过文库小程序,我们不仅能…...

ONLYOFFICE 桌面编辑器8.1---一个高效且强大的办公软件
软件介绍 ONLYOFFICE 桌面编辑器经过不断的更新换代现在迎来了,功能更加强大的ONLYOFFICE 桌面编辑器8.1是一个功能强大的办公套件,专为多平台设计,包括Windows、Linux和macOS。它提供了一套全面的办公工具,包括文档处理、电子表…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...