mirror of
https://gitee.com/openharmony/interface_sdk-js
synced 2024-11-27 09:22:53 +00:00
0fca480206
Signed-off-by: negegne <zhengshunxin@huawei.com>
342 lines
8.0 KiB
TypeScript
342 lines
8.0 KiB
TypeScript
/*
|
|
* Copyright (c) 2021 Huawei Device Co., Ltd.
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
/**
|
|
* @file
|
|
* @kit PerformanceAnalysisKit
|
|
*/
|
|
|
|
/**
|
|
* Provides APIs to implement call chain tracing throughout a service process.
|
|
* With HiTrace, you can quickly obtain the run log for the call chain of a
|
|
* specified service process and locate faults in cross-device, cross-process,
|
|
* or cross-thread communications.
|
|
*
|
|
* @namespace hiTraceChain
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
declare namespace hiTraceChain {
|
|
/**
|
|
* Enumerate trace flag
|
|
*
|
|
* @enum { number }
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
enum HiTraceFlag {
|
|
/**
|
|
* Default value
|
|
*
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
DEFAULT = 0,
|
|
|
|
/**
|
|
* Trace sync and async call. default: trace sync call only.
|
|
*
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
INCLUDE_ASYNC = 1,
|
|
|
|
/**
|
|
* Do not create child span. default: create child span.
|
|
*
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
DONOT_CREATE_SPAN = 1 << 1,
|
|
|
|
/**
|
|
* Output tracepoint info in span. default: do not output tracepoint info.
|
|
*
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
TP_INFO = 1 << 2,
|
|
|
|
/**
|
|
* Do not output begin and end info. default: output begin and end info.
|
|
*
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
NO_BE_INFO = 1 << 3,
|
|
|
|
/**
|
|
* Do not add id to log. default: add id to log.
|
|
*
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
DISABLE_LOG = 1 << 4,
|
|
|
|
/**
|
|
* The trace is triggered by fault.
|
|
*
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
FAILURE_TRIGGER = 1 << 5,
|
|
|
|
/**
|
|
* Output device-to-device tracepoint info in span only. default: do not output device-to-device tracepoint info.
|
|
*
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
D2D_TP_INFO = 1 << 6
|
|
}
|
|
|
|
/**
|
|
* Enumerate trace point type
|
|
*
|
|
* @enum { number }
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
enum HiTraceTracepointType {
|
|
/**
|
|
* Client send
|
|
*
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
CS = 0,
|
|
|
|
/**
|
|
* Client receive
|
|
*
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
CR = 1,
|
|
|
|
/**
|
|
* Server send
|
|
*
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
SS = 2,
|
|
|
|
/**
|
|
* Server receive
|
|
*
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
SR = 3,
|
|
|
|
/**
|
|
* General info
|
|
*
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
GENERAL = 4
|
|
}
|
|
|
|
/**
|
|
* Enumerate trace communication mode
|
|
*
|
|
* @enum { number }
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
enum HiTraceCommunicationMode {
|
|
/**
|
|
* Unspecified
|
|
*
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
DEFAULT = 0,
|
|
|
|
/**
|
|
* Thread-to-thread
|
|
*
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
THREAD = 1,
|
|
|
|
/**
|
|
* Process-to-process
|
|
*
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
PROCESS = 2,
|
|
|
|
/**
|
|
* Device-to-device
|
|
*
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
DEVICE = 3
|
|
}
|
|
|
|
/**
|
|
* Trace id, for tracing process.
|
|
*
|
|
* @interface HiTraceId
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
interface HiTraceId {
|
|
/**
|
|
* Chain id.
|
|
*
|
|
* @type { bigint }
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
chainId: bigint;
|
|
|
|
/**
|
|
* Span id.
|
|
*
|
|
* @type { ?number }
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
spanId?: number;
|
|
|
|
/**
|
|
* Parent span id.
|
|
*
|
|
* @type { ?number }
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
parentSpanId?: number;
|
|
|
|
/**
|
|
* Trace flag.
|
|
*
|
|
* @type { ?number }
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
flags?: number;
|
|
}
|
|
|
|
/**
|
|
* Start tracing a process impl.
|
|
*
|
|
* @param { string } name Process name.
|
|
* @param { number } flags Trace function flag.
|
|
* @returns { HiTraceId } Valid if first call, otherwise invalid.
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
function begin(name: string, flags?: number): HiTraceId;
|
|
|
|
/**
|
|
* Stop process tracing and clear trace id of current thread if the given trace
|
|
* id is valid, otherwise do nothing.
|
|
*
|
|
* @param { HiTraceId } id The trace id that need to stop.
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
function end(id: HiTraceId): void;
|
|
|
|
/**
|
|
* Get trace id of current thread, and return a invalid trace id if no
|
|
* trace id belong to current thread
|
|
*
|
|
* @returns { HiTraceId } Valid if current thread have a trace id, otherwise invalid.
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
function getId(): HiTraceId;
|
|
|
|
/**
|
|
* Set id as trace id of current thread. Do nothing if id is invalid.
|
|
*
|
|
* @param { HiTraceId } id Set id as trace id of current thread.
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
function setId(id: HiTraceId): void;
|
|
|
|
/**
|
|
* Clear trace id of current thread and set it invalid.
|
|
*
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
function clearId(): void;
|
|
|
|
/**
|
|
* Create a new span id according to the trace id of current thread.
|
|
*
|
|
* @returns { HiTraceId } A valid span trace id. Otherwise trace id of current thread if do not allow create span.
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
function createSpan(): HiTraceId;
|
|
|
|
/**
|
|
* Print hitrace info, include trace id info.
|
|
*
|
|
* @param { HiTraceCommunicationMode } mode Trace communication mode.
|
|
* @param { HiTraceTracepointType } type Trace info type.
|
|
* @param { HiTraceId } id Trace id that need to print.
|
|
* @param { string } msg Customized info that need to print.
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
function tracepoint(mode: HiTraceCommunicationMode, type: HiTraceTracepointType, id: HiTraceId, msg?: string): void;
|
|
|
|
/**
|
|
* Judge whether the trace id is valid or not.
|
|
*
|
|
* @param { HiTraceId } id Trace id that need to judge.
|
|
* @returns { boolean } True for a valid trace id, otherwise false.
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
function isValid(id: HiTraceId): boolean;
|
|
|
|
/**
|
|
* Judge whether the trace id has enabled a trace flag or not.
|
|
*
|
|
* @param { HiTraceId } id Trace id that need to judge.
|
|
* @param { HiTraceFlag } flag Trace flag that need to judge.
|
|
* @returns { boolean } true if the trace id has enabled the flag.
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
function isFlagEnabled(id: HiTraceId, flag: HiTraceFlag): boolean;
|
|
|
|
/**
|
|
* Enable the designative trace flag for the trace id.
|
|
*
|
|
* @param { HiTraceId } id Trace id that need to enable a flag.
|
|
* @param { HiTraceFlag } flag the designative trace flag that need to be enabled in the trace id.
|
|
* @syscap SystemCapability.HiviewDFX.HiTrace
|
|
* @since 8
|
|
*/
|
|
function enableFlag(id: HiTraceId, flag: HiTraceFlag): void;
|
|
}
|
|
|
|
export default hiTraceChain;
|