Skip to content

Thrift 接口

示例

以下结构需遵照示例进行使用

JavaScript

在 JavaScript 中使用之前需引用 Thrift.js 以及对应 *.thrift 接口生成的 *.js 文件

例如:

html
<script src="/path/to/thrift.js"></script>
<script type="text/javascript" src="/path/to/common_types.js"></script>
<script type="text/javascript" src="/path/to/MetadataServer.js"></script>

<script>
let url = "http://host:port/metadata"

let transport = new Thrift.Transport(url)
let protocol = new Thrift.TJSONProtocol(transport)

let client = new MetadataServerClient(protocol)

// 初始化 BaseReq
let baseReq = new BaseReq({
	TransID: "...",
	Token: "..."
})

// 初始化请求参数
let getMetadataReq = new GetMetadataReq({
	Req: baseReq,
	Database: "...",
	Table: "...",
	UserID: "..."
})

// 调用接口回调函数
let callback = function (resp) {
	console.log(resp.Resp)
	console.log(resp.Database)
	// ...
}

// 调用 GetMetadata 接口获取表结构
client.GetMetadata(getMetadataReq, callback)
</script>

base

所有请求需携带 Req 字段,类型为 BaseReq

所有响应需携带 Resp 字段,类型为 BaseResp

go
BaseReq {
	// 事务 ID
	TransID string	
	// Token
	Token string
}

BaseResp {
	// 事务 ID
	TransId string
	// 错误码
	ErrCode int32
	// 错误信息
	ErrMsg string
}

登录 (Login)

请求

go
LoginReq {
	Req BaseReq 
	// 登录账户名
	Account string
	// 登录账户密码
	Password string
}

响应

go
LoginResp {
	Resp BaseResp
	// Token, 后续所有请求需将此字段放入 `Req` 中再请求
	Token string
	// 登录用户 ID
	UserID string
}

登出 (Logout)

请求

go
LogoutReq {
	Req BaseReq
	// 登录用户 ID
	UserID string
}

响应

go
LogoutResp {
	Resp BaseResp
}

控制台查询 (ConsoleQuery)

请求

go
ConsoleQueryReq {
	Req BaseReq
	// 需要执行的 sql
	Sql string
	// 登录用户 ID
	UserID string
}

响应

go
ConsoleQueryResp {
	Resp BaseResp
	// 返回的所有列信息
	Columns []OPColumn
	// json 序列化的行数据信息
	Rows []ConsoleRow
	// 数据字典,暂未使用
	DataDictionary map[int16]map[int32]string
}

OPColumn {
	// 编号,暂未使用
	ID            int32            
	// 字段名称
	Name          string           
	// 字段类型
	Type          int8             
	// 列序号
	Index         int16            
	Offset        int16            
	Length        int16            
	Mask          int32            
	Expr          string           
	IsSheet       bool             
	Values        map[int16]string 
	// 是否是主键
	PK            bool             
	DecimalDigits int16            
	// 是否不为 NULL
	NotNull       bool             
	// 默认值
	DefaultValue  string           
	// 备注
	Remarks       string           
	// 生成时间
	GenerateTime  int32            
}

ConsoleRow {
	// 行数据 json 串
	Data string 
}

添加角色 (AddRole)

请求

go
AddRoleReq {
	Req BaseReq
	// 登录用户 ID
	UserID string
	// 角色信息
	Role RoleInfo
}

RoleInfo {
	// 角色名称
	Name string
	// 角色描述
	Desc string
}

响应

go
AddRoleResp {
	Resp BaseResp
}

获取角色 (GetRole)

请求

go
GetRoleReq {
	Req BaseReq
	// 登录用户 ID
	UserID string
	// 角色名称列表
	RoleNames []string
}

响应

go
GetRoleResp {
	Resp BaseResp
	// 角色信息
	Roles []RoleInfo
}

删除角色 (RemoveRole)

请求

go
RemoveRoleReq {
	Req BaseReq
	// 登录用户 ID
	UserID string
	// 角色名称
	RoleName string
}

响应

go
RemoveRoleResp {
	Resp BaseResp
}

添加角色用户 (AddRoleUser)

请求

go
AddRoleUserReq {
	Req BaseReq
	// 登录用户 ID
	UserID string
	// 角色名称
	RoleName string
	// 用户名列表
	Accounts []string
}

响应

go
AddRoleUserResp {
	Resp BaseResp
}

获取角色用户 (GetRoleUser)

请求

