QueryLogRecord
更新时间:2024-09-27
描述
用户通过提交 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 个
- 限制检索语句返回的结果集大小不超过 100 条记录
- 限制分析语句返回的结果集大小不超过 100000 条记录
涉及检索的部分需要开启索引,检索语法请参考 检索语法
分析语句中可以不包括 from 子句,语法详情可以参考 SQL 语法
请求
- 请求语法
GET /v1/logstore/{logStoreName}/logrecord?project={project} HTTP/1.1
Host: <Endpoint>
Authorization: <Authorization String>
- 请求头域
除公共请求头域外,无其它特殊头域。
- 请求参数
参数名称 | 类型 | 是否必须 | 参数位置 | 描述 |
---|---|---|---|---|
project | String | No | Query | 日志组名称 |
logStoreName | String | Yes | Path | 日志集名称 |
logStreamName | String | No | Query | 日志流名称 |
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,默认值为 1000。 |
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 |
示例
检索语句
- 请求示例
GET /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
Host: bls-log.bj.baidubce.com
Authorization: bce-auth-v1/18717522d39411e9b721df098b0b908c/2019-09-10T07:00:20Z/1800/content-type;host;x-bce-date;x-bce-request-id/6a7cb6c9ac7ec156c805e55e7d0bcfc443b47feee97cf099c1c0d93a0b4c8304
- 响应示例
HTTP/1.1 200 OK
Date: Thu, 12 Jun 2014 09:26:46 GMT
Content-Type: application/json; charset=utf-8
X-Bce-Request-Id:47e0ef1a-9bf2-11e1-9279-0100e8cf109a
{
"resultSet": {
"queryType": "match",
"columns": [
"@timestamp",
"@seq",
"@stream",
"@raw"
],
"columnTypes": [
"int",
"int",
"string",
"string"
],
"rows": [
[
1721198514000,
28200116569702400,
"wang_test",
"{\"@raw\": \"hello test1004\", \"level\": \"info\"}"
]
]
},
"datasetScanInfo": {
"statistics": {
"executionTimeInMs": 23,
"scanCount": 23,
"scanBytes": 3159
}
}
}
分析语句
- 请求示例
GET /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
Host: bls-log.bj.baidubce.com
Authorization: bce-auth-v1/18717522d39411e9b721df098b0b908c/2019-09-10T07:00:20Z/1800/content-type;host;x-bce-date;x-bce-request-id/6a7cb6c9ac7ec156c805e55e7d0bcfc443b47feee97cf099c1c0d93a0b4c8304
- 响应示例
HTTP/1.1 200 OK
Date: Thu, 12 Jun 2014 09:26:46 GMT
Content-Type: application/json; charset=utf-8
X-Bce-Request-Id:47e0ef1a-9bf2-11e1-9279-0100e8cf109a
{
"resultSet": {
"queryType": "sql",
"columns": [
"level",
"count(*)"
],
"columnTypes": [
"string",
"int"
],
"rows": [
[
"DEBUG",
32
],
[
"INFO",
1
]
]
},
"datasetScanInfo": {
"statistics": {
"executionTimeInMs": 26,
"scanCount": 47,
"scanBytes": 979
}
}
}