Query Profile Action

Request

GET /rest/v2/manager/query/query_info

GET /rest/v2/manager/query/trace/{trace_id}

GET /rest/v2/manager/query/sql/{query_id}

GET /rest/v2/manager/query/profile/text/{query_id}

GET /rest/v2/manager/query/profile/graph/{query_id}

GET /rest/v2/manager/query/profile/json/{query_id}

GET /rest/v2/manager/query/profile/fragments/{query_id}

GET /rest/v2/manager/query/current_queries

GET /rest/v2/manager/query/kill/{query_id}

获取查询信息

GET /rest/v2/manager/query/query_info

Description

可获取集群所有 fe 节点 select 查询信息。

Query parameters

  • query_id

可选,指定返回查询的queryID, 默认返回所有查询的信息。 - search

可选,指定返回包含字符串的查询信息,目前仅进行字符串匹配。 - is_all_node

可选,若为 true 则返回所有fe节点的查询信息,若为 false 则返回当前fe节点的查询信息。默认为true。

Response

1. {
2. "msg": "success",
3. "code": 0,
4. "data": {
5. "column_names": [
6. "Query ID",
7. "FE节点",
8. "查询用户",
9. "执行数据库",
10. "Sql",
11. "查询类型",
12. "开始时间",
13. "结束时间",
14. "执行时长",
15. "状态"
16. ],
17. "rows": [
18. [
19. ...
20. ]
21. ]
22. },
23. "count": 0
24. }

SinceVersion 1.2

Admin 和 Root 用户可以查看所有 Query。普通用户仅能查看自己发送的 Query。

Examples

1. GET /rest/v2/manager/query/query_info

3. {
4. "msg": "success",
5. "code": 0,
6. "data": {
7. "column_names": [
8. "Query ID",
9. "FE节点",
10. "查询用户",
11. "执行数据库",
12. "Sql",
13. "查询类型",
14. "开始时间",
15. "结束时间",
16. "执行时长",
17. "状态"
18. ],
19. "rows": [
20. [
21. "d7c93d9275334c35-9e6ac5f295a7134b",
22. "127.0.0.1:8030",
23. "root",
24. "default_cluster:testdb",
25. "select c.id, c.name, p.age, p.phone, c.date, c.cost from cost c join people p on c.id = p.id where p.age > 20 order by c.id",
26. "Query",
27. "2021-07-29 16:59:12",
28. "2021-07-29 16:59:12",
29. "109ms",
30. "EOF"
31. ]
32. ]
33. },
34. "count": 0
35. }

通过 Trace Id 获取 Query Id

GET /rest/v2/manager/query/trace_id/{trace_id}

Description

通过 Trace Id 获取 Query Id.

在执行一个 Query 前,先设置一个唯一的 trace id:

set session_context="trace_id:your_trace_id";

在同一个 Session 链接内执行 Query 后,可以通过 trace id 获取 query id。

Path parameters

  • {trace_id}

用户设置的 trace id.

Query parameters

Response

1. {
2. "msg": "success",
3. "code": 0,
4. "data": "fb1d9737de914af1-a498d5c5dec638d3",
5. "count": 0
6. }

SinceVersion 1.2

Admin 和 Root 用户可以查看所有 Query。普通用户仅能查看自己发送的 Query。若指定 trace id 不存在或无权限,则返回 Bad Request:

1. {
2. "msg": "Bad Request",
3. "code": 403,
4. "data": "error messages",
5. "count": 0
6. }

获取指定查询的sql和文本profile

GET /rest/v2/manager/query/sql/{query_id}

GET /rest/v2/manager/query/profile/text/{query_id}

Description

用于获取指定query id的sql和profile文本。

Path parameters

  • query_id

query id。

Query parameters

  • is_all_node

可选,若为 true 则在所有fe节点中查询指定query id的信息,若为 false 则在当前连接的fe节点中查询指定query id的信息。默认为true。

Response

1. {
2. "msg": "success",
3. "code": 0,
4. "data": {
5. "sql": ""
6. },
7. "count": 0
8. }
1. {
2. "msg": "success",
3. "code": 0,
4. "data": {
5. "profile": ""
6. },
7. "count": 0
8. }

SinceVersion 1.2

Admin 和 Root 用户可以查看所有 Query。普通用户仅能查看自己发送的 Query。若指定 query id 不存在或无权限,则返回 Bad Request:

1. {
2. "msg": "Bad Request",
3. "code": 403,
4. "data": "error messages",
5. "count": 0
6. }

Examples

  1. 获取 sql:

``` 1. GET /rest/v2/manager/query/sql/d7c93d9275334c35-9e6ac5f295a7134b

  1. Response:
  2. {
  3. "msg": "success",
  4. "code": 0,
  5. "data": {
  6. "sql": "select c.id, c.name, p.age, p.phone, c.date, c.cost from cost c join people p on c.id = p.id where p.age > 20 order by c.id"
  7. },
  8. "count": 0
  9. } ```

