GetHistograms - 查询日志分布情况

调用GetHistograms接口查询指定Logstore中满足查询语法条件的日志分布情况。

接口说明

  • 请求语法中 Host 由 Project 名称和日志服务 Endpoint 构成,您需要在 Host 中指定 Project。
  • 该接口的响应中子区间划分方式是一直稳定的。如果您在请求查询的时间区间不变,则响应中子区间划分结果也不会改变。
  • 当查询涉及的日志数量变化非常大时,日志服务 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 秒内即可查询完毕。
说明 日志服务将日志时间(字段名称为__time__)和服务器收到时间(字段名称为__tag__:__receive_time__)做差,若其差值位于(-180 秒,900 秒]范围,则为实时数据,若其差位于[-7x86400 秒,-180 秒),则为历史数据。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

当前API暂无授权信息透出。

请求语法

GET /logstores/{logstore}/index?type=histogram HTTP/1.1

请求参数

名称类型必填描述示例值
projectstring

project 名称。

ali-test-project
logstorestring

Logstore 名称。

test-logstore
fromlong

子时间区间的开始时间点。UNIX 时间戳格式,表示从 1970-1-1 00:00:00 UTC 计算起的秒数。

1409529600
tolong

子时间区间的结束时间点。UNIX 时间戳格式,表示从 1970-1-1 00:00:00 UTC 计算起的秒数。

1409569200
topicstring

日志主题。

topic
querystring

查询语句。仅支持查询语句,不支持分析语句。关于查询语句的详细语法,请参见查询语法

with_pack_meta

返回参数

名称类型描述示例值
headersobject
Serverstring

服务器名称。

nginx
Content-Typestring

内容类型。

application/json
Content-Lengthstring

内容长度。

0
Connectionstring

是否长链接。取值包括:

  • close:不是长链接,则每个 HTTP 请求都会重新建立 TCP 连接。
  • keep-alive:长链接,TCP 连接建立后保持连接状态,节省连接所需时间和带宽。
close
Datestring

时间。

Sun, 27 May 2018 08:25:04 GMT
x-log-requestidstring

请求 ID。

5B0A6B60BB6EE39764D458B5
array<object>
object
fromlong

子时间区间的开始时间点。UNIX 时间戳格式,表示从 1970-1-1 00:00:00 UTC 计算起的秒数。

时间区间遵循“左闭右开”原则,即该时间区间包括区间开始时间点,但不包括区间结束时间点。如果 from 和 to 的值相同,则为无效区间,函数直接返回错误。

1409529600
tolong

子时间区间的结束时间点。UNIX 时间戳格式,表示从 1970-1-1 00:00:00 UTC 计算起的秒数。

时间区间遵循“左闭右开”原则,即该时间区间包括区间开始时间点,但不包括区间结束时间点。如果 from 和 to 的值相同,则为无效区间,函数直接返回错误。

1409569200
countlong

该子时间区间内查询到的日志条数。

2
progressstring

当前查询结果在该子时间区间内的结果是否完整。

Complete:查询已经完成,返回结果为完整结果。

Incomplete:查询已经完成,返回结果为不完整结果,需要重复请求以获得完整结果。

Complete

示例

正常返回示例

JSON格式

[
  {
    "from": 1409529600,
    "to": 1409569200,
    "count": 2,
    "progress": "Complete"
  }
]

错误码

访问错误中心查看更多错误码。

HttpStatusCodeErrorCodeErrorMessage错误码描述
404ProjectNotExistProject does not exist.Project 不存在。
404LogStoreNotExistLogstore does not exist.Logstore 不存在。
400InvalidTimeRangerequest time range is invalid.请求的时间区间无效。
400InvalidQueryStringquery string is invalid.请求的查询语句无效。
500InternalServerErrorSpecified Server Error Message.内部服务调用错误。

更多信息,请参见通用错误码