0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙開(kāi)發(fā)系統(tǒng)基礎(chǔ)能力:ohos.hiTraceChain 分布式跟蹤

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-25 09:49 ? 次閱讀

分布式跟蹤

本模塊提供了端側(cè)業(yè)務(wù)流程調(diào)用鏈跟蹤的打點(diǎn)能力,包括業(yè)務(wù)流程跟蹤的啟動(dòng)、結(jié)束、信息埋點(diǎn)等能力。

icon-note.gif說(shuō)明: 本模塊首批接口從API version 8開(kāi)始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。 開(kāi)發(fā)前請(qǐng)熟悉鴻蒙開(kāi)發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

導(dǎo)入模塊

import hiTraceChain from '@ohos.hiTraceChain';

HiTraceFlag

跟蹤標(biāo)志組合類(lèi)型枚舉。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.HiviewDFX.HiTrace。

名稱(chēng)默認(rèn)值說(shuō)明
DEFAULT0缺省標(biāo)志。
INCLUDE_ASYNC1異步調(diào)用標(biāo)志。啟動(dòng)跟蹤時(shí),缺省只跟蹤同步調(diào)用。設(shè)置該標(biāo)志,同時(shí)跟蹤同步、異步調(diào)用。
DONOT_CREATE_SPAN1 << 1無(wú)分支標(biāo)志。啟動(dòng)跟蹤時(shí),在同步、異步調(diào)用時(shí)缺省自動(dòng)創(chuàng)建分支信息。設(shè)置該標(biāo)志,指示不創(chuàng)建分支。
TP_INFO1 << 2埋點(diǎn)標(biāo)志。啟動(dòng)跟蹤式時(shí),缺省不進(jìn)行埋點(diǎn)。調(diào)試場(chǎng)景下設(shè)置該標(biāo)志,在同步、異步調(diào)用的收發(fā)側(cè)自動(dòng)埋點(diǎn),輸出埋點(diǎn)信息和時(shí)間戳。收發(fā)埋點(diǎn)按照client、server分為[client send(CS)、server receive(SR)、server send(SS)、client receive(CR)]四類(lèi)信息。一次同步調(diào)用輸出CS/SR/SS/CR,一次異步調(diào)用輸出CS/SR/SS三個(gè)埋點(diǎn)信息。
NO_BE_INFO1 << 3無(wú)起始結(jié)束標(biāo)志。啟動(dòng)跟蹤時(shí),缺省打印啟動(dòng)及結(jié)束跟蹤信息。設(shè)置該標(biāo)志,指示不打印啟動(dòng)及結(jié)束跟蹤信息。
DISABLE_LOG1 << 4日志關(guān)聯(lián)標(biāo)志。設(shè)置該標(biāo)志,指示隱藏日志中的跟蹤信息。
FAILURE_TRIGGER1 << 5故障觸發(fā)標(biāo)志。預(yù)置標(biāo)志,暫時(shí)沒(méi)有作用。
D2D_TP_INFO1 << 6設(shè)備間埋點(diǎn)標(biāo)志。TP_INFO的一個(gè)子集,設(shè)置該標(biāo)志,只進(jìn)行設(shè)備間的調(diào)用埋點(diǎn)。

HiTraceTracepointType

跟蹤埋點(diǎn)類(lèi)型枚舉。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.HiviewDFX.HiTrace。

名稱(chēng)默認(rèn)值說(shuō)明
CS0客戶(hù)端發(fā)送類(lèi)型,標(biāo)識(shí)client側(cè)的發(fā)送埋點(diǎn)。
CR1客戶(hù)端接收類(lèi)型,標(biāo)識(shí)client側(cè)的接收埋點(diǎn)。
SS2服務(wù)端發(fā)送類(lèi)型,標(biāo)識(shí)server側(cè)的發(fā)送埋點(diǎn)。
SR3服務(wù)端接收類(lèi)型,標(biāo)識(shí)server側(cè)的接收埋點(diǎn)。
GENERAL4一般類(lèi)型,標(biāo)識(shí)CS、CR、SS、SR四種場(chǎng)景之外的埋點(diǎn)。

HiTraceCommunicationMode

跟蹤通信類(lèi)型枚舉。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.HiviewDFX.HiTrace。

名稱(chēng)默認(rèn)值說(shuō)明
DEFAULT0缺省通信類(lèi)型
THREAD1線程間通信類(lèi)型
PROCESS2進(jìn)程間通信類(lèi)型
DEVICE3設(shè)備間通信類(lèi)型

