Skip to content

RPC2 接口

Komari 提供了一个 JSON-RPC2 接口。你可以通过 Websocket 或 POST 调用。

基础路径:/api/rpc2

JSON-RPC2 调试工具

注意

仅 >=1.0.7 的版本可以使用 RPC2

基础文档

(译) JSON-RPC 2.0 规范(中文版) - wiki . leozvc

认证

  • Cookie
  • API Key

提示

未登录也可使用,但某些方法将受到限制

说明

Komari 参数传递支持指名和数组两种方式。

例如有 func(a, b),参数传递可以使用 { "a": a, "b": b }[a, b](顺序)。

rpc.methods

描述:查看所有可用的 RPC 方法

参数:

参数名类型必填说明
internalbool是否显示 RPC 内置方法

返回:

返回值类型描述
string[]返回所有可用 RPC 方法的名称数组。

rpc.help

描述:获取指定 RPC 方法的帮助信息

参数:

参数名类型必填说明
methodstring要获取帮助信息的方法名

返回:

返回值类型描述
MethodMeta返回指定方法的详细元数据(如有指定)。

MethodMeta

字段类型说明
namestring方法名称
summarystring方法简要说明
descriptionstring方法详细描述
paramsParamMeta[]参数列表
returnsstring返回值类型说明

ParamMeta

字段类型说明
namestring参数名称
typestring参数类型
descriptionstring参数说明

rpc.ping

描述:健康检查,返回 pong

参数:无

返回:

返回值类型描述
string返回 "pong"

rpc.version

描述:返回当前 RPC 接口的版本号

参数:无

返回:

返回值类型描述
string返回 RPC 的版本号

common:getNodes

描述:获取节点(客户端)信息。

当提供 uuid 时,返回对应单个节点的 Client 对象;未提供时返回形如 { [uuid]: Client } 的对象,键为节点 UUID。

参数:

参数名类型必填说明
uuidstring节点 UUID,留空返回全部

返回:

返回值类型描述
Client | { [uuid]: Client }单个节点对象或以 uuid 作为键的节点对象集合

Client

