调用GetLogs接口查询指定Project下某个Logstore中的日志数据。

接口说明

  • 该接口中由请求参数from和to定义的时间区间遵循左闭右开原则,即该时间区间包括区间开始时间点,但不包括区间结束时间点。如果from和to的值相同,则为无效区间,函数直接返回错误。
  • 当查询涉及的日志数量变化非常大时,日志服务API无法预测需要调用多少次该接口来获取完整结果。所以需要您查看每次请求返回结果中的x-log-progress状态值,根据状态值来确定是否需要重复调用该接口来获取最终完整结果。每次重复调用该接口都会重新消耗相同数量的查询CU。
  • 当日志写入到Logstore中,日志服务的查询接口(GetHistograms和GetLogs)能够查到该日志的延时因写入日志类型不同而异。日志服务按日志时间戳把日志分为如下两类:
    • 实时数据:日志中时间点为服务器当前时间点(-180秒,900秒]。例如,日志时间为UTC 2014-09-25 12:03:00,服务器收到时为UTC 2014-09-25 12:05:00,则该日志被作为实时数据处理,一般出现在正常场景下。
    • 历史数据:日志中时间点为服务器当前时间点[-7x86400秒,-180秒)。例如,日志时间为UTC 2014-09-25 12:00:00,服务器收到时为UTC 2014-09-25 12:05:00,则该日志被作为历史数据处理,一般出现在补数据场景下。

      其中,实时数据写入至可查询的最大延时为3秒,99.9%情况下1秒内即可查询完毕。

请求头

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

请求语法

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

请求参数

名称 类型 位置 是否必选 示例值 描述
logstorename String Path nginx-demo

Logstore名称。

type String Query log

查询Logstore数据的类型。在该接口中固定取值为log

from Long Query 1627268185

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

to Long Query 1627269085

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

topic String Query topic

日志主题。默认值为双引号("")。更多信息,请参见日志主题(Topic)

query String Query status: 401 | SELECT remote_addr,COUNT(*) as pv GROUP by remote_addr ORDER by pv desc limit 5

查询语句或者分析语句。更多信息,请参见查询概述分析概述

在query参数的分析语句中加上set session parallel_sql=true;,表示使用SQL独享版。例如* | set session parallel_sql=true; select count(*) as pv

说明 当query参数中有分析语句(SQL语句)时,该接口的line参数和offset参数无效,建议设置为0,需通过SQL语句的LIMIT语法实现翻页。更多信息,请参见分页显示查询分析结果
line Long Query 100

仅当query参数为查询语句时,该参数有效,表示请求返回的最大日志条数。最小值为0,最大值为100,默认值为100。

offset Long Query 0

仅当query参数为查询语句时,该参数有效,表示查询开始行。默认值为0。

reverse Boolean Query false

用于指定返回结果是否按日志时间戳降序返回日志,精确到分钟级别。

  • true:按照日志时间戳降序返回日志。
  • false(默认值):按照日志时间戳升序返回日志。
注意
  • 当query参数为查询语句时,该参数reverse有效,用于指定返回日志排序方式。
  • 当query参数为查询和分析语句时,该参数reverse无效,由SQL分析语句中order by语法指定排序方式。如果order by为asc(默认),则为升序;如果order by为desc,则为降序。
powerSql Boolean Query false

是否使用SQL独享版。更多信息,请参见开启SQL独享版

  • true:使用SQL独享版。
  • false(默认值):使用SQL普通版。

除通过powerSql参数配置SQL独享版外,您还可以使用query参数。

返回数据

名称 类型 示例值 描述
x-log-progress String Complete

查询结果的状态,包括:

  • Complete:查询已经完成,返回结果为完整结果。
  • Incomplete:查询已经完成,但由于返回结果数据量大且结果时间区间跨度大,导致返回结果为不完整结果。需要重复请求以获得完整结果。
x-log-count Long 10000

返回的查询结果行数。

logs Object

返回日志列表。

__time__ Long 1627268185

日志的时间戳。Unix时间戳格式,表示从1970-1-1 00:00:00 UTC计算起的秒数。

__source__ String

日志的来源,写入日志时指定。例如产生该日志的机器的IP地址。

示例

请求示例

GET /logstores/{logstoreName}/index?type=log&from=1627268185&to=1627269085&topic=topic&query=status: 401 | SELECT remote_addr,COUNT(*) as pv GROUP by remote_addr ORDER by pv desc limit 5&line=100&offset=0&reverse=false&powerSql=false HTTP/1.1
Host:sls.aliyuncs.com
Content-Type:application/json

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<GetLogsResponse>
    <x-log-progress>Complete</x-log-progress>
    <x-log-count>10000</x-log-count>
    <logs>
        <__time__>1627268185</__time__>
        <__source__>无</__source__>
    </logs>
</GetLogsResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "x-log-progress" : "Complete",
  "x-log-count" : 10000,
  "logs" : {
    "__time__" : 1627268185,
    "__source__" : "无"
  }
}

错误码

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