HiTraceId

此接口為HiTraceId對(duì)象接口。

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.HiviewDFX.HiTrace。

參數(shù)類(lèi)型必填說(shuō)明
chainIdbigint跟蹤鏈標(biāo)識(shí)。
spanIdnumber分支標(biāo)識(shí)。
parentSpanIdnumber父分支標(biāo)識(shí)。
flagsnumber跟蹤標(biāo)志組合。

hiTraceChain.begin

begin(name: string, flags: number = HiTraceFlag.DEFAULT): HiTraceId

開(kāi)始跟蹤,同步接口。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiTrace

參數(shù):

參數(shù)名類(lèi)型必填說(shuō)明
namestring跟蹤業(yè)務(wù)名。
flagsnumber跟蹤標(biāo)志組合,具體可參考[HiTraceFlag]

返回值:

類(lèi)型說(shuō)明
[HiTraceId]HiTraceId實(shí)例。

示例:

let asyncTraceId = hiTraceChain.begin("business", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC | hiTraceChain.HiTraceFlag.DONOT_CREATE_SPAN);

hiTraceChain.end

end(id: HiTraceId): void

結(jié)束跟蹤,同步接口。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiTrace

參數(shù):

參數(shù)名類(lèi)型必填說(shuō)明
id[HiTraceId]HiTraceId實(shí)例。

示例:

let asyncTraceId = hiTraceChain.begin("business");
// 若干業(yè)務(wù)邏輯完成后,結(jié)束跟蹤。
hiTraceChain.end(asyncTraceId);

hiTraceChain.getId

getId(): HiTraceId

獲取跟蹤標(biāo)識(shí),同步接口。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiTrace

返回值:

類(lèi)型說(shuō)明
[HiTraceId]HiTraceId實(shí)例。

示例:

let traceId = hiTraceChain.begin("business");
// 若干業(yè)務(wù)邏輯完成后,獲取當(dāng)前HiTraceId。
let curTraceId = hiTraceChain.getId();

hiTraceChain.setId

setId(id: HiTraceId): void

設(shè)置跟蹤標(biāo)識(shí),同步接口。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiTrace

參數(shù):

參數(shù)名類(lèi)型必填說(shuō)明
id[HiTraceId]HiTraceId實(shí)例。

示例:

let asyncTraceId;
let traceId = hiTraceChain.begin("business");
// 若干業(yè)務(wù)邏輯完成后,設(shè)置當(dāng)前HiTraceId。
hiTraceChain.setId(asyncTraceId);

hiTraceChain.clearId

clearId(): void

清除跟蹤標(biāo)識(shí),同步接口。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiTrace

示例:

let traceId = hiTraceChain.begin("business");
// 若干業(yè)務(wù)邏輯完成后,清除當(dāng)前HiTraceId。
hiTraceChain.clearId();

hiTraceChain.createSpan

createSpan(): HiTraceId

創(chuàng)建跟蹤分支,同步接口。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiTrace

返回值:

類(lèi)型說(shuō)明
[HiTraceId]HiTraceId實(shí)例。

示例:

let traceId = hiTraceChain.begin("business");
// 若干業(yè)務(wù)邏輯完成后,創(chuàng)建跟蹤分支。
let spanTraceId = hiTraceChain.createSpan();

hiTraceChain.tracepoint

tracepoint(mode: HiTraceCommunicationMode, type: HiTraceTracepointType, id: HiTraceId, msg?: string): void

信息埋點(diǎn),同步接口。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiTrace

參數(shù):

參數(shù)名類(lèi)型必填說(shuō)明
mode[HiTraceCommunicationMode]信息埋點(diǎn)需要指定的跟蹤通信模式。
type[HiTraceTracepointType]信息埋點(diǎn)需要指定的跟蹤埋點(diǎn)類(lèi)型。
id[HiTraceId]實(shí)施信息埋點(diǎn)操作的HiTraceId實(shí)例。
msgstring信息埋點(diǎn)操作傳入的trace說(shuō)明信息。

示例:

let asyncTraceId = hiTraceChain.begin("business", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC | hiTraceChain.HiTraceFlag.DONOT_CREATE_SPAN);
// 若干業(yè)務(wù)邏輯完成后,觸發(fā)信息埋點(diǎn)操作。
hiTraceChain.tracepoint(hiTraceChain.HiTraceCommunicationMode.THREAD, hiTraceChain.HiTraceTracepointType.SS, asyncTraceId, "Just a example");

hiTraceChain.isValid