go
GetRoleUserReq {
	Req BaseReq
	// 登录用户 ID
	UserID string
	// 角色名称
	RoleName string
}

响应

go
GetRoleUserResp {
	Resp BaseResp
	// 角色名称
	RoleName string
	// 用户名列表
	Accounts []string
}

获取用户角色 (GetUserRoles)

请求

go
GetUserRolesReq {
	Req BaseReq
	// 登录用户 ID
	UserID string
	// 需要查询的用户名
	Account string
}

响应

go
GetUserRolesResp {
	Resp BaseResp
	// 用户名
	UserName string
	// 角色名
	RoleNames []string
}

删除角色用户 (RemoveRoleUser)

请求

go
RemoveRoleUserReq {
	Req BaseReq
	// 登录用户 ID
	UserID string
	// 角色名
	RoleName string
	// 需要删除的用户名
	Account string
}

响应

go
RemoveRoleUserResp {
	Resp BaseResp
	// 角色名
	RoleName string
	// 被删除的用户名
	Account string
}

刷新角色权限 (RefreshRolePolicies)

请求

go
RefreshRolePoliciesReq {
	Req BaseReq
	// 登录用户 ID
	UserID string
	// 权限列表
	Policies []RolePolicy
}

RolePolicy {
	// 主体
	Subject string
	// 对象
	Object string
	// 动作
	Action string
	// 影响
	Effect string
	// 对象类型
	ObjectType PolicyObjectType
}

enum PolicyObjectType {
	// 固定 Object
	ObjectTypeFixed = 0
	// 数据库
	ObjectTypeDatabase = 1
	// 表
	ObjectTypeTable = 2
}

响应

go
RefreshRolePoliciesResp {
	Resp BaseResp
}

批量添加角色权限 (BatchAddRolePolicy)

请求

go
BatchAddRolePolicyReq {
	Req BaseReq
	// 登录用户 ID
	UserID string
	// 权限列表
	Policies []RolePolicy
}

响应

go
BatchAddRolePolicyResp {
	Resp BaseResp
}

获取角色权限 (GetRolePolicy)

请求

go
GetRolePolicyReq {
	Req BaseReq
	// 登录用户 ID
	UserID string
	// 角色名
	RoleName string
}

响应

go
GetRolePolicyResp {
	Resp BaseResp
	// 权限列表
	Policies []RolePolicy
}

获取用户权限 (GetUserPolicy)

请求

go
GetUserPolicyReq {
	Req BaseReq
	// 登录用户 ID
	UserID string
	// 需要获取权限的用户名
	Account string
}

响应

go
GetUserPolicyResp {
	Resp BaseResp
	// 用户名
	Account string
	// 权限列表
	Policies []RolePolicy
}

删除角色权限

请求

go
RemoveRolePolicyReq {
	Req BaseReq
	// 登录用户 ID
	UserID string
	// 需要删除的权限
	Policy RolePolicy
}

响应

go
RemoveRolePolicyResp {
	Resp BaseResp
}

添加用户 (AddUser)

请求

go
AddUserInfoReq {
	Req BaseReq
	// 登录用户 ID
	UserID string
	// 用户信息
	User UserInfo
}

UserInfo {
	// 用户名 
	Account string
	// 用户 ID
	ID string
	// 密码
	Password string
	// 描述
	Desc string
	// 备注
	Remark string
}

响应

go
AddUserInfoResp {
	Resp BaseResp
}

更新用户信息 (UpdateUser)

请求

go
UpdateUserInfoReq {
	Req BaseReq
	// 登录用户 ID
	UserID string
	// 需要更新的用户信息
	User UserInfo
}

响应

go
UpdateUserInfoResp {
	Resp BaseResp
}

获取用户信息 (GetUserInfo)

请求

go
GetUserInfoReq {
	Req BaseReq
	// 登录用户 ID
	UserID string
	// 需要获取信息的用户名列表
	AccountList []string
}

响应

go
GetUserInfoResp {
	Resp BaseResp
	// 用户列表
	UserList []UserCompositeInfo
}

UserCompositeInfo {
	// 用户名
	Account string
	// 用户 ID
	ID string
	// 描述
	Desc string
	// 备注
	Remark string
	// 所属角色列表
	Roles []string
}

删除用户 (RemoveUser)

请求

go
RemoveUserInfoReq {
	Req BaseReq
	// 登录用户 ID
	UserID string
	// 需要删除的用户名
	Account string
}

响应

