GetProjectLogs是Project级别的SQL查询接口。

请求语法

GetProjectLogs接口请求语法如下。
GET /logs query=SELECT avg(latency) as avg_latency FROM  where __date__ >'2017-09-01 00:00:00' and __date__ < '2017-09-02 00:00:00'
Authorization: <AuthorizationString>
Date: Wed, 3 Sept. 2014 08:33:46 GMT
Host: big-game.cn-hangzhou.log.aliyuncs.com
x-log-bodyrawsize: 0
x-log-apiversion: 0.6.0
x-log-signaturemethod: hmac-sha1

请求参数

  • 请求头

    GetProjectLogs接口无特有请求头。关于Log Service API的公共请求头,请参见公共请求头

  • 请求参数
    属性名称 类型 是否必须 描述
    query string 查询SQL条件。

响应参数

  • 响应头
    关于Log Service API的公共响应头,请参见公共响应头。该参数的特有响应参数如下所示。
    名称 类型 描述
    x-log-progress 字符串 查询结果的状态。可以有 Incomplete 和 Complete 两个选值,表示本次是否完整。
    x-log-count 整型 当前查询结果的日志总数。
    x-log-processed-rows 整型 本次计算处理的行数。
    x-log-elapsed-millisecond 整型 本次计算消耗的毫秒时间。
  • 响应参数
    GetProjectLogs的响应body是一个数组,数组中每个元素是一条日志结果。
    名称 类型 描述
    __time__ 整型 日志的时间戳,精度为秒,从1970-1-1 00:00:00 UTC开始计算的秒数。
    __source__ 字符串 日志的来源,写入日志时指定。
    [content] Key-Value对 日志原始内容。

细节描述

  • 该接口的query是一个标准的SQL查询语句。
  • 查询的Project在请求的域名中指定。
  • 查询的Logstore在查询语句的from条件中指定。可以将Logstore看做是SQL中的表。
  • 在查询的SQL条件中必须指定要查询的时间范围,时间范围由__date__(timestamp类型)或__time__(int类型,单位是unix_time)来指定。
  • 当查询涉及的日志数量变化非常大时,日志服务API无法预测需要调用多少次该接口来获取完整结果。所以需要您查看每次请求返回结果中的x-log-progress成员状态值,根据成员状态值来确定是否需要重复调用该接口来获取最终完整结果。需要注意的是,每次重复调用该接口都会重新消耗相同数量的查询 CU。

错误码

GetProjectLogs接口除了返回Log Service API的通用错误码,还可能返回如下特有错误码。

HTTP状态码(Status Code) 错误码(Error Code) 错误消息(Error Message) 描述(Description)
400 ParameterInvalid parameter is invalid 请求的参数错误,详情请参见具体的错误message。

示例

以杭州地域内名为big-game的Project为例,查询该Project内名为app_log的Logstore中,主题为groupA的日志数据。查询区间为2014-09-01 00:00:00到2014-09-01 22:00:00,查询关键字为error,且从时间区间头开始查询,最多返回20条日志数据。
  • 请求示例
    GET /logs/?query=SELECT * FROM <logStoreName> where __line__ = 'abc' and __date__ >'2017-09-01 00:00:00' and __date__ < '2017-09-02 00:00:00'&line=20&offset=0 HTTP/1.1
    Authorization: <AuthorizationString>
    Date: Wed, 3 Sept. 2014 08:33:46 GMT
    Host: big-game.cn-hangzhou.log.aliyuncs.com
    x-log-bodyrawsize: 0
    x-log-apiversion: 0.4.0
    x-log-signaturemethod: hmac-sha1
  • 响应示例
    HTTP/1.1 200 OK
    Content-MD5: 36F9F7F0339BEAF571581AF1B0AAAFB5
    Content-Type: application/json
    Content-Length: 269
    Date: Wed, 3 Sept. 2014 08:33:47 GMT
    x-log-requestid: efag01234-12341-15432f
    x-log-progress : Complete
    x-log-count : 10000
    x-log-processed-rows: 10000
    x-log-elapsed-millisecond:5
    {
        "progress": "Complete",
        "count": 2,
        "logs": [
            {
                "__time__": 1409529660,
                "__source__": "10.237.0.17",
                "Key1": "error",
                "Key2": "Value2"
            },
            {
                "__time__": 1409529680,
                "__source__": "10.237.0.18",
                "Key3": "error",
                "Key4": "Value4"
            }
        ]
    }

    响应示例中,x-log-progress的值为Complete,表明整个日志查询已经完成,返回结果为完整结果。本次请求共查询到2条符合条件的日志数据。如果响应结果中的x-log-progress的值为Incomplete,则需要重复请求以获得完整结果。