isValid(id: HiTraceId): boolean

判斷HiTraceId對(duì)象是否有效,同步接口。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiTrace

參數(shù):

參數(shù)名類(lèi)型必填說(shuō)明
id[HiTraceId]需要判斷是否有效的HiTraceId實(shí)例。

返回值:

類(lèi)型說(shuō)明
boolean返回true表示HiTraceId有效,否則無(wú)效。

示例:

let traceId = hiTraceChain.begin("business");
let traceIdIsvalid = hiTraceChain.isValid(traceId);

hiTraceChain.isFlagEnabled

isFlagEnabled(id: HiTraceId, flag: HiTraceFlag): boolean

判斷HiTraceId對(duì)象中指定的跟蹤標(biāo)志是否已置位,同步接口。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiTrace

參數(shù):

參數(shù)名類(lèi)型必填說(shuō)明
id[HiTraceId]需要判斷指定跟蹤標(biāo)志是否置位的HiTraceId實(shí)例。
flag[HiTraceFlag]指定的跟蹤標(biāo)志。

返回值:

類(lèi)型說(shuō)明
boolean返回true標(biāo)識(shí)HiTraceId已置位指定的flag,否則沒(méi)有置位。

示例:

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對(duì)象中指定的跟蹤標(biāo)志,同步接口。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiTrace

參數(shù):

搜狗高速瀏覽器截圖20240326151344.png