go
RemoveUserInfoResp {
	Resp BaseResp
}

获取表列表 (GetTableList)

请求

go
GetTableListReq {
	Req BaseReq
	// 数据库名
	Database string
	// 登录用户 ID 
	UserID string
}

响应

go
GetTableListResp {
	Resp BaseResp
	// 数据库名
	Database string
	// 表名列表
	Tables []string
}

创建表结构 (CreateMetaData)

请求

go
CreateMetaDataReq {
	Req BaseReq
	// 数据库
	Database string
	// 表名
	Table string
	// 列信息
	Columns []OPColumn
	// 时间列	
	MatchDateColumn string
	// 主键列
	ClassifyColumn string
	// 其他选项
	// 现支持 {"dataSpace": "size_and_unit"|size,"memorySpace":"size_and_unit"|size}
	Options map[string]Option
	// 约束
	Constraints map[string][]string
	// 登录用户 ID
	UserID string
}

Option {
	// 选项名称
	Title string
	// 选项值类型
	OpType OP_TYPE
	// 选项值
	Val string
}

enum OP_TYPE {
	//自定义类型。当前保留 0-15 用于 OPType 中使用
	OPTypeNull     = 0   //int8 类型 extend(0)
	OPTypeBool     = 1   //int8 类型 extend(1)
	OPTypeInt8     = 2   //int8 类型 extend(2)
	OPTypeInt16    = 3   //int16 类型 extend(3)
	OPTypeInt32    = 4   //int32 类型 extend(4)
	OPTypeInt64    = 5   //int64 类型 extend(5)
	OPTypeFloat    = 6   //float,extend(6)
	OPTypeDouble   = 7   //double,extend(7)
	OPTypeDateTime = 8   // double extend(8)
	OPTypeString   = 9   //string,extend(9)
	OPTypeBinary   = 10  //binary,extend(10)
	OPTypeObject   = 11  //object,extend(11)
    OPTypeMap      = 12  //object,extend(12)
    OPStructure    = 13  //object,extend(13), 结构体类型
    OPTypeArray    = 14  //object,extend(14), OPTypeArray 即可代表定长数組 (array) 又可代表变长数组 (slice)
	// OPTypeEnum     = 15  //object,extend(15)


	//自定义类型。当前保留 16-30 用于 一维结构/多维结构互转时的类型定义
	OPBoolArray     = 17    //value=17, int8 类型 extend(17)
	OPInt8Array     = 18    //value=18, int8 类型 extend(18)
	OPInt16Array    = 19    //value=19, int16 类型 extend(19)
	OPInt32Array    = 20    //value=20, int32 类型 extend(20)
	OPInt64Array    = 21    //value=21, int64 类型 extend(21)
	OPFloatArray    = 22    //value=22, float,extend(22)
	OPDoubleArray   = 23    //value=23, double,extend(23)
	OPDateTimeArray = 24    //value=24, double, extend(24)
	OPStringArray   = 25    //value=25, binary,extend(25)
	OPBinaryArray   = 26    //value=26, object,extend(26)

	OPTypeRow  = 32
	OPRowArray = 48  // row,extend(48)
}

响应

go
CreateMetaDataResp {
	Resp BaseResp
	// 数据库名称
	Database string
	// 表名
	Table string
}

获取表结构 (GetMetadata)

请求

go
GetMetadataReq {
	Req BaseReq
	// 数据库名
	Database string
	// 表名
	Table string
	// 登录用户 ID
	UserID string
}

响应

go
GetMetadataResp {
	Resp BaseResp
	// 数据库名
	Database string
	// 表名
	Table string
	// 列信息
	Columns []OPColumn
	// 时间列
	MatchDateColumn string
	// 主键列
	ClassifyColumn string
	// 可选项
	// 现支持 {"dataSpace": "size_and_unit"|size,"memorySpace":"size_and_unit"|size}
	Options map[string]Option
	// 约束
	Constraints map[string][]string
}

更新表结构 (UpdateMetadata)

请求

go
UpdateMetadataReq {
	Req BaseReq
	// 登录用户 ID
	UserID string
	// 数据库名
	Database string
	// 表名
	Table string
	// 列信息
	Columns []OPColumn
	// 可选项
	// 现支持 {"dataSpace": "size_and_unit"|size,"memorySpace":"size_and_unit"|size}
	Options map[string]Option
	// 约束
	Constraints map[string][]string
}

响应

go
UpdateMetadataResp {
	Resp BaseResp
	// 数据库名
	Database string
	// 表名
	Table string
}

