调用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秒),则为历史数据。

请求头

该接口使用公共请求头,无特殊请求头。请参见公共请求参数文档。

请求语法

GET /logstores/{logstore}/index HTTP/1.1

请求参数

名称 类型 位置 是否必选 示例值 描述
projectName String Host big-game

Project名称。

logstoreName String Host app_log

Logstore名称。

type String Host histogram

Logstore中数据的类型。该接口中固定取值为histogram。

from Long Host 1409529600

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

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

to Long Host 1409608800

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

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

topic String Host groupA

日志主题。

query String Host error

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

返回数据

名称 类型 示例值 描述
Server String nginx

服务器名称。

Content-Type String application/json

内容类型。

Content-Length String 0

内容长度。

Connection String close

是否长链接。取值包括:

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

RFC 2616中定义的HTTP响应内容的MD5值。Body经过MD5计算后的字符串,为大写字符串。

Date String Sun, 27 May 2018 08:25:04 GMT

时间。

x-log-requestid String 5B0A6B60BB6EE39764D458B5

请求ID。

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/logstoreName HTTP/1.1
Host:big-game.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.

内部服务调用错误。

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