727
阿里云
PostLogStoreLogs__日志库相关接口_API-Reference_日志服务-阿里云
PostLogStoreLogs
向指定LogStore写入日志数据。目前仅支持写入PB格式LogGroup日志数据。写入时有两种模式:
- 负载均衡模式(LoadBalance): 自动根据Logstore下所有可写的Shard进行负载均衡写入。该方法对写入可用性较高(SLA: 99.95%),适合写入与消费数据与Shard无关场景,例如不保序
- 根据Key路由Shard模式(KeyHash):写入时需要传递一个Key,服务端自动根据Key选择当前符合该Key区间Shard写入。例如可以将某个生产者(例如instance)根据名称Hash到固定Shard上,这样就能保证写入与消费在该Shard上是严格有序的(在Merge/Split过程中能够严格保证对于Key在一个时间点只会出现在一个Shard上,参见Shard数据模型)。
请求语法
负载均衡写入模式
POST /logstores/<logstorename>/shards/lb HTTP/1.1
Authorization: <AuthorizationString>
Content-Type: application/x-protobuf
Content-Length: <Content Length>
Content-MD5: <Content MD5>
Date: <GMT Date>
Host: <Project Endpoint>
x-log-apiversion: 0.6.0
x-log-bodyrawsize: <BodyRawSize>
x-log-compresstype: lz4
x-log-signaturemethod: hmac-sha1
<PB格式日志压缩数据>
根据Key路由Shard模式
在header中增加x-log-hashkey,用来判断落在哪个shard的range中。该参数可选参数,不填情况下自动切换负载均衡写模式。
POST /logstores/<logstorename>/shards/lb HTTP/1.1
Authorization: <AuthorizationString>
Content-Type: application/x-protobuf
Content-Length: <Content Length>
Content-MD5: <Content MD5>
Date: <GMT Date>
Host: <Project Endpoint>
x-log-apiversion: 0.6.0
x-log-bodyrawsize: <BodyRawSize>
x-log-compresstype: lz4
x-log-hashkey : 14d2f850ad6ea48e46e4547edbbb27e0
x-log-signaturemethod: hmac-sha1
<PB格式日志压缩数据>
请求参数
名称 | 类型 | 必选 | 描述 |
---|---|---|---|
logstorename | 字符串 | 是 | 需要写入日志的Logstore名称。 |
请求头
根据Key路由Shard模式下需要增加x-log-hashkey请求头(参见上述示例),关于API的公共请求头请参考公共请求头。
响应头
无特有响应头,关于API的公共响应头请参考公共响应头。
响应元素
成功后无任何响应元素。
细节描述
- PutLogs接口每次可以写入的日志数据量上限为3MB或者4096条。只要日志数据量超过这两条上限中的任意一条则整个请求失败,且无任何日志数据成功写入。
- 服务端会对每次PutLogs写入的日志数据做格式检查(具体日志格式要求请参考[核心概念](core.md),只要日志数据中有任何一条日志不符合规范,则整个请求失败,且无任何日志数据成功写入。
- 服务端会对每次PutLogs写入的日志数据时间戳做检查。目前只接受日志数据时间戳在服务端当前处理时间前后[-7x24小时, +15分钟]小时范围内的日志。如果日志数据内有任何一条日志的时间戳不在该时间范围内,则整个请求失败,且无任何日志数据成功写入。
错误码
除了返回API的通用错误码,还可能返回如下特有错误码:
HTTP状态码(Status Code) | 错误码(Error Code) | 错误消息(Error Message) | 描述(Description) |
---|---|---|---|
400 | PostBodyInvalid | Protobuffer content cannot be parsed. | Protobuffer内容不能够解析。 |
400 | InvalidTimestamp | Invalid timestamps are in logs. | 日志内容中有无效的日志时间戳。 |
400 | InvalidEncoding | Non-UTF8 charactors are in logs. | 日志内容中有非UTF8字符。 |
400 | InvalidKey | Invalid keys are in logs. | 日志内容中有无效的”key”。 |
400 | PostBodyTooLarge | Logs must be less than 3M and 4096 lines. | 日志内容包含的日志必须小于3MB和4096条。 |
400 | PostBodyUncompressError | Body is uncompressed fail. | 日志内容解压失败。 |
499 | PostBodyInvalid | The post data time is out of range | 日志中时间范围不再[-7*24Hour, +15Min] 有效范围内。 |
404 | LogStoreNotExist | logstore {Name} not exist. | 日志库(Logstore)不存在。 |
上表错误消息中{name}表示该部分会被具体的Logstore Name来替换。
示例
请求示例:
POST /logstores/sls-test-logstore
{
"Content-Length": 118,
"Content-Type":"application/x-protobuf",
"x-log-bodyrawsize":1356,
"Host": "ali-test-project.cn-hangzhou-devcommon-intranet.sls.aliyuncs.com",
"Content-MD5":"6554BD042149C844761C2C094A8FECCE",
"Date":"Thu, 12 Nov 2015 06:54:26 GMT",
"x-log-apiversion": "0.6.0",
"x-log-compresstype":"lz4"
"x-log-signaturemethod": "hmac-sha1",
"Authorization":"LOG 94to3z418yupi6ikawqqd370:zLyKtgyGpwyv7ntXZs2dY2wWIg4="
}
<PB格式日志使用Lz4压缩后的二进制数据>
响应示例:
Header
{
"date": "Thu, 12 Nov 2015 06:53:03 GMT",
"connection": "close",
"x-log-requestid": "5644160399248C060600D216",
"content-length": "0",
"server": "nginx/1.6.1"
}
最后更新:2016-12-12 16:39:39
上一篇:
PullLogs__日志库相关接口_API-Reference_日志服务-阿里云
下一篇:
GetShipperStatus__日志库相关接口_API-Reference_日志服务-阿里云
日志库(Logstore)__基础概念_用户指南_日志服务-阿里云
认证考试学习方法__大数据认证(ACP级)_如何获得专业技术认证?_专业技术认证-阿里云
GetRole__角色管理接口_RAM API文档_访问控制-阿里云
新建自定义路由__路由表相关接口_API 参考_云服务器 ECS-阿里云
基本参数__图片水印_老版图片服务手册_对象存储 OSS-阿里云
删除端口转发规则__NAT网关相关接口_API 参考_云服务器 ECS-阿里云
SSH 登录集群__用户指南_E-MapReduce-阿里云
步骤4:推送云产品__快速入门_证书服务-阿里云
优先级__运算符_SQL语法参考_云数据库 OceanBase-阿里云
3.5 索引__第三章 DDL_使用手册_分析型数据库-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云