Skip to main content
Version: 0.7

Admin API

The Admin API provides a simple way to view cluster information, including metasrv health detection, metasrv leader query, database metadata query, and datanode heartbeat detection.

The Admin API is an HTTP service that provides a set of RESTful APIs that can be called through HTTP requests. The Admin API is simple, user-friendly and safe. Available APIs:

  • /health
  • /leader
  • /heartbeat
  • /maintenance

All these APIs are under the parent resource /admin.

In the following sections, we assume that your metasrv instance is running on localhost port 3002.

/health HTTP endpoint

The /health endpoint accepts GET HTTP requests and you can use this endpoint to check the health of your metasrv instance.

Definition

curl -X GET http://localhost:3002/admin/health

Examples

Request

curl -X GET http://localhost:3002/admin/health

Response

OK

/leader HTTP endpoint

The /leader endpoint accepts GET HTTP requests and you can use this endpoint to query the leader's addr of your metasrv instance.

Definition

curl -X GET http://localhost:3002/admin/leader

Examples

Request

curl -X GET http://localhost:3002/admin/leader

Response

127.0.0.1:3002

/heartbeat HTTP endpoint

The /heartbeat endpoint accepts GET HTTP requests and you can use this endpoint to query the heartbeat of all datanodes.

You can also query the heartbeat data of the datanode for a specified addr, however, specifying addr in the path is optional.

Definition

curl -X GET http://localhost:3002/admin/heartbeat
Query String ParameterTypeOptional/RequiredDefinition
addrStringOptionalThe addr of the datanode.

Examples

Request

curl -X GET 'http://localhost:3002/admin/heartbeat?addr=127.0.0.1:4100'

Response

[
[{
"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 endpoint

The metasrv will ignore detected region failures when under maintenance. This is useful when the datanodes are planned to be unavailable for a short period of time; for example, rolling upgrade for datanodes.

GET

The /maintenance endpoint accepts GET HTTP requests and you can use this endpoint to query the maintenance status of your metasrv instance.

curl -X GET http://localhost:3002/admin/maintenance

Request

curl -X GET http://localhost:3002/admin/maintenance

Response

Maintenance mode is disabled

PUT

The /maintenance endpoint accepts PUT HTTP requests and you can toggle the maintenance status of your metasrv instance.

curl -X PUT http://localhost:3002/admin/maintenance
Query String ParameterTypeOptional/RequiredDefinition
enableStringRequired'true' or 'false'

Request

curl -X PUT http://localhost:3002/admin/maintenance?enable=true

Response

Maintenance mode enabled