CLUSTER_INFO
The CLUSTER_INFO table provides the topology information of the cluster.
USE INFORMATION_SCHEMA;
DESC TABLE CLUSTER_INFO;
The output is as follows:
+-------------+----------------------+------+------+---------+---------------+
| Column      | Type                 | Key  | Null | Default | Semantic Type |
+-------------+----------------------+------+------+---------+---------------+
| peer_id     | Int64                |      | NO   |         | FIELD         |
| peer_type   | String               |      | NO   |         | FIELD         |
| peer_addr   | String               |      | YES  |         | FIELD         |
| version     | String               |      | NO   |         | FIELD         |
| git_commit  | String               |      | NO   |         | FIELD         |
| start_time  | TimestampMillisecond |      | YES  |         | FIELD         |
| uptime      | String               |      | YES  |         | FIELD         |
| active_time | String               |      | YES  |         | FIELD         |
+-------------+----------------------+------+------+---------+---------------+
The columns in table:
- peer_id: the server id of the node. It's always- 0for standalone mode and- -1for frontends because it doesn't make sense in such cases.
- peer_type: the node type,- METASRV,- FRONTEND, or- DATANODEfor distributed clusters and- STANDALONEfor standalone deployments.
- peer_addr: the GRPC server address of the node. It's always empty for standalone deployments.
- version: The build version of the node, such as- 0.7.2etc.
- start_time: The node start time.
- uptime: The uptime of the node, in the format of duration string- 24h 10m 59s 150ms.
- active_time: The duration string in the format of- 24h 10m 59s 150mssince the node's last active time(sending the heartbeats), it's always empty for standalone deployments.
Query the table:
SELECT * FROM CLUSTER_INFO;
An example output in standalone deployments:
+---------+------------+-----------+---------+------------+-------------------------+--------+-------------+
| peer_id | peer_type  | peer_addr | version | git_commit | start_time              | uptime | active_time |
+---------+------------+-----------+---------+------------+-------------------------+--------+-------------+
| 0       | STANDALONE |           | 0.7.2   | 86ab3d9    | 2024-04-30T06:40:02.074 | 18ms   |             |
+---------+------------+-----------+---------+------------+-------------------------+--------+-------------+
Another example is from a distributed cluster that has three Datanodes, one Frontend, and one Metasrv.
+---------+-----------+----------------+---------+------------+-------------------------+----------+-------------+
| peer_id | peer_type | peer_addr      | version | git_commit | start_time              | uptime   | active_time |
+---------+-----------+----------------+---------+------------+-------------------------+----------+-------------+
| 1       | DATANODE  | 127.0.0.1:4101 | 0.7.2   | 86ab3d9    | 2024-04-30T06:40:04.791 | 4s 478ms | 1s 467ms    |
| 2       | DATANODE  | 127.0.0.1:4102 | 0.7.2   | 86ab3d9    | 2024-04-30T06:40:06.098 | 3s 171ms | 162ms       |
| 3       | DATANODE  | 127.0.0.1:4103 | 0.7.2   | 86ab3d9    | 2024-04-30T06:40:07.425 | 1s 844ms | 1s 839ms    |
| -1      | FRONTEND  | 127.0.0.1:4001 | 0.7.2   | 86ab3d9    | 2024-04-30T06:40:08.815 | 454ms    | 47ms        |
| 0       | METASRV   | 127.0.0.1:3002 | unknown | unknown    |                         |          |             |
+---------+-----------+----------------+---------+------------+-------------------------+----------+-------------+