删除表结构 (DeleteMetaData)

请求

go
DeleteMetaDataReq {
	Req BaseReq
	// 数据库名
	Database string
	// 表名
	Table string
	// 登录用户 ID
	UserID string
}

响应

go
DeleteMetaDataResp {
	Resp BaseResp
	// 数据库名
	Database string
	// 表名
	Table string
}

监控获取历史数据 (GetCollectorData)

请求

go
GetCollectorDataReq {
	Req BaseReq
	// 收集器类型
	Type CollectorType
	// 指标名称,为下方 json 中的字段名称
	Metrics []string
	// 开始时间
	From string
	// 结束时间
	To string
	// 时间粒度,单位 s
	Interval int64
}

// 如果开始或者结束时间为空,则返回当前信息

enum CollectorType {
	// 系统信息
	SystemInfo = 0
	// CPU 信息
	CPUInfo = 1
	// 网络信息
	NetInfo = 2
	// 磁盘信息
	DiskInfo = 3
	// 网络连接信息
	ConnectionsInfo = 4
	// 内存信息
	MemoryInfo = 5
	// 容器信息,暂时未使用
	ContainerInfo = 6
	// ldb 信息
	LDBInfo = 7
	// ldb 的任务信息
	ProcessInfo = 8
	// ldb 运行时信息
	RuntimeInfo = 9
}

响应

go
GetCollectorDataResp {
	Resp BaseResp
	Data []string // 为时间戳 + 指标项的 json 字符串
}

各指标收集的信息如下:

系统信息:

json
{
    "host": "11eded85-69bc-4960-a65f-a16b5d08563c",
    "name": "systemInfo",
    "timestamp": "2023-11-27T11:27:30.141927306+08:00",
    "load1": 0.27, // 1 分钟负载
    "load5": 0.95, // 5 分钟 负载
    "load15": 11.45, // 15 分钟负载
    "host_name": "magus-PowerEdge-R7525", // 主机名称
    "up_time": 6398286, // 启动时间(s)
    "boot_time": 1694657365, // 开机时间
    "procs": 1601, // 进程数
    "os": "linux", // 系统
    "platform": "ubuntu", // 平台
    "platform_family": "debian", // 平台系列
    "platform_version": "22.04", // 版本号
    "kernel_version": "5.15.0-76-generic", // 内核版本
    "kernel_arch": "x86_64", // 内核架构
    "virtualization_system": "kvm", // 虚拟系统
    "virtualization_role": "host" // 虚拟角色
}

CPU 信息:

json
{
    "host": "11eded85-69bc-4960-a65f-a16b5d08563c",
    "name": "cpu",
    "timestamp": "2023-11-27T11:27:45.141815995+08:00",
    "cpu": "cpu-total", // 总览 cpu
    "user": 40945090.09, // 用户时间
    "system": 15807944.49, // 系统时间
    "idle": 537799662.61, // 闲置时间
    "nice": 14486590.78, // 在较低优先级进程上的使用时间
    "iowait": 3703024.62, // io 等待时间
    "irq": 0, // 硬件中断时间
    "softirq": 89733.04, // 软件中断时间
    "steal": 0, // 被其他虚拟机占用的时间
    "guest": 0, // 执行客户操作系统的时间
    "guestNice": 0, // 执行客户操作系统中较低优先级进程的使用时间
    "total": 612832045.63, // 总使用时间
    "total_percent": [ // cpu 使用率
        0.1639793985627126
    ],
    "usage_user": 0.43953581546201936, // 用户使用率
    "usage_system": 0.2462911298946998, // 系统使用率
    "usage_idle": 98.85815709758168, // 闲置率
    "usage_nice": 0.000050610799645269087, // 较低优先级进程使用率
    "usage_iowait": 0.45549719638320696, // io 等待占比
    "usage_softirq": 0.0004681498962768486 // 软件中断时间占比
}

网络信息:

json
{
    "host": "11eded85-69bc-4960-a65f-a16b5d08563c",
    "name": "net",
    "timestamp": "2023-11-27T11:27:33.142659865+08:00",
    "interfaceName": "eno8403", // 网卡名称
    "byte_sent": 311985575690, // 发送字节数
    "byte_recv": 1312353355, // 接收字节数
    "packet_sent": 386431744, // 发送包数量
    "packet_recv": 7409662 // 接收包数量
}

磁盘信息:

