
# 上报日志接口参考
#### 功能介绍
该接口用于主机上报租户日志给LTS。
接入点IP可在LTS控制台安装ICAgent的安装命令中获取，端口为8102，调用时使用该参数请参见[请求示例]。
关于上报日志的约束与限制请参考[日志读写限制](https://support.huaweicloud.com/productdesc-lts/lts-0718.html)。
#### URI
POST /v2/{project_id}/lts/groups/{log_group_id}/streams/{log_stream_id}/tenant/contents
表1路径参数 
| 参数            | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| project_id    | 是    | String | **参数解释：** 项目ID，获取方式请参见：[获取项目ID](https://support.huaweicloud.com/api-lts/lts_api_0006.html)。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                           |
| log_group_id  | 是    | String | **参数解释：** 日志组ID，获取方式请参见：[获取日志组ID和日志流ID](https://support.huaweicloud.com/api-lts/lts_api_0014.html)。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。            |
| log_stream_id | 是    | String | **参数解释：** 日志流ID，获取方式请参见：[获取日志组ID和日志流ID](https://support.huaweicloud.com/api-lts/lts_api_0014.html)。 **约束限制：** 每个logstream写入速率最大不能超过100MB/S，超过此规格可能会导致日志丢失。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 从IAM获取的用户Token，获取方式请参见：[获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
| Content-Type | 是    | String | **参数解释：** 用于定义消息体的格式，该字段填为：application/json;charset=UTF-8。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                     |
   
表3请求Body参数 
| 参数                | 是否必选 | 参数类型            | 描述                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| log_time_ns       | 是    | Long            | **参数解释：** 日志数据上报时间，UTC时间（纳秒）。 **约束限制：** 通过接口上报日志到LTS的时间相距当前时间不超过2天，否则上报日志会被LTS删除。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                      |
| contents          | 是    | Array of String | **参数解释：** 日志内容。 **约束限制：** 不涉及。                                                                                                                                                                                                                             |
| labels            | 是    | Object          | **参数解释：** 用户自定义label。 **约束限制：** 请不要将字段名称设置为内置保留字段，否则可能会造成字段名称重复、查询不精确等问题。详细请参考[内置保留字段](https://support.huaweicloud.com/usermanual-lts/lts_05_0008.html#lts_05_0008__section1344513105480)。                                                                   |
| tenant_project_id | 否    | String          | **参数解释：** 租户项目ID，获取方式请参见：[获取项目ID](https://support.huaweicloud.com/api-lts/lts_api_0006.html)。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
   
#### 响应参数
**状态码为200时：**
表4响应Body参数 
| 参数        | 参数类型   | 描述                                                                                                                                                          |
|:---|:---|:---|
| errorCode | String | **参数解释：** 错误码。 **取值范围：** 不涉及。         |
| error_msg | String | **参数解释：** 调用失败响应信息描述。 **取值范围：** 不涉及。 |
| result    | String | **参数解释：** 响应结果。 **取值范围：** 不涉及。          |
   
**状态码为400时：**
表5响应Body参数 
| 参数        | 参数类型   | 描述                                                                                                                                                           |
|:---|:---|:---|
| errorCode | String | **参数解释：** 错误码。 **取值范围：** 不涉及。          |
| error_msg | String | **参数解释：** 调用失败响应信息描述。 **取值范围：** 不涉及。 |
| result    | String | **参数解释：** 响应结果。 **取值范围：** 不涉及。      |
   
**状态码为401时：**
表6响应Body参数 
| 参数        | 参数类型   | 描述                                                                                                                                                         |
|:---|:---|:---|
| errorCode | String | **参数解释：** 错误码。 **取值范围：** 不涉及。      |
| error_msg | String | **参数解释：** 调用失败响应信息描述。 **取值范围：** 不涉及。 |
| result    | String | **参数解释：** 响应结果。 **取值范围：** 不涉及。          |
   
**状态码为500时：**
表7响应Body参数 
| 参数        | 参数类型   | 描述                                                                                                                                                       |
|:---|:---|:---|
| errorCode | String | **参数解释：** 错误码。 **取值范围：** 不涉及。        |
| error_msg | String | **参数解释：** 调用失败响应信息描述。 **取值范围：** 不涉及。 |
| result    | String | **参数解释：** 响应结果。 **取值范围：** 不涉及。      |
   
**状态码为503时：**
表8响应Body参数 
| 参数     | 参数类型   | 描述                                                                                                                                                          |
|:---|:---|:---|
| result | String | **参数解释：** 被请求的服务无效，服务不可用。 **取值范围：** 不涉及。 |
   
 #### 请求示例
```
POST https://{接入点IP:8102}/v2/{project_id}/lts/groups/{log_group_id}/streams/{log_stream_id}/tenant/contents
{
 "log_time_ns": 1586850540000000000,
 "contents": [
  "Fri Feb  1 07:48:04 UTC 2019 0\n",
  "Sat April 18 16:04:04 UTC 2019"
 ],
 "labels": {
  "user_tag": "string"
 }
}
```
#### 响应示例
**状态码：200**
日志上报成功。
```
{
  "errorCode": "SVCSTG.ALS.200.200",
  "error_msg": "Report success.",
  "result": null
}
```
**状态码：401**
在客户端提供认证信息后，返回该状态码，表明服务端指出客户端所提供的认证信息不正确或非法。
```
{
  "errorCode" : "SVCSTG.ALS.403.105",
  "error_msg" : "Project id is invalid.",
  "result": null
}
```
#### 状态码
| 状态码 | 描述                                           |
|:---|:---|
| 200 | 日志上报成功。                                      |
| 400 | 非法请求。建议根据error_msg直接修改该请求，不要重试该请求。           |
| 401 | 在客户端提供认证信息后，返回该状态码，表明服务端指出客户端所提供的认证信息不正确或非法。 |
| 500 | 系统内部错误。                                      |
| 503 | 被请求的服务无效，服务不可用。                              |
   
