調用PutLogs介面向指定的Logstore中寫入日誌資料。
介面說明
目前 OpenAPI SDK 不支援此介面,請使用Log Service 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 上)。請求文法:
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 參考中,Log Service提供 Java 和 Python SDK 等 PutLogs 的使用樣本。
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格式
{}
錯誤碼
訪問錯誤中心查看更多錯誤碼。
變更歷史
更多資訊,參考變更詳情。