字段类型说明
uuidstring节点 UUID
tokenstring节点访问令牌(未认证不显示)
namestring节点名称
cpu_namestringCPU 型号
virtualizationstring虚拟化类型
archstring系统架构(如 amd64, arm64)
cpu_coresintCPU 逻辑核心数
osstring操作系统名称
kernel_versionstring内核版本
gpu_namestringGPU 名称(如有)
ipv4stringIPv4 地址(未认证不显示)
ipv6stringIPv6 地址(未认证不显示)
regionstring区域
remarkstring私有备注(未认证不显示)
public_remarkstring公共备注(对外可见)
mem_totalint64内存总量(字节)
swap_totalint64交换分区总量(字节)
disk_totalint64磁盘总量(字节)
versionstringAgent 版本(未认证不显示)
weightint节点排序权重
pricefloat64价格(计费相关)
billing_cycleint计费周期(单位:天)
auto_renewalbool是否自动续费
currencystring货币符号(默认 $
expired_atLocalTime到期时间
groupstring分组名称
tagsstring标签(以 ; 分隔的字符串)
hiddenbool是否隐藏
traffic_limitint64流量阈值(单位:字节,含义由 traffic_limit_type 决定)
traffic_limit_typestring流量阈值类型:sum / max / min / up / down
created_atLocalTime创建时间
updated_atLocalTime更新时间

提示

Client 中的单位(如内存、磁盘、流量)均为字节;需要可读格式请自行转换。

common:getPublicInfo

描述:获取公开的站点与运行配置信息。

参数:无

返回:

返回值类型描述
PublicInfo公开站点配置对象

PublicInfo

字段类型说明
allow_corsbool是否允许 CORS(跨域)。
custom_bodystring注入到页面 <body> 尾部的自定义 HTML 片段。
custom_headstring注入到页面 <head> 内的自定义 HTML(如样式 / 脚本)。
descriptionstring站点描述。
disable_password_loginbool是否禁用密码登录。
oauth_enablebool是否启用 OAuth 登录。
oauth_providerstring启用的 OAuth 提供商标识(如:github)。
ping_record_preserve_timeintping 记录保留时长(小时)。
private_sitebool是否为私有站点。
record_enabledbool是否启用监控记录。
record_preserve_timeint监控记录保留时长(小时)。
sitenamestring站点名称。
themestring当前主题 Short 名称。
theme_settingsobject主题自定义配置(键值结构由具体主题定义,可能为空对象)。

提示

theme_settings 结构会因主题而异;前端应做存在性与键名的容错处理。

common:getVersion

描述:获取后端版本与构建哈希。

参数:无

返回:

返回值类型描述
VersionInfo版本与哈希信息对象

VersionInfo

字段类型说明
versionstring版本号(如 dev)
hashstring构建提交哈希

common:getNodesLatestStatus

描述:获取一个或多个节点的最新运行状态。

参数:

参数名类型必填说明
uuidstring单个节点 UUID;与 uuids 二选一或都不填
uuidsstring[]多个节点 UUID 列表;与 uuid 二选一或都不填

返回:

返回值类型描述
{ [uuid]: NodeStatus }以 uuid 作为键的节点最新状态对象集合

当同时为空时返回所有节点的最新状态;如仅指定部分 UUID,则仅返回对应条目。

NodeStatus

字段类型说明
clientstring节点 UUID(客户端标识)
timestring采集时间(ISO8601,UTC)
cpufloat64CPU 使用率(百分比,0-100)
gpufloat64GPU 使用率(百分比,0-100)
ramint64已用内存(字节)
ram_totalint64内存总量(字节)
swapint64已用交换分区(字节)
swap_totalint64交换分区总量(字节)
loadfloat641 分钟平均负载
load5float645 分钟平均负载
load15float6415 分钟平均负载
tempfloat64温度(单位取决于平台/传感器)
diskint64已用磁盘(字节)
disk_totalint64磁盘总量(字节)
net_inint64瞬时入网速(字节/秒)
net_outint64瞬时出网速(字节/秒)
net_total_upint64自启动以来累计上传(字节)
net_total_downint64自启动以来累计下载(字节)
processint64进程数量
connectionsint64TCP 连接数
connections_udpint64UDP 连接数
onlinebool是否在线

common:getMe

描述:获取当前登录用户的基本信息与登录状态。

参数:无

返回:

返回值类型描述
MeInfo当前登录用户信息对象

MeInfo

字段类型说明
2fa_enabledbool是否启用两步验证
logged_inbool是否已登录
sso_idstringSSO 用户 ID(未登录为空)
sso_typestringSSO 类型(如 github,未登录为空)
usernamestring用户名(未登录为空)
uuidstring用户 UUID(未登录为空)

common:getNodeRecentStatus

描述:获取指定节点的最近状态记录列表。

参数:

参数名类型必填说明
uuidstring节点 UUID

返回:

返回值类型描述
RecentStatusResp包含总数与状态记录的对象

RecentStatusResp

字段类型说明
countint记录总条数
recordsStatusRecord[]状态记录数组

StatusRecord

字段类型说明
clientstring节点 UUID(客户端标识)
timestring采集时间(ISO8601,UTC)
cpufloat64CPU 使用率(百分比,0-100)
gpufloat64GPU 使用率(百分比,0-100)
ramint64已用内存(字节)
ram_totalint64内存总量(字节)
swapint64已用交换分区(字节)
swap_totalint64交换分区总量(字节)
loadfloat641 分钟平均负载
tempfloat64温度(单位取决于平台/传感器)
diskint64已用磁盘(字节)
disk_totalint64磁盘总量(字节)
net_inint64瞬时入网速(字节/秒)
net_outint64瞬时出网速(字节/秒)
net_total_upint64累计上传(字节)
net_total_downint64累计下载(字节)
processint64进程数量
connectionsint64TCP 连接数
connections_udpint64UDP 连接数

common:getRecords

描述:按时间范围获取历史记录(负载或 Ping)。支持单节点或所有节点、起止时间或相对窗口、指标筛选与结果限额。

参数:

参数名类型必填说明
typestring记录类型:load | ping,默认 load
uuidstring节点 UUID;留空表示所有节点
hoursint时间窗口(单位:小时)。当未提供 start/end 时生效,默认 1
startstring起始时间(RFC3339)。与 end 可选配合使用
endstring结束时间(RFC3339)。与 start 可选配合使用
load_typestringtype=load 时的指标筛选:cpu | gpu | ram | swap | load | temp | disk | network | process | connections | all(默认 all
task_idinttype=ping 时的任务筛选;省略或 -1 表示所有任务
maxCountint返回数据点上限;默认 4000-1 表示不限。用于控制下采样与负载

返回:

默认行为

若未提供 uuidtypehours,则默认查询:所有客户端、type=load、最近 1 小时。

  • 公共字段:count(int),from(string, RFC3339),to(string, RFC3339)。
  • type=load
    • uuid 已提供:recordsStatusRecord[]
    • 未提供 uuidrecords 为形如 { [uuid]: StatusRecord[] } 的映射。
  • type=pingrecordsPingRecord[],另含 basic_info: BasicInfo[]

load_type != all 时,负载记录中仅包含所选指标及通用字段(clienttime)。

Load 结果结构

当指定 uuid

字段类型说明
countint总记录数
recordsStatusRecord[]负载历史记录数组
fromstring起始时间(RFC3339)
tostring结束时间(RFC3339)

当未指定 uuid

字段类型说明
countint总记录数(聚合统计参考值)
records{ [uuid]: StatusRecord[] }不同节点的记录映射
fromstring起始时间(RFC3339)
tostring结束时间(RFC3339)

注:StatusRecord 字段定义见上文“common:getNodeRecentStatus/StatusRecord”。

Ping 结果结构

字段类型说明
countint总记录数
basic_infoBasicInfo[]各节点统计摘要
recordsPingRecord[]Ping 历史记录数组
fromstring起始时间(RFC3339)
tostring结束时间(RFC3339)

BasicInfo

字段类型说明
clientstring节点 UUID
lossnumber丢包率(%)
minnumber最小延迟(ms)
maxnumber最大延迟(ms)

PingRecord

字段类型说明
task_idint任务 ID
timestring记录时间(RFC3339)
valuenumber延迟值(毫秒)
clientstring节点 UUID