【SkyWalking】OAP服务的接口整理(链路数据部分)

205 阅读3分钟

基础介绍

SkyWalking的接口并没有使用常见的RESTful架构,它使用了GraphQL协议。

什么是GraphQL?

官方解释

GraphQL 旨在让 API 变得快速、灵活并且为开发人员提供便利。作为 REST 的替代方案,GraphQL 允许开发人员构建相应的请求,从而通过单个 API 调用从多个数据源中提取数据。

总结

简单的说,GraphQL通过请求参数中的方法名来区分不同接口,并且可以根据接口的需要,自定义设置需要返回的结果值。

参数解释

官方参数

ID

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache.
The ID type appears in a JSON response as a String; however, it is not intended to be human-readable.
When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

ID标量类型表示唯一标识符,通常用于重新获取对象或作为缓存的键。
ID类型在JSON响应中以String形式出现;但是,它并不是为可读的。
当需要作为输入类型时,任何字符串(如“4”)或整数(如4)输入值将被接受为ID

公用参数

Pagination分页

参数名类型是否必须解释
pageNumintfalse页数
pageSizeinttrue条数
needTotalBooleanfalse是否需要总数量(默认false)

Duration时间框

参数名类型是否必须解释
startStringtrue开始时间
endStringtrue结束时间
stepStep(DAY/HOUR/MINUTE/SECOND)true时间类型

接口

查询链路数据

接口名

queryTrace

请求参数

参数名类型解释
traceIdID链路ID

响应参数

参数名类型解释
traceIdID链路ID
segmentIdID区间ID,同一线程内相同,跨线程不同
spanIdIntspanID,同一个线程中唯一, 从0始递增
parentSpanIdInt父spanID,最上层为-1
refsref{ traceId: ID
parentSegmentId: ID
parentSpanId: Int
type: RefTyp(CROSS_PROCESS/CROSS_THREAD)}
serviceCodeString服务
serviceInstanceNameID服务实例
startTimeLong起始时间
endTimeLong结束时间
endpointNameString端点
typeString跨度类型(Local/Entry/Exit)
peerString网络地址(host:port/ip:port)
componentString组件
isErrorBoolean是否失败
layerString(Unknown/Database/RPCFramework/Http/MQ/Cache)
tagsKeyValue { key: String
value: String; }
详情
1. http服务(url/http.method/http.status_code)
2.数据库(db.type/db.instance/db.statement)
logsLogEntity { time: Long!
data: [KeyValue!]
}
日志

查询Basic链路

接口名

queryBasicTraces

请求参数

参数名类型是否必须解释
conditionTraceQueryConditiontrue查询对象

TraceQueryCondition

参数名类型是否必须解释
traceStateTraceState(ALL/SUCCESS/ERROR)truetrace状态
queryOrderQueryOrder(BY_START_TIME/BY_DURATION)true排序条件
pagingPaginationtrue分页
traceIdStringfalse链路ID(traceId和queryDuration必须要有一个)
queryDurationDurationfalse开始跟踪的时间范围
minTraceDurationintfalse最小时间
maxTraceDurationintfalse最大时间
serviceIdIDfalse服务ID,0为所有服务
serviceInstanceIdIDfalse
endpointIdIDfalse端点ID
endpointNameStringfalse端点名
tagsSpanTag(Key/Value)false

响应参数

参数名类型是否必须解释
tracesBasicTracetrue
totalinttrue排序条件

BasicTrace

参数名类型是否必须解释
segmentIdStringtrue区间ID
endpointNamesString[]true端点名
durationinttrue持续时间(ms)
startStringtrue开始时间
isErrorBooleanfalse是否失败
traceIdsString[]true链路ID