获取指定查询fragment和instance信息

GET /rest/v2/manager/query/profile/fragments/{query_id}

Description

用于获取指定query id的fragment名称,instance id、主机IP及端口和执行时长。

Path parameters

  • query_id

query id。

Query parameters

  • is_all_node

可选,若为 true 则在所有fe节点中查询指定query id的信息,若为 false 则在当前连接的fe节点中查询指定query id的信息。默认为true。

Response

1. {
2. "msg": "success",
3. "code": 0,
4. "data": [
5. {
6. "fragment_id": "",
7. "time": "",
8. "instance_id": {
9. "": {
10. "host": "",
11. "active_time": ""
12. }
13. }
14. }
15. ],
16. "count": 0
17. }

SinceVersion 1.2

Admin 和 Root 用户可以查看所有 Query。普通用户仅能查看自己发送的 Query。若指定 query id 不存在或无权限,则返回 Bad Request:

1. {
2. "msg": "Bad Request",
3. "code": 403,
4. "data": "error messages",
5. "count": 0
6. }

Examples

1. GET /rest/v2/manager/query/profile/fragments/d7c93d9275334c35-9e6ac5f295a7134b

3. Response:
4. {
5. "msg": "success",
6. "code": 0,
7. "data": [
8. {
9. "fragment_id": "0",
10. "time": "36.169ms",
11. "instance_id": {
12. "d7c93d9275334c35-9e6ac5f295a7134e": {
13. "host": "172.19.0.4:9060",
14. "active_time": "36.169ms"
15. }
16. }
17. },
18. {
19. "fragment_id": "1",
20. "time": "20.710ms",
21. "instance_id": {
22. "d7c93d9275334c35-9e6ac5f295a7134c": {
23. "host": "172.19.0.5:9060",
24. "active_time": "20.710ms"
25. }
26. }
27. },
28. {
29. "fragment_id": "2",
30. "time": "7.83ms",
31. "instance_id": {
32. "d7c93d9275334c35-9e6ac5f295a7134d": {
33. "host": "172.19.0.6:9060",
34. "active_time": "7.83ms"
35. },
36. "d7c93d9275334c35-9e6ac5f295a7134f": {
37. "host": "172.19.0.7:9060",
38. "active_time": "10.873ms"
39. }
40. }
41. }
42. ],
43. "count": 0
44. }

获取指定query id树状profile信息

GET /rest/v2/manager/query/profile/graph/{query_id}

Description

获取指定query id树状profile信息,同 show query profile 指令。

Path parameters

  • query_id

query id。

Query parameters

  • fragment_id 和 instance_id

可选,这两个参数需同时指定或同时不指定。 同时不指定则返回profile 简易树形图,相当于show query profile '/query_id'; 同时指定则返回指定instance详细profile树形图,相当于show query profile '/query_id/fragment_id/instance_id'. - is_all_node

可选,若为 true 则在所有fe节点中查询指定query id的信息,若为 false 则在当前连接的fe节点中查询指定query id的信息。默认为true。

Response

1. {
2. "msg": "success",
3. "code": 0,
4. "data": {
5. "graph":""
6. },
7. "count": 0
8. }

SinceVersion 1.2

Admin 和 Root 用户可以查看所有 Query。普通用户仅能查看自己发送的 Query。若指定 query id 不存在或无权限,则返回 Bad Request:

1. {
2. "msg": "Bad Request",
3. "code": 403,
4. "data": "error messages",
5. "count": 0
6. }

正在执行的query

GET /rest/v2/manager/query/current_queries

Description

同 show proc "/current_query_stmts",返回当前正在执行的 query

Path parameters

Query parameters

  • is_all_node

可选,若为 true 则返回所有FE节点当前正在执行的 query 信息。默认为 true。

Response

1. {
2. "msg": "success",
3. "code": 0,
4. "data": {
5. "columnNames": ["Frontend", "QueryId", "ConnectionId", "Database", "User", "ExecTime", "SqlHash", "Statement"],
6. "rows": [
7. ["172.19.0.3", "108e47ab438a4560-ab1651d16c036491", "2", "", "root", "6074", "1a35f62f4b14b9d7961b057b77c3102f", "select sleep(60)"],
8. ["172.19.0.11", "3606cad4e34b49c6-867bf6862cacc645", "3", "", "root", "9306", "1a35f62f4b14b9d7961b057b77c3102f", "select sleep(60)"]
9. ]
10. },
11. "count": 0
12. }

取消query

POST /rest/v2/manager/query/kill/{query_id}

Description

取消执行连接中正在执行的 query

Path parameters

  • {query_id}

query id. 你可以通过 trace_id 接口,获取 query id。

Query parameters

Response

1. {
2. "msg": "success",
3. "code": 0,
4. "data": null,
5. "count": 0
6. }