參數(shù)名類(lèi)型必填說(shuō)明HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
id[HiTraceId](需要置位指定跟蹤標(biāo)志的HiTraceId實(shí)例。
flag[HiTraceFlag]指定的跟蹤標(biāo)志。

示例:

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);

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開(kāi)發(fā)系統(tǒng)

    關(guān)注

    0

    文章

    38

    瀏覽量

    9690
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2382

    瀏覽量

    42941
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    分布式軟件系統(tǒng)

    三個(gè)特點(diǎn):分布性、通信性和穩(wěn)健性。 分布式文件系統(tǒng)具有執(zhí)行遠(yuǎn)程文件存取的能力,并以透明方式對(duì)分布在網(wǎng)絡(luò)上的文件進(jìn)行管理和存取。
    發(fā)表于 07-22 14:53

    HarmonyOS應(yīng)用開(kāi)發(fā)-分布式設(shè)計(jì)

    設(shè)計(jì)理念HarmonyOS 是面向未來(lái)全場(chǎng)景智慧生活方式的分布式操作系統(tǒng)。對(duì)消費(fèi)者而言,HarmonyOS 將生活場(chǎng)景中的各類(lèi)終端進(jìn)行能力整合,形成“One Super Device”,以實(shí)現(xiàn)
    發(fā)表于 09-22 17:11

    鴻蒙分布式任務(wù)調(diào)度

    鴻蒙分布式任務(wù)調(diào)度,實(shí)現(xiàn)跨設(shè)備FA拉起
    發(fā)表于 06-12 17:28

    【木棉花】:簡(jiǎn)單的分布式任務(wù)調(diào)度

    Ability:Service模板:用于提供后臺(tái)運(yùn)行任務(wù)的能力。Data模板:用于對(duì)外部提供統(tǒng)一的數(shù)據(jù)訪問(wèn)抽象。根據(jù) Ability 模板及意圖的不同,分布式任務(wù)調(diào)度向開(kāi)發(fā)者提供以下六種能力
    發(fā)表于 09-03 14:34

    HarmonyOS教程一基于分布式調(diào)度的能力,實(shí)現(xiàn)遠(yuǎn)程FA的啟動(dòng)

    1. 介紹開(kāi)發(fā)者在應(yīng)用中集成分布式調(diào)度能力,通過(guò)調(diào)用指定能力分布式接口,實(shí)現(xiàn)跨設(shè)備能力調(diào)度。根
    發(fā)表于 09-10 10:07

    HDC技術(shù)分論壇:分布式調(diào)試、調(diào)優(yōu)能力解決方案

    依賴(lài)于OS接口,計(jì)劃將在HarmonyOS 3.0 Beta版本系統(tǒng)發(fā)布后才能支持。一、分布式調(diào)試能力DevEco Studio將為開(kāi)發(fā)者提供分布式
    發(fā)表于 10-28 16:20

    HDC2021技術(shù)分論壇:分布式調(diào)試、調(diào)優(yōu)能力解決方案

    的DevEco Studio分布式調(diào)試和調(diào)優(yōu)的部分能力依賴(lài)于OS接口,計(jì)劃將在HarmonyOS 3.0 Beta版本系統(tǒng)發(fā)布后才能支持。一、分布式調(diào)試
    發(fā)表于 11-22 17:17

    HarmonyOS分布式文件系統(tǒng)開(kāi)發(fā)指導(dǎo)

    分布式文件系統(tǒng)概述 分布式文件系統(tǒng)(hmdfs,HarmonyOS Distributed File System)提供跨設(shè)備的文件訪問(wèn)能力
    發(fā)表于 11-14 17:14

    鴻蒙原生應(yīng)用開(kāi)發(fā)——分布式數(shù)據(jù)對(duì)象

    分布式數(shù)據(jù)對(duì)象退出 sessionId 后,該對(duì)象將檢測(cè)不到其他對(duì)象的變更。 02、分布式數(shù)據(jù)對(duì)象能力 1、分布式數(shù)據(jù)對(duì)象創(chuàng)建 2、分布式數(shù)
    發(fā)表于 12-08 10:01

    華為鴻蒙操作系統(tǒng)分布式能力實(shí)現(xiàn)跨設(shè)備使用

    華為鴻蒙操作系統(tǒng)可借助分布式能力,在鴻蒙生態(tài)眾可打破應(yīng)用的約束,可輕松實(shí)現(xiàn)跨設(shè)備間的運(yùn)行使用。
    的頭像 發(fā)表于 06-02 20:42 ?3082次閱讀

    鴻蒙分布式怎么理解

    HarmonyOS系統(tǒng)的使命和目標(biāo)是將不同的設(shè)備串聯(lián),成為設(shè)備的“萬(wàn)能語(yǔ)言”,讓一個(gè)系統(tǒng)連接起所有上網(wǎng)的智能設(shè)備,實(shí)現(xiàn)萬(wàn)物互聯(lián)的終極目標(biāo)。其核心能力之一,【分布式軟總線】讓多設(shè)備融合為
    的頭像 發(fā)表于 07-08 14:47 ?4552次閱讀

    鴻蒙系統(tǒng)底層架構(gòu) 鴻蒙系統(tǒng)分布式架構(gòu)

    鴻蒙系統(tǒng)是一款面向未來(lái)、面向全場(chǎng)景的分布式操作系統(tǒng),鴻蒙系統(tǒng)開(kāi)創(chuàng)性地提出了基于同一套
    的頭像 發(fā)表于 07-08 14:35 ?1.3w次閱讀

    分享一個(gè)有趣的鴻蒙分布式小游戲

    ?? 今天給大家分享一個(gè)有趣的鴻蒙分布式小游戲:你畫(huà)我猜。 ??? ? 開(kāi)發(fā)心得(如有錯(cuò)誤還請(qǐng)大佬及時(shí)指正): ? 分布式流轉(zhuǎn): 一個(gè) APP 應(yīng)用在設(shè)備之間互相拉起遷移,只在一個(gè)終端
    的頭像 發(fā)表于 11-01 14:29 ?2581次閱讀
    分享一個(gè)有趣的<b class='flag-5'>鴻蒙</b><b class='flag-5'>分布式</b>小游戲

    鴻蒙OS 分布式任務(wù)調(diào)度

    鴻蒙OS 分布式任務(wù)調(diào)度概述 在 HarmonyO S中,分布式任務(wù)調(diào)度平臺(tái)對(duì)搭載 HarmonyOS 的多設(shè)備構(gòu)筑的“超級(jí)虛擬終端”提供統(tǒng)一的組件管理能力,為應(yīng)用定義統(tǒng)一的
    的頭像 發(fā)表于 01-29 16:50 ?535次閱讀

    鴻蒙開(kāi)發(fā)接口數(shù)據(jù)管理:【@ohos.data.distributedData (分布式數(shù)據(jù)管理)】

    分布式數(shù)據(jù)管理為應(yīng)用程序提供不同設(shè)備間數(shù)據(jù)庫(kù)的分布式協(xié)同能力。通過(guò)調(diào)用分布式數(shù)據(jù)各個(gè)接口,應(yīng)用程序可將數(shù)據(jù)保存到分布式數(shù)據(jù)庫(kù)中,并可對(duì)
    的頭像 發(fā)表于 06-07 09:30 ?1038次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開(kāi)發(fā)</b>接口數(shù)據(jù)管理:【@<b class='flag-5'>ohos</b>.data.distributedData (<b class='flag-5'>分布式</b>數(shù)據(jù)管理)】