QueryLogHistogram
更新时间:2024-09-27
描述
用户通过提交 Query 检索语句,分析数据量统计直方图,每次只能查询一个日志集的内容。
Query 语句支持三种格式,形如:
- match 检索语句:根据检索条件,返回满足检索条件的日志直方图统计
- SQL 语句:返回全部日志的直方图统计
- match 检索语句 | SQL 语句:根据检索条件,返回满足检索条件的日志直方图统计 查询相关限制如下:
- 日志集必须开启索引,若未开启索引,直方图查询返回报错
- 查询时间上限60秒,超过60秒未统计出结果会返回报错
检索语法请参考 检索语法
请求
- 请求语法
GET /v2/logstore/{logStoreName}/loghistogram?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 | 起始日期时间,UTC时间,包括起始时间 |
endDateTime | DateTime | Yes | Query | 结束日期时间,UTC时间,不包括结束时间 |
注:日期时间均为UTC时间,格式ISO8601,例如:2020-01-10T13:23:34Z,startDateTime 和 endDateTime 的范围约束的是 LogRecord 的 timestamp
响应
- 响应头域
除公共响应头域外,无其它特殊头域。
- 响应参数
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
searchInfo | Object | 是 | 检索汇总信息 |
searchStatistic | Object | 是 | 直方图统计信息 |
其中,searchInfo 包括了此次查询的检索信息汇总统计,其结构定义如下:
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
queryType | string | 是 | 返回语句类型,match:检索语句,sql:分析语句,match_and_sql:包含检索和分析语句 |
took | Int | 是 | 统计耗时,单位毫秒 |
hits | Int | 是 | 匹配上的总日志条数 |
searchStatistic 包括这本次查询的直方图统计信息,其结构定义如下:
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
interval | Int | 是 | 直方图统计单个区间大小,统计区间的毫秒数 |
startTime | DateTime | 是 | 直方图统计的开始时间,是请求中的startDateTime |
endTime | DateTime | 是 | 直方图统计的结束时间,是请求中的endDateTime |
histogram | List<Bucket> | 是 | 直方图统计区间的数据条数,直方图按区间大小,顺序分割排列,各个时间区间的日志数量 |
注:日期时间均为UTC时间,格式ISO8601,例如:2020-01-10T13:23:34Z
其中 Bucket 包含直方图统计某个区间的数据条数,其结构定义如下:
参数名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
key | Int | 是 | 时间区间的开始时间戳,第直方图的第一个时间戳是startDateTime按interval向前取整,直方图的最后一个时间戳是endDateTime按interval向前取整,直方图划分同样会规整划分,统计包括开始边界,不包括结束边界,即count [start,end) |
doc_count | 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 /v2/logstore/demo/loghistogram?project=default&logStreamName=my-stream&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
Content-Type: application/json; charset=utf-8
- 响应示例
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
{
"searchInfo":{
"queryType":"match",
"took":1320,
"hits":86354
},
"searchStatistic":{
"interval":60000,
"startTime":"2019-12-01T00:00:00Z",
"endTime":"2019-12-01T00:00:00Z",
"histogram":[
{
"key":1704763500000,
"doc_count":316860
},
{
"key":1704763800000,
"doc_count":769180
},
{
"key":1704764100000,
"doc_count":788788
}
]
}
}