调用GetHistograms接口查询指定Logstore中满足查询语法条件的日志分布情况,返回结果显示某时间区间中的日志条数(数量)。
接口说明
- 请求语法中Host由Project名称和日志服务Endpoint构成,您需要在Host中指定Project。
-
已创建并获取AccessKey。更多信息,请参见访问密钥。
阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维。RAM用户需具备操作日志服务资源的权限。具体操作,请参见创建RAM用户及授权。
- 已明确您查询日志所属的Project名称、所属地域、Logstore名称等。如何查询,请参见管理Project和管理Logstore。
- 查询日志前,已配置索引。具体操作,请参见创建索引。
- 参数query仅支持查询语句,不支持分析语句。关于查询语句的详细语法和使用限制,请参见查询概述。
- 该接口的响应中子区间划分方式是一直稳定的。如果您在请求查询的时间区间不变,则响应中子区间划分结果也不会改变。
- 当查询涉及的日志数量变化非常大时,日志服务API无法预测需要调用多少次该接口来获取完整结果。所以需要您查看每次请求返回结果中的progress成员状态值,根据成员状态值来确定是否需要重复调用该接口来获取最终完整结果。每次重复调用该接口都会重新消耗相同数量的查询CU。
- 从日志写入日志库到查询接口(GetHistograms和GetLogs)查到该日志,延时时长因写入日志类型不同而异。日志服务按日志时间戳把日志分为如下两类:
- 实时数据:日志中时间点为服务器当前时间点(-180秒,900秒]。例如,日志时间为UTC 2014-09-25 12:03:00,服务器收到时为UTC 2014-09-25 12:05:00,则该日志被视作实时数据处理。实时数据从写入到在日志查询界面查询到该数据的延迟为3秒。
-
历史数据:日志中时间点为服务器当前时间点[-7x86400秒,-180秒)。例如,日志时间为UTC 2014-09-25 12:00:00,服务器收到时为UTC 2014-09-25 12:05:00,则该日志被作为历史数据处理,一般出现在补数据场景下。
其中,实时数据写入至可查询的最大延时为3秒,99.9%情况下1秒内即可查询完毕。
- 日志服务提供Java SDK的GetHistograms查询使用示例。更多信息,请参见使用GetHistograms查询日志分布数量。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求头
该接口使用公共请求头,无特殊请求头。请参见公共请求参数文档。
请求语法
GET /logstores/{logstore}/index?type=histogram HTTP/1.1
请求参数
名称 | 类型 | 位置 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|---|
project | String | Host | 是 | ali-test-project | project 名称。 |
logstore | String | Path | 是 | test-logstore | Logstore名称。 |
from | Long | Query | 是 | 1409529600 | 子时间区间的开始时间点。UNIX时间戳格式,表示从1970-1-1 00:00:00 UTC计算起的秒数。 |
to | Long | Query | 是 | 1409569200 | 子时间区间的结束时间点。UNIX时间戳格式,表示从1970-1-1 00:00:00 UTC计算起的秒数。 |
topic | String | Query | 否 | topic | 日志主题。 |
query | String | Query | 否 | with_pack_meta | 查询语句。仅支持查询语句,不支持分析语句。关于查询语句的详细语法和使用限制,请参见查询概述。 |
返回数据
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
Server | String | nginx | 服务器名称。 |
Content-Type | String | application/json | 内容类型。 |
Content-Length | String | 0 | 内容长度。 |
Connection | String | close | 是否长链接。取值包括:
|
Date | String | Sun, 27 May 2018 08:25:04 GMT | 时间。 |
x-log-requestid | String | 5B0A6B60BB6EE39764D458B5 | 请求ID。 |
Array | |||
from | Long | 1409529600 | 子时间区间的开始时间点。UNIX时间戳格式,表示从1970-1-1 00:00:00 UTC计算起的秒数。 时间区间遵循“左闭右开”原则,即该时间区间包括区间开始时间点,但不包括区间结束时间点。如果from和to的值相同,则为无效区间,函数直接返回错误。 |
to | Long | 1409569200 | 子时间区间的结束时间点。UNIX时间戳格式,表示从1970-1-1 00:00:00 UTC计算起的秒数。 时间区间遵循“左闭右开”原则,即该时间区间包括区间开始时间点,但不包括区间结束时间点。如果from和to的值相同,则为无效区间,函数直接返回错误。 |
count | Long | 2 | 该子时间区间内查询到的日志条数。 |
progress | String | Complete | 当前查询结果在该子时间区间内的结果是否完整。 Complete:查询已经完成,返回结果为完整结果。 Incomplete:查询已经完成,返回结果为不完整结果,需要重复请求以获得完整结果。 |
示例
请求示例
GET /logstores/test-logstore/index?type=histogram?from=1409529600&to=1409569200&topic=topic&query=with_pack_meta HTTP/1.1
Host:ali-test-project.cn-hangzhou.log.aliyuncs.com
Content-Type:application/json
正常返回示例
JSON
格式
HTTP/1.1 200 OK
Content-Type:application/json
{
"from" : 1409529600,
"to" : 1409569200,
"count" : 2,
"progress" : "Complete"
}
错误码
访问错误中心查看更多错误码。
HttpStatusCode |
ErrorCode |
ErrorMessage |
错误码描述 |
---|---|---|---|
404 |
ProjectNotExist |
Project does not exist. |
Project不存在。 |
404 |
LogStoreNotExist |
Logstore does not exist. |
Logstore不存在。 |
400 |
InvalidTimeRange |
request time range is invalid. |
请求的时间区间无效。 |
400 |
InvalidQueryString |
query string is invalid. |
请求的查询语句无效。 |
500 |
InternalServerError |
Specified Server Error Message. |
内部服务调用错误。 |
更多信息,请参见通用错误码。