json
{
    "host": "11eded85-69bc-4960-a65f-a16b5d08563c",
    "name": "disk",
    "timestamp": "2023-11-27T11:27:39.142987942+08:00",
    "device": "/dev/sda2", // 设备名称
    "mountpoint": "/21T", // 挂载点
    "fs_type": "ext4", // 文件系统类型
    "total": 23905826930688, // 总容量
    "free": 6118566490112, // 空闲容量
    "used": 16587122520064, // 已使用容量
    "used_percent": 73.05271605116302, // 已使用占比
    "inodes_total": 366247936, // inodes 总量
    "inodes_free": 365974725, // 未使用的 inodes 数量
    "inodes_used_percent": 0.07459728046085153, // 使用的 inodes 占比
    "read_count": 187497617, // 读取次数
    "merged_read_count": 4937045, // 读磁盘时发生合并操作的次数
    "write_count": 968744831, // 写入次数
    "merged_write_count": 1039325888, // 写磁盘时发生合并操作的次数
    "read_bytes": 21792119350272, // 读取字节数
    "write_bytes": 379609554526208, // 写入字节数
    "read_time": 1825933904, // 读取时间
    "write_time": 315943317, // 写入时间
    "iops_in_progress": 0, // 当前正在进行的 I/O 操作的数量
    "io_time": 1224634032, // 执行 I/O 操作花费的时间
    "weighted_io": 2141877222, // 相对负载
    "stats_name": "sda2", 
    "serial_number": "3670b5e80cba01c00b856b5eb04759857", // 磁盘序列号
    "label": ""
}

网络连接信息:

json
{
	"host": "",
	"name": "net",
	"timestamp": "",
	"fd": 0, // 文件描述符
	"family": 0, // 协议族
	"type": 0, // 类型
	"local_addr": "", // 本地地址
	"remote_addr": "", // 远程地址
	"status": "", // 状态
	"uids": [], // 用户标识符
	"pid": 0 // 进程编号
}

内存信息:

json
{
    "host": "11eded85-69bc-4960-a65f-a16b5d08563c",
    "name": "mem",
    "timestamp": "2023-11-27T11:30:14.141702125+08:00",
    "total": 270028476416, // 内存总量
    "available": 223658266624, // 可用内存量
    "used": 44468248576, // 已使用内存
    "used_percent": 16.4679848459735, // 已使用内存占比
    "free": 9047441408, // 空闲内存
    "inactive": 197884284928, // 非活跃状态内存量
    "buffers": 629497856, // 缓冲区
    "cached": 215883288576, // 已缓存
    "dirty": 458752, // 脏内存 (已被修改但未写回到磁盘)
    "shared": 9687040, // 共享内存
    "slab": 7147175936, // 表示用于管理内存分配和缓存的数据结构所占用的内存大小 
    "sreclaimable": 5620305920, // 可回收 Slab,表示可被回收的 Slab 内存大小
    "sunreclaim": 1526870016, // 不可回收 Slab,表示不可被回收的 Slab 内存大小
    "page_tables": 328978432, // 页面表,表示用于管理进程页表的内存大小
    "commit_limit": 135014236160, // 提交限制,表示系统允许的最大内存提交量
    "committed_as": 93984342016, // 已提交内存,表示已被应用程序提交的内存大小
    "mapped": 444977152, // 映射内存,表示进程已映射的内存大小
    "vmalloc_total": 35184372087808, // 虚拟内存总量,表示系统可用的虚拟内存总大小
    "vmalloc_used": 355336192, // 已使用的虚拟内存大小
    "huge_page_size": 2097152, // 巨大页面大小,表示系统中使用的巨大页面的大小
    "swap_sin": 14518296576, // 交换区读入,表示从交换区读入的数据量
    "swap_sout": 23080718336, // 交换区写出,表示写入到交换区的数据量
    "swap_pg_in": 94261869580288, // 交换区页面读入,表示从交换区读入的页面数量
    "swap_pg_out": 1530655109545984, // 交换区页面写出,表示写入到交换区的页面数量
    "swap_pg_fault": 2370142102962176, // 交换区页面故障,表示发生页面故障的次数
    "swap_pg_maj_fault": 26303188992 // 交换区页面主要故障,表示发生主要页面故障的次数
}

ldb 信息

json
{
	"host": "",
	"name": "ldb",
	"timestamp": "",
	"table_name": "...", // 表名
	"total_size": 40, // 表数据量占用磁盘大小
	"file_info": "...", // 文件信息
}

