Admin API
Admin 提供了一种简单的方法来查看集群信息,包括 metasrv 健康检测、metasrv leader 查询、数据库元数据查询和数据节点心跳检测。
Admin API 是一个 HTTP 服务,提供一组可以通过 HTTP 请求调用的 RESTful API。Admin API 简单、用户友好且安全。 可用的 API:
- /health
- /leader
- /heartbeat
- /maintenance
所有这些 API 都在父资源 /admin
下。
在以下部分中,我们假设你的 metasrv 实例运行在本地主机的 3002 端口。
/health HTTP 端点
/health
端点接受 GET HTTP 请求,你可以使用此端点检查你的 metasrv 实例的健康状况。
定义
curl -X GET http://localhost:3002/admin/health
示例
请求
curl -X GET http://localhost:3002/admin/health
响应
OK
/leader HTTP 端点
/leader
端点接受 GET HTTP 请求,你可以使用此端点查询你的 metasrv 实例的 leader 地址。
定义
curl -X GET http://localhost:3002/admin/leader
示例
请求
curl -X GET http://localhost:3002/admin/leader
响应
127.0.0.1:3002
/heartbeat HTTP 端点
/heartbeat
端点接受 GET HTTP 请求,你可以使用此端点查询所有数据节点的心跳。
你还可以查询指定 addr
的数据节点的心跳数据,但在路径中指定 addr
是可选的。
定义
curl -X GET http://localhost:3002/admin/heartbeat
查询字符串参数 | 类型 | 可选/必选 | 定义 |
---|---|---|---|
addr | String | 可选 | 数据节点的地址。 |
示例
请求
curl -X GET 'http://localhost:3002/admin/heartbeat?addr=127.0.0.1:4100'
响应
[
[{
"timestamp_millis": 1677049348651,
"cluster_id": 0,
"id": 1,
"addr": "127.0.0.1:4100",
"is_leader": false,
"rcus": 0,
"wcus": 0,
"table_num": 0,
"region_num": 2,
"cpu_usage": 0.0,
"load": 0.0,
"read_io_rate": 0.0,
"write_io_rate": 0.0,
"region_stats": []
}, {
"timestamp_millis": 1677049344048,
"cluster_id": 0,
"id": 1,
"addr": "0.0.0.0:4100",
"is_leader": false,
"rcus": 0,
"wcus": 0,
"table_num": 0,
"region_num": 2,
"cpu_usage": 0.0,
"load": 0.0,
"read_io_rate": 0.0,
"write_io_rate": 0.0,
"region_stats": []
}, {
"timestamp_millis": 1677049343624,
"cluster_id": 0,
"id": 1,
"addr": "127.0.0.1:4100",
"is_leader": false,
"rcus": 0,
"wcus": 0,
"table_num": 0,
"region_num": 2,
"cpu_usage": 0.0,
"load": 0.0,
"read_io_rate": 0.0,
"write_io_rate": 0.0,
"region_stats": []
}, {
"timestamp_millis": 1677049339036,
"cluster_id": 0,
"id": 1,
"addr": "0.0.0.0:4100",
"is_leader": false,
"rcus": 0,
"wcus": 0,
"table_num": 0,
"region_num": 2,
"cpu_usage": 0.0,
"load": 0.0,
"read_io_rate": 0.0,
"write_io_rate": 0.0,
"region_stats": []
}, {
"timestamp_millis": 1677049338609,
"cluster_id": 0,
"id": 1,
"addr": "127.0.0.1:4100",
"is_leader": false,
"rcus": 0,
"wcus": 0,
"table_num": 0,
"region_num": 2,
"cpu_usage": 0.0,
"load": 0.0,
"read_io_rate": 0.0,
"write_io_rate": 0.0,
"region_stats": []
}, {
"timestamp_millis": 1677049334019,
"cluster_id": 0,
"id": 1,
"addr": "0.0.0.0:4100",
"is_leader": false,
"rcus": 0,
"wcus": 0,
"table_num": 0,
"region_num": 2,
"cpu_usage": 0.0,
"load": 0.0,
"read_io_rate": 0.0,
"write_io_rate": 0.0,
"region_stats": []
}, {
"timestamp_millis": 1677049333592,
"cluster_id": 0,
"id": 1,
"addr": "127.0.0.1:4100",
"is_leader": false,
"rcus": 0,
"wcus": 0,
"table_num": 0,
"region_num": 2,
"cpu_usage": 0.0,
"load": 0.0,
"read_io_rate": 0.0,
"write_io_rate": 0.0,
"region_stats": []
}, {
"timestamp_millis": 1677049329002,
"cluster_id": 0,
"id": 1,
"addr": "0.0.0.0:4100",
"is_leader": false,
"rcus": 0,
"wcus": 0,
"table_num": 0,
"region_num": 2,
"cpu_usage": 0.0,
"load": 0.0,
"read_io_rate": 0.0,
"write_io_rate": 0.0,
"region_stats": []
}, {
"timestamp_millis": 1677049328573,
"cluster_id": 0,
"id": 1,
"addr": "127.0.0.1:4100",
"is_leader": false,
"rcus": 0,
"wcus": 0,
"table_num": 0,
"region_num": 2,
"cpu_usage": 0.0,
"load": 0.0,
"read_io_rate": 0.0,
"write_io_rate": 0.0,
"region_stats": []
}, {
"timestamp_millis": 1677049323986,
"cluster_id": 0,
"id": 1,
"addr": "0.0.0.0:4100",
"is_leader": false,
"rcus": 0,
"wcus": 0,
"table_num": 0,
"region_num": 2,
"cpu_usage": 0.0,
"load": 0.0,
"read_io_rate": 0.0,
"write_io_rate": 0.0,
"region_stats": []
}]
]
/maintenance HTTP 端点
当处于维护状态时,metasrv 将忽略检测到的区域故障。这在数据节点计划短时间不可用时非常有用,例如数据节点的滚动升级时。
GET
/maintenance
端点接受 GET HTTP 请求,你可以使用此端点查询你的 metasrv 实例的维护状态。
curl -X GET http://localhost:3002/admin/maintenance
请求
curl -X GET http://localhost:3002/admin/maintenance
响应
Maintenance mode is disabled
PUT
/maintenance
端点接受 PUT HTTP 请求,你可以切换你的 metasrv 实例的维护状态。
curl -X PUT http://localhost:3002/admin/maintenance
查询字符串参数 | 类型 | 可选/必选 | 定义 |
---|---|---|---|
enable | String | 必选 | 'true' 或 'false' |
请求
curl -X PUT http://localhost:3002/admin/maintenance?enable=true
响应
Maintenance mode enabled