检索分析日志QueryLogRecord
更新时间:2025-02-07
描述
用户通过提交 Query 检索或分析指定日志集中的数据,每次只能查询一个日志集的内容。
Query 语句支持三种格式,形如:
match 检索语句
:需要开启全文索引或者字段索引,根据条件检索日志内容,例如match method:GET and status >= 400
SQL 分析语句
:执行 SQL 语句,例如select * limit 10
match 检索语句 | SQL 语句
:需要开启全文索引或者字段索引,在符合检索条件的结果集上执行 SQL 语句,检索语句和 SQL 语句通过竖线分隔,例如match method:GET and status >= 400 | select host, count(*) group by host
查询相关限制如下:
- 每个账户支持最多的查询并发数是 15 个
- 限制检索语句返回的结果集大小不超过 1000 条记录
- 限制分析语句返回的结果集大小不超过 100000 条记录
涉及检索的部分需要开启索引,检索语法请参考 检索语法
分析语句中可以不包括 from 子句,语法详情可以参考 SQL 语法
请求
- 请求语法
Plain Text
1GET /v1/logstore/{logStoreName}/logrecord?project={project} HTTP/1.1
2Host: <Endpoint>
3Authorization: <Authorization String>
- 请求头域
除公共请求头域外,无其它特殊头域。
- 请求参数
参数名称 | 类型 | 是否必须 | 参数位置 | 描述 |
---|---|---|---|---|
project | String | No | Query | 日志组名称 |
logStoreName | String | Yes | Path | 日志集名称 |
logStreamName | String | No | Query | 日志流名称,长度不能超过 192 字符,包含的字符仅限于:a-z, A-Z, 0-9, '_', '-', '.' '/' |
query | String | Yes | Query | 输入的 Query 语句 |
startDateTime | DateTime | Yes | Query | 起始日期时间,包括起始时间 |
endDateTime | DateTime | Yes | Query | 结束日期时间,不包括结束时间 |
marker | string | No | Query | 仅当 query 参数为检索语句时,该参数有效,表示查询开始行。默认值为空字符串。 |
limit | Int | No | Query | 仅当 query 参数为检索语句时,该参数有效,表示请求返回的最大日志条数。最小值为 0,最大值为 1000,默认值为 100。 |
sort | string | No | Query | 仅当 query 参数为检索语句时,该参数有效,表示日志的排序方式。desc:按照日志时间戳降序返回日志,asc:按照日志时间戳升序返回日志,默认值为 desc。 |
注:日期时间均为UTC时间,格式ISO8601,例如:2020-01-10T13:23:34Z,startDateTime 和 endDateTime 的范围约束的是 LogRecord 的 timestamp
响应
- 响应头域
除公共响应头域外,无其它特殊头域。
- 响应参数
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
nextMarker | string | 否 | 当query为检索语句时,如果还有日志数据,将会返回nextMarker字段,标记下一条位置,用于获取下一页日志数据;如果没有下一页,将不会返回该字段或者为空字符串 |
resultSet | Object | 是 | 返回符合条件的结果集 |
datasetScanInfo | Object | 是 | 扫描原始数据集的统计信息 |
其中,resultSet 代表此次查询获取的结果集,其结构定义如下:
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
queryType | string | 是 | 返回语句类型,match:检索语句,sql:包含分析语句 |
columns | List<string> | 是 | 包含的字段名称列表 |
columnTypes | List<string> | 是 | 包含的字段类型列表,和columns一一对应 |
rows | List<List<obj>> | 是 | 每一行对应columns中列名的值 |
tags | List<Map<string, string>> | 否 | 如果日志数据中有标签,那么和rows一一对应 |
datasetScanInfo 代表扫描原始数据集的统计信息,其结构定义如下:
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
statistics | Object | 是 | 数据集扫描的一些统计信息 |
statistics 代表本次查询所扫描的原始数据集的统计信息:
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
executionTimeInMs | Int | 是 | 本次查询花费的时间,单位毫秒 |
scanCount | Int | 是 | 本次查询所扫描的数据条数 |
scanBytes | Int | 是 | 本次查询所扫描的数据字节数 |
错误码
除了通用的错误码,还可能出现如下错误码:
错误码 | 错误消息 | 描述 | HTTP状态码 |
---|---|---|---|
QueryParseError | [msg] | msg 为具体的错误内容 | 400 |
InvalidParameter | Request param invalid: [param] | param 为错误的参数 | 400 |
LogStoreStopped | LogStore stopped | LogStore因为欠费而不能写入了 | 403 |
LogStoreNotFound | LogStore not found | LogStore 不存在 | 404 |
ExecutionTimeout | [msg] | msg 为具体的错误内容 | 408 |
LogStoreNotReady | LogStore not ready | LogStore还在初始化中 | 409 |
示例
检索语句
- 请求示例
Text
1GET /1/logstore/demo/logrecord?project=default&logStreamName=my-stream&marker=CNCetPuLMhD__4vWtPuLMg&startDateTime=2019-09-01T22:00:00Z&endDateTime=2019-09-01T23:00:00Z&query=match * HTTP/1.1
2Host: bls-log.bj.baidubce.com
3Authorization: bce-auth-v1/18717522d39411e9b721df098b0b908c/2019-09-10T07:00:20Z/1800/content-type;host;x-bce-date;x-bce-request-id/6a7cb6c9ac7ec156c805e55e7d0bcfc443b47feee97cf099c1c0d93a0b4c8304
- 响应示例
Text
1HTTP/1.1 200 OK
2Date: Thu, 12 Jun 2014 09:26:46 GMT
3Content-Type: application/json; charset=utf-8
4X-Bce-Request-Id:47e0ef1a-9bf2-11e1-9279-0100e8cf109a
5
6{
7 "resultSet": {
8 "queryType": "match",
9 "columns": [
10 "@timestamp",
11 "@seq",
12 "@stream",
13 "@raw"
14 ],
15 "columnTypes": [
16 "int",
17 "int",
18 "string",
19 "string"
20 ],
21 "rows": [
22 [
23 1721198514000,
24 28200116569702400,
25 "wang_test",
26 "{\"@raw\": \"hello test1004\", \"level\": \"info\"}"
27 ]
28 ]
29 },
30 "datasetScanInfo": {
31 "statistics": {
32 "executionTimeInMs": 23,
33 "scanCount": 23,
34 "scanBytes": 3159
35 }
36 }
37}
分析语句
- 请求示例
Text
1GET /v1/logstore/demo/logrecord?project=default&startDateTime=2019-09-01T22:00:00Z&endDateTime=2019-09-01T23:00:00Z&query=select level, count(*) group by level HTTP/1.1
2Host: bls-log.bj.baidubce.com
3Authorization: bce-auth-v1/18717522d39411e9b721df098b0b908c/2019-09-10T07:00:20Z/1800/content-type;host;x-bce-date;x-bce-request-id/6a7cb6c9ac7ec156c805e55e7d0bcfc443b47feee97cf099c1c0d93a0b4c8304
- 响应示例
Text
1HTTP/1.1 200 OK
2Date: Thu, 12 Jun 2014 09:26:46 GMT
3Content-Type: application/json; charset=utf-8
4X-Bce-Request-Id:47e0ef1a-9bf2-11e1-9279-0100e8cf109a
5
6{
7 "resultSet": {
8 "queryType": "sql",
9 "columns": [
10 "level",
11 "count(*)"
12 ],
13 "columnTypes": [
14 "string",
15 "int"
16 ],
17 "rows": [
18 [
19 "DEBUG",
20 32
21 ],
22 [
23 "INFO",
24 1
25 ]
26 ]
27 },
28 "datasetScanInfo": {
29 "statistics": {
30 "executionTimeInMs": 26,
31 "scanCount": 47,
32 "scanBytes": 979
33 }
34 }
35}