138
阿里云
GetLogs__日志库相关接口_API-Reference_日志服务-阿里云
GetLogs接口查询指定Project下某个Logstore中日志数据。还可以通过指定相关参数仅查询符合指定条件的日志数据。
当日志写入到Logstore中,日志服务的查询接口(GetHistograms和GetLogs)能够查到该日志的延时因写入日志类型不同而异。日志服务按日志时间戳把日志分为如下两类:
- 实时数据:日志中时间点为服务器当前时间点(-180秒,900秒],例如日志时间为UTC 2014-09-25 12:03:00,服务器收到时UTC 2014-09-25 12:05:00,则该日志被作为实时数据处理,一般出现在正常场景下。
- 历史数据:日志中时间点为服务器当前时间点[-7 x 86400秒, -180秒),例如日志时间为UTC 2014-09-25 12:00:00,服务器收到时UTC 2014-09-25 12:05:00,则该日志被作为历史数据处理,一般出现在补数据场景下。
其中实时数据写入至可查询的延时为1分钟。
请求语法
GET /logstores/<logstorename>?type=histogram&topic=<logtopic>&from=<starttime>&to=<endtime>&query=<querystring>&line=<linenum>&offset=<startindex>&reverse=<ture|false> HTTP/1.1
Authorization: <AuthorizationString>
Date: <GMT Date>
Host: <Project Endpoint>
x-log-bodyrawsize: 0
x-log-apiversion: 0.6.0
x-log-signaturemethod: hmac-sha1
请求参数
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
logstorename | 字符串 | 是 | 需要查询日志的Logstore名称。 |
type | 字符串 | 是 | 查询Logstore数据的类型,在GetLogs接口中该参数必须为"log"。 |
from | 整型 | 是 | 查询开始时间点(精度为秒,从1970-1-1 00:00:00 UTC计算起的秒数)。 |
to | 整型 | 是 | 查询结束时间点(精度为秒,从1970-1-1 00:00:00 UTC计算起的秒数)。 |
topic | 字符串 | 否 | 查询日志主题。 |
query | 字符串 | 否 | 查询表达式。关于查询表达式的详细语法请参考查询语法。 |
line | 整型 | 否 | 请求返回的最大日志条数。取值范围0~100,默认值为100。 |
offset | 整型 | 否 | 请求返回日志的起始点。取值范围0或正整数,默认值0。 |
reverse | 布尔型 | 否 | 是否按日志时间戳逆序返回日志。true表示逆序,false表示顺序,默认值为false。 |
请求头
GetLogs接口无特有请求头,关于日志服务API的公共请求头请参考公共请求头。
响应头
GetLogs接口无特有响应头,关于日志服务API的公共响应头请参考公共响应头。
响应元素
GetLogs请求成功,其响应Body会包括查询命中的日志数据。当需要查询的日志数据量非常大的时候,该接口的响应结果可能并不完整,所以响应元素中有专门成员表示请求返回结果是否完整。具体响应元素格式如下:
名称 | 类型 | 描述 |
---|---|---|
progress | 字符串 | 查询结果的状态。可以有Incomplete和Complete两个选值,表示本次是否完整。 |
count | 整型 | 当前查询结果的日志总数 |
logs | 数组 | 当前查询结果的日志原始数据,具体结构见下面描述 |
上表中的logs数组中的每个元素结构如下:
名称 | 类型 | 描述 |
---|---|---|
__time__ | 整型 | 日志的时间戳(精度为秒,从1970-1-1 00:00:00 UTC计算起的秒数)。 |
__source__ | 字符串 | 日志的来源,有写入日志时指定。 |
[content] | Key-Value对 | 日志原始内容,以Key-value对的形式组织。 |
细节描述
- 该接口中由请求参数from和to定义的时间区间遵循“左闭右开”原则,即该时间区间包括区间开始时间点,但不包括区间结束时间点。如果from和to的值相同,则为无效区间,函数直接返回错误。
- 如上所述,该接口一次调用必须要在限定时间内返回结果,每次查询只能扫描指定条数的日志量。如果一次请求需要处理的数据量非常大的时候,该请求会返回不完整的结果(并在返回结果中的progress成员标示是否完整)。如此同时,服务端会缓存15分钟内的查询结果。当查询请求的结果有部分被缓存命中,则服务端会在这次请求中继续扫描未被缓存命中的日志数据。为了减少用户合并多次查询结果的工作量,服务端会把缓存命中的查询结果与本次查询新命中的结果合并返回给用户。因此日志服务可以让用户通过以相同参数反复调用该接口来获取最终完整结果。因为用户查询涉及的日志数据量变化非常大,日志服务API无法预测需要调用多少次该接口而获取完整结果。所以需要用户通过检查每次请求的返回结果中progress成员状态值来确定是否需要继续。需要注意的是,每次重复调用该接口都会重新消耗相同数量的查询CU。
特有错误码
GetLogs接口除了可能返回日志服务API的通用错误码,还可能返回如下特有错误码:
HTTP状态码(Status Code) | 错误码(Error Code) | 错误消息(Error Message) | 描述(Description) |
---|---|---|---|
404 | LogStoreNotExist | logstore {Name} not exist. | 日志库(Logstore)不存在。 |
400 | InvalidTimeRange | request time range is invalid. | 请求的时间区间无效。 |
400 | InvalidQueryString | query string is invalided | 请求的查询字符串无效。 |
400 | InvalidOffset | offset is invalided | 请求的offset参数无效。 |
400 | InvalidLine | line is invalided | 请求的line参数无效。 |
400 | InvalidReverse | Reverse value is invalid | Reverse参数的值无效。 |
上表错误消息中{name}表示该部分会被具体的Logstore Name来替换。
示例
以杭州Region内名为big-game的Project为例,查询该Project内名为app_log的Logstore中,主题为groupA的日志数据。查询区间为2014-09-01 00:00:00到2014-09-01 22:00:00,查询关键字是"error",且从时间区间头开始查询,最多返回20条日志数据。
请求示例:
GET /logstores/app_log?type=log&topic=groupA&from=1409529600&to=1409608800&query=error&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
{
"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"
}
]
}
在这个响应示例中,"progress"成员状态为“Complete”,表明整个日志查询已经完成,返回结果为完整结果。在这次请求中共查询到2条符合条件的日志,且日志数据在“logs”成员中。如果响应结果中的“progress”成员状态为“Incomplete”,则需要重复相同请求以获得完整结果。
最后更新:2016-11-23 16:04:02
上一篇:
RetryShipperTask__日志库相关接口_API-Reference_日志服务-阿里云
下一篇:
GetHistograms__日志库相关接口_API-Reference_日志服务-阿里云
在华韩国创新中心,举办第四届 K-Demo Day China@阿里云总决赛
购买流程__购买指导_消息服务-阿里云
SSH 登录时出现如下错误:Disconnected:No supported authentication methods available__远程登录 (SSH)_Linux操作运维问题_云服务器 ECS-阿里云
RAM中可授权的专有网络资源类型__借助RAM实现子账号对主账号的VPC资源访问_API参考_专有网络 VPC-阿里云
解析记录数量限制__附录_API文档_云解析-阿里云
使用方法__开发者工具_容器服务-阿里云
创建函数__数据库开发_用户指南(RDBMS)_数据管理-阿里云
服务保障__产品简介_云数据库 RDS 版-阿里云
PageRank__示例程序_图模型_大数据计算服务-阿里云
PutBucketACL__关于Bucket的操作_API 参考_对象存储 OSS-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云