查询数据库慢日志(新版)
接口说明
查询数据库慢日志信息,支持关键字、数据库表名等搜索功能。
约束说明
- 如果原始日志中本身包含关键字(&&、||、AND、OR、NOT、*、?、:、>、<、=、>=、<=),则不支持使用这些关键字来搜索日志。
- 每页查询最大限制100条。
- 慢日志最多保存30天。
|
名称 |
类型 |
IN |
是否必选 |
描述 |
|---|---|---|---|---|
|
project_id |
string |
path |
是 |
租户在某一region下的project ID。请参考获取项目ID章节获取项目编号。 |
|
instance_id |
string |
path |
是 |
请求参数
|
名称 |
类型 |
IN |
是否必选 |
描述 |
|---|---|---|---|---|
|
X-Auth-Token |
string |
header |
是 |
用户Token。 |
|
名称 |
类型 |
是否必选 |
说明 |
|---|---|---|---|
|
start_time |
String |
是 |
开始时间,格式为“yyyy-mm-ddThh:mm:ssZ”。 其中,T指某个时间的开始,Z指时区偏移量。
注意:
开始时间不得早于当前时间30天。 |
|
end_time |
String |
是 |
结束时间,格式为“yyyy-mm-ddThh:mm:ssZ”。 其中,T指某个时间的开始;Z指时区偏移量。
说明:
结束时间不能晚于当前时间。 |
|
limit |
Integer |
是 |
表示每次查询的日志条数,最大限制100条。 |
|
line_num |
String |
否 |
日志单行序列号,第一次查询时不需要此参数,下一页查询时需要使用,可从上一次查询的返回信息中获取。
说明:
当次查询从line_num的下一条日志开始查询,不包含当前line_num日志。 |
|
operate_type |
String |
否 |
语句类型,取空值,表示查询所有语句类型。 取值如下:
|
|
search_type |
String |
否 |
日志查询方式,需结合line_num使用, 以line_num的日志为起始点:
枚举值:
|
|
node_id |
String |
否 |
节点ID,请参考表9的“id”。 取空值,表示查询实例下所有允许查询的节点。 允许查询的节点如下: 集群实例下面的 shard节点。 副本集实例下面的所有节点。 |
|
keywords |
Array of strings |
否 |
根据多个关键字搜索日志全文,表示同时匹配所有关键字。
|
|
database_keywords |
Array of strings |
否 |
根据多个数据库关键字模糊搜索日志,表示匹配至少一个关键字。
|
|
collection_keywords |
Array of strings |
否 |
根据多个数据库表名关键字模糊搜索日志,表示匹配至少一个关键字。
|
|
max_cost_time |
Integer |
否 |
支持根据最大执行时间范围查找日志。 单位:ms。 |
|
min_cost_time |
Integer |
否 |
支持根据最小执行时间范围查找日志。 单位:ms。 |
|
max_docs_scanned |
Integer |
否 |
支持根据最大扫描文档范围查找日志。 |
|
min_docs_scanned |
Integer |
否 |
支持根据最小扫描文档范围查找日志。 |
|
max_docs_returned |
Integer |
否 |
支持根据最大返回文档范围查找日志。 |
|
min_docs_returned |
Integer |
否 |
支持根据最小返回文档范围查找日志。 |
|
min_keys_examined |
Integer |
否 |
最小索引扫描个数。
|
|
max_keys_examined |
Integer |
否 |
最大索引扫描个数。
|
|
username_keywords |
Array of strings |
否 |
根据多个用户名关键字模糊搜索日志,表示匹配至少一个关键字。
|
|
client_ip_keywords |
Array of strings |
否 |
根据多个客户端IP关键字模糊搜索日志,表示匹配至少一个关键字。
|
- 请求示例
{ "start_time" : "2022-09-06T10:41:14+0800", "end_time" : "2022-09-16T10:41:14+0800", "limit" : 100, "line_num" : "1595659490239433658", "operate_type" : "query", "search_type":"forwards", "node_id" : "dbd0b65ed0c34125a0b04d4e5ba67e66no02", "keywords" : [ "response", "oplog" ], "database_keywords" : [ "testDB" ], "collection_keywords" : [ "testCollection" ], "max_cost_time" : 100, "min_cost_time" : 50, "max_docs_scanned" : 100, "min_docs_scanned" : 50, "max_docs_returned" : 100, "min_docs_returned" : 50, "min_keys_examined" : 10, "max_keys_examined" : 100, "username_keywords" : [ "user1", "user2" ], "client_ip_keywords" : [ "211.", "172.12." ] }
响应参数
|
名称 |
参数类型 |
说明 |
|---|---|---|
|
slow_logs |
Array of objects |
慢日志具体信息。 详情请参见表5。 |
|
名称 |
参数类型 |
说明 |
|---|---|---|
|
node_name |
String |
节点名称。 |
|
node_id |
String |
节点ID。 |
|
whole_message |
String |
执行语句。 |
|
operate_type |
String |
语句类型。 |
|
cost_time |
Integer |
执行时间。 单位:ms。 |
|
lock_time |
Integer |
等待锁时间。 单位:us。 |
|
docs_returned |
Integer |
返回的文档数。 |
|
docs_scanned |
Integer |
扫描的文档数。 |
|
database |
String |
日志所属的数据库库名。 |
|
collection |
String |
日志所属的数据库表名。 |
|
log_time |
String |
日志产生时间,UTC时间。格式为“yyyy-mm-ddThh:mm:ssZ”。其中,T指某个时间的开始;Z指时区偏移量。 |
|
line_num |
String |
日志单行序列号。 |
|
keys_examined |
Integer |
扫描的索引数。 |
|
username |
String |
用户名。 |
|
client_ip |
String |
客户端IP。 |
- 响应示例
{ "slow_logs" : [ { "node_name" : "Test_replica_node_2", "node_id" : "dbd0b65ed0c34125a0b04d4e5ba67e66no02", "whole_message" : "{\"responseLength\": 230, \"ts\": {\"$date\": 1605480486800}, \"ninserted\": 1, \"locks\": {\"oplog\": {\"acquireCount\": {\"w\": 1}}, \"Global\": {\"acquireCount\": {\"r\": 3, \"w\": 2}}, \"Collection\": {\"acquireCount\": {\"w\": 2}}, \"Database\": {\"acquireCount\": {\"w\": 3}}}, \"numYield\": 0, \"ns\": \"geographySpace.tiles\"}", "operate_type" : "query", "cost_time" : 60, "lock_time" : 10, "docs_returned" : 60, "docs_scanned" : 70, "database" : "testDB", "collection" : "testCollection", "log_time" : "2022-09-15T22:49:38.643000Z", "line_num" : "1595659490239433659", "keys_examined" : 15, "client_ip" : "172.89.10.11", "username" : "user1" } ] }
状态码
详情请参见状态码。
错误码
详情请参见错误码。