PutLogs - 写入日志

调用PutLogs接口向指定的Logstore中写入日志数据。

接口说明

说明
  • 服务端会对每次 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

参数名称数据类型是否必填描述
TimeInteger日志时间。Unix 时间戳格式,表示从 1970-1-1 00:00:00 UTC 计算起的秒数。
ContentsList日志字段列表,至少包含一个元素,每个元素类型请参见 Content 表格。
  • Content

参数名称数据类型是否必填描述
KeyString自定义 Key 名称。
ValueString自定义 Key 对应的值。
  • LogTag

参数名称数据类型是否必填描述
KeyString自定义 Key 名称。
ValueString自定义 Key 对应的值。
  • LogGroup

参数名称数据类型是否必填描述
LogsList日志列表,每个元素请参见 Log 字段表格。
TopicString日志主题,用户自定义字段,用于区分不同特征的日志数据。
SourceString日志的来源。例如产生该日志的机器的 IP 地址。
LogTagsList日志的标签列表,每个元素请参见 LogTag

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

调试

授权信息

当前API暂无授权信息透出。

请求语法

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格式

{}

错误码

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

变更历史

更多信息,参考变更详情