调用PutLogs接口向指定的Logstore中写入日志数据。
接口说明
目前 OpenAPI SDK 不支持此接口,请使用日志服务 SDK。
服务端会对每次 PutLogs 写入的日志数据做格式检查,只要日志数据中有任何一条日志不符合规范,则整个请求失败且无任何日志数据成功写入。
目前仅支持写入 PB 格式的日志数据,日志数据以 LogGroup 的形式展示。
- 日志数据写入时有两种模式:
负载均衡模式(LoadBalance):自动根据 Logstore 下所有可写的 Shard 进行负载均衡写入。该方法写入可用性较高,适合不保证顺序的数据消费场景。请求语法:
POST /logstores/logstoreName/shards/lb HTTP/1.1 Authorization: LOG yourAccessKeyId:yourSignature Content-Type: application/x-protobuf Content-Length: Content Length Content-MD5: Content MD5 Date: GMT Date Host: ProjectName.Endpoint x-log-apiversion: 0.6.0 x-log-bodyrawsize: BodyRawSize x-log-compresstype: lz4 x-log-signaturemethod: hmac-sha1 <PB 格式日志压缩数据>Key 路由 Shard 模式(KeyHash):在 URL 参数中增加 Key 字段,用来判断数据写入哪个 Shard 中。该参数为可选参数,不设置时自动切换为负载均衡写入模式。例如,可以将某个生产者(例如 instance)根据名称 Hash 固定到 Shard 上,这样就能保证写入与消费在该 Shard 上的数据是严格有序的(在合并、分裂过程中能够严格保证对于 Key 在一个时间点只会出现在一个 Shard 上,请参见分区(Shard))。请求语法:
POST /logstores/logstoreName/shards/route?key=14d2f850ad6ea48e46e4547edbbb27e0 Authorization: LOG yourAccessKeyId:yourSignature Content-Type: application/x-protobuf Content-Length: Content Length Content-MD5: Content MD5 Date: GMT Date Host: ProjectName.Endpoint x-log-apiversion: 0.6.0 x-log-bodyrawsize: BodyRawSize x-log-compresstype: lz4 x-log-signaturemethod: hmac-sha1 <PB 格式日志压缩数据>
PutLogs 接口每次可以写入的原始日志大小上限为 10 MB,日志组中每条日志下的 Value 部分建议不超过 1 MB。历史版本的 SDK 可能存在不同限制,建议升级到最新的版本解决。
在 SDK 参考中,日志服务提供 Java 和 Python SDK 等 PutLogs 的使用示例。更多信息,请参见Java SDK 快速入门和Python SDK 快速入门等。
PB 数据
PB 格式日志压缩数据字段描述如下。详情请参见数据模型和数据编码方式。
Log
| 参数名称 | 数据类型 | 是否必填 | 描述 |
| Time | Integer | 是 | 日志时间。Unix 时间戳格式,表示从 1970-1-1 00:00:00 UTC 计算起的秒数。 |
| Contents | List | 是 | 日志字段列表,至少包含一个元素,每个元素类型请参见 Content 表格。 |
Content
| 参数名称 | 数据类型 | 是否必填 | 描述 |
| Key | String | 是 | 自定义 Key 名称。 |
| Value | String | 是 | 自定义 Key 对应的值。 |
LogTag
| 参数名称 | 数据类型 | 是否必填 | 描述 |
| Key | String | 是 | 自定义 Key 名称。 |
| Value | String | 是 | 自定义 Key 对应的值。 |
LogGroup
| 参数名称 | 数据类型 | 是否必填 | 描述 |
| Logs | List | 是 | 日志列表,每个元素请参见 Log 字段表格。 |
| Topic | String | 否 | 日志主题,用户自定义字段,用于区分不同特征的日志数据。 |
| Source | String | 否 | 日志的来源。例如产生该日志的机器的 IP 地址。 |
| LogTags | List | 是 | 日志的标签列表,每个元素请参见 LogTag 。 |
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
调试
授权信息
请求语法
POST /logstores/{logstore}/shards/lb HTTP/1.1
路径参数
|
名称 |
类型 |
必填 |
描述 |
示例值 |
| logstore |
string |
是 |
Logstore 名称。 |
ali-test-logstore |
请求参数
|
名称 |
类型 |
必填 |
描述 |
示例值 |
| project |
string |
是 |
Project 名称。 |
ali-test-project |
| x-log-compresstype |
string |
是 |
日志压缩类型,目前支持 lz4、gzip 两种类型。 |
lz4 |
| body | LogGroup |
否 |
压缩后的 pb 日志数据 |
请求头
关于 Log Service API 的公共请求头,请参见公共请求头。
请求示例:
POST /logstores/sls-test-logstore/shards/lb
{
"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 yourAccessKeyId:yourSignature"
}
<PB 格式日志使用 Lz4 压缩后的二进制数据>
返回参数
|
名称 |
类型 |
描述 |
示例值 |
当前API暂无返回参数
响应头
PutLogs 接口无特有响应头。关于 Log Service API 的公共响应头,请参见公共响应头。
响应元素
返回 HTTP 状态码 200,则表示请求成功。该接口调用成功后无任何响应元素。
示例
正常返回示例
JSON格式
{}
错误码
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。