ldb 的任务信息

json
{
	"host": "",
	"name": "",
	"timestamp": "",
	"total": 5, // 总任务量
	"Conn": 1, // 连接数
	"Query": 1, // 查询任务数量
	"Insert": 1, // 插入任务数量
	"tasks": 1, // 系统内部任务(数据文件整理,aaf 转 archive 等)
	"ThriftApi": 1 // Thrift 请求数量
}

运行时信息:

json
{
    "host": "11eded85-69bc-4960-a65f-a16b5d08563c",
    "name": "runtime",
    "timestamp": "2023-11-27T11:30:36.141910115+08:00",
    "num_cgo_call": 25601, // CGO 调用数量
    "num_goroutine": 823, // Goroutine 数量
    "heap_alloc": 18421130040, // 堆内存分配量
    "total_alloc": 75526586808, // 总分配量,表示程序运行期间总共分配的内存大小
    "sys": 30943616680, // 系统内存分配量,表示已向操作系统申请的内存大小
    "mallocs": 484805878, // 内存分配次数,表示已执行的内存分配次数
    "frees": 204534319, // 内存释放次数,表示已执行的内存释放次数
    "heap_sys": 29839065088, // 堆内存系统分配量,表示已分配的堆内存系统分配量
    "heap_idle": 10779934720, // 堆内存空闲量,表示当前未被使用的堆内存大小
    "heap_in_use": 19059130368, // 堆内存使用量,表示当前正在使用的堆内存大小
    "heap_released": 8745140224, // 堆内存释放量,表示已释放的堆内存大小
    "heap_objects": 280271559, // 堆对象数量,表示当前堆中的对象数量
    "stack_in_use": 7602176, // 栈内存使用量,表示当前正在使用的栈内存大小
    "stack_sys": 7602176, // 栈内存系统分配量,表示已分配的栈内存系统分配量
    "mspan_in_use": 355582584, // mspan(内存分配器中的管理结构)使用量,表示当前正在使用的 mspan 内存大小
    "mspan_sys": 369381432, // mspan 系统分配量,表示已分配的 mspan 内存大小
    "mcache_in_use": 115200, // mcache(内存分配器中的管理结构)使用量,表示当前正在使用的 mcache 内存大小
    "mcachs_sys": 124800, // mcache 系统分配量,表示已分配的 mcache 内存大小
    "buck_hash_sys": 1976998, // buckhash(哈希桶)系统分配量,表示已分配的 buckhash 内存大小
    "gc_sys": 679346992, // GC 系统分配量,表示已分配的 GC 相关内存大小
    "other_sys": 46119194, // 其他系统分配量,表示已分配的其他系统内存大小
    "next_gc": 34878410288, // 下次 GC 内存大小,表示在触发下一次 GC 之前的内存大小
    "last_gc": 1701055763775766800, // 上次 GC 时间戳,表示上一次 GC 的时间戳
    "pause_total_ns": 23457580, // GC 暂停总耗时,表示程序运行期间 GC 暂停的总时间
    "num_gc": 101, // GC 次数,表示程序运行期间执行的 GC 次数
    "num_forced_gc": 0, // 强制执行 GC 次数,表示程序运行期间强制执行的 GC 次数
    "gc_cpu_fraction": 0.0012116597907093926, // GC CPU 占用比例,表示 GC 占用 CPU 时间的比例
    "enable_gc": true, // 是否启用 GC,表示是否启用垃圾回收机制
    "debug_gc": false, // 是否开启 GC 调试模式,表示是否开启了 GC 调试模式
    "num_fds": 0, // 文件描述符数量,表示当前打开的文件描述符数量
    "cpu_time_stats_cpu": "cpu", // CPU 时间统计,表示 CPU 时间的统计信息
    "cpu_time_stats_user": 339.72, // 用户态 CPU 时间,表示用户态 CPU 时间的累计值
    "cpu_time_stats_system": 181.25, // 内核态 CPU 时间,表示内核态 CPU 时间的累计值
    "io_counter_read_count": 8287084, // 读操作计数,表示读操作的次数
    "io_counter_write_count": 23171, // 写操作计数,表示写操作的次数
    "io_counter_read_bytes": 256583811072, // 读取的字节数,表示读取的字节数量
    "io_counter_write_bytes": 147898368 // 写入的字节数,表示写入的字节数量
}

数据导出

请求

shell
GET /export?token=<token>&sql=<base64(sql)>&transId=<transId>

响应

file