# 获取训练作业事件列表 - ListTrainingJobEvents
#### 功能介绍
获取训练作业事件列表接口用于获取ModelArts平台上指定训练作业的事件列表。
该接口适用于以下场景：当用户需要查看特定训练作业的事件记录时，可以通过此接口获取事件列表。使用该接口的前提条件是用户已知训练作业ID，并具有查看事件列表的权限。查询操作完成后，平台将返回包含训练作业的事件记录信息。若训练作业ID不存在或用户无权限操作，接口将返回相应的错误信息。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/ModelArts/doc?api=ListTrainingJobEvents)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-modelarts/modelarts_03_0138.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                           | 访问级别 | 资源类型（\*为必须） | 条件键 | 别名                     | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | modelarts:trainJob:listEvents | List | trainJob \* | -   | modelarts:trainJob:get | -      |
     
  
 
#### URI
GET /v2/{project_id}/training-jobs/{training_job_id}/events
表1路径参数 
| 参数              | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| project_id      | 是    | String | **参数解释** ：用户项目ID。获取方法请参见[获取项目ID和名称](https://support.huaweicloud.com/api-modelarts/modelarts_03_0147.html)。 **约束限制**：不涉及。 **取值范围**：1 - 64字符，字母、数字和中划线。 **默认取值**：不涉及。             |
| training_job_id | 是    | String | **参数解释** ：训练作业ID。获取方法请参见[查询训练作业列表](https://support.huaweicloud.com/api-modelarts/ListTrainingJobs.html#ZH-CN_TOPIC_0000002723741806)。 **约束限制**：不涉及。 **取值范围**：不涉及。 **默认取值**：不涉及。 |
   
表2Query参数 
| 参数         | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| offset     | 否    | Integer | **参数解释**：分页列表的起始页。 **约束限制**：最小为0。例如设置为0，则表示从第一页开始查询。 **取值范围**：不涉及。 **默认取值**：默认为0。                          |
| limit      | 否    | Integer | **参数解释**：指定每一页返回的最大条目数。 **约束限制**：不涉及。 **取值范围**：\[1,100\]。 **默认取值**：默认为50。                                  |
| order      | 否    | String  | **参数解释**：指定查询结果的排序方式。 **约束限制**：不涉及。 **取值范围**：不涉及。 **默认取值**：不涉及。                                            |
| start_time | 否    | String  | **参数解释**：开始时间，格式为Unix时间戳，1669449696964。 **约束限制**：需要与结束时间一起传入。 **取值范围**：不涉及。 **默认取值**：不涉及。                  |
| end_time   | 否    | String  | **参数解释**：结束时间，格式为Unix时间戳，如1669711991259。 **约束限制**：需要与开始时间一起传入。 **取值范围**：不涉及。 **默认取值**：不涉及。                 |
| level      | 否    | String  | **参数解释**：指定返回的事件级别。 **约束限制**：不涉及。 **取值范围**：Info：信息级别事件；Error：错误级别事件；Warning：警告级别事件。 **默认取值**：不涉及。          |
| pattern    | 否    | String  | **参数解释**：指定事件信息包含的内容。 **约束限制**：不涉及。 **取值范围**：最长256个字符。 **默认取值**：不涉及。                                       |
| source     | 否    | String  | **参数解释**：指定返回的事件来源。 **约束限制**：不涉及。 **取值范围**：K8S：来自Kubernetes的事件；Job：来自训练作业的事件；Task：来自训练任务的事件。 **默认取值**：不涉及。 |
   
#### 请求参数
表3请求Header参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| X-Language | 否    | String | **参数解释**：指定API返回信息的语言类型。 **约束限制**：不涉及。 **取值范围**：不涉及。 **默认取值**：中文：zh-cn；英文：en-us。 |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数         | 参数类型                                                                                                 | 描述                                                                                                           |
|:---|:---|:---|
| total      | Integer                                                                                              | **参数解释**：总条数。 **取值范围**：不涉及。     |
| limit      | Integer                                                                                              | **参数解释**：最大显示条数。 **取值范围**：不涉及。  |
| offset     | Integer                                                                                              | **参数解释**：开始的条数。 **取值范围**：不涉及。   |
| order      | String                                                                                               | **参数解释**：排序方式。 **取值范围**：不涉及。    |
| start_time | String                                                                                               | **参数解释**：事件的开始时间。 **取值范围**：不涉及。 |
| end_time   | String                                                                                               | **参数解释**：事件的结束时间。 **取值范围**：不涉及。 |
| events     | Array of [Event] objects | **参数解释**：事件列表，由Event对象组成，每个Event对象包含事件信息、级别、时间和来源。                                                           |
   
 表5Event 
| 参数      | 参数类型   | 描述                                                                                                           |
|:---|:---|:---|
| message | String | **参数解释**：事件信息。 **取值范围**：不涉及。    |
| level   | String | **参数解释**：事件级别。 **取值范围**：不涉及。    |
| time    | String | **参数解释**：事件发生的时间。 **取值范围**：不涉及。 |
| source  | String | **参数解释**：事件来源。 **取值范围**：不涉及。    |
   
**状态码：400**
表6响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                |
|:---|:---|:---|
| error_code | String | **参数解释**：ModelArts错误码。 **取值范围**：不涉及。 |
| error_msg  | String | **参数解释**：具体错误信息。 **取值范围**：不涉及。       |
   
#### 请求示例
```
GET https://{endpoint}/v2/{project_id}/training-jobs/{training_job_id}/events?order=desc&offset=0&limit=10&start_time=1669449696964&end_time=1669711991259
```
#### 响应示例
**状态码：200**
ok
```
{
  "total" : 27,
  "limit" : 10,
  "offset" : 0,
  "order" : "desc",
  "start_time" : "2022-11-26T16:01:36+08:00",
  "end_time" : "2022-11-29T16:53:11+08:00",
  "events" : [ {
    "time" : "2022-11-26T16:03:41+08:00",
    "level" : "Error",
    "message" : "Training job failed.",
    "source" : "Job"
  }, {
    "time" : "2022-11-26T16:03:16+08:00",
    "level" : "Info",
    "message" : "[Job: modelarts-job-5bd61eea-9de2-4864-a0f7-5fae966171b5] ExecuteAction: Start to execute action TerminateJob",
    "source" : "K8S"
  }, {
    "time" : "2022-11-26T16:03:12+08:00",
    "level" : "Info",
    "message" : "[worker-0][time used：0.296s] Upload training output(parameter name: train_url) finished.",
    "source" : "Task"
  }, {
    "time" : "2022-11-26T16:03:12+08:00",
    "level" : "Info",
    "message" : "[worker-0] Training output(parameter name: train_url) Uploading.",
    "source" : "Task"
  }, {
    "time" : "2022-11-26T16:03:11+08:00",
    "level" : "Info",
    "message" : "[worker-0] Training finished. Exit code 1.",
    "source" : "Task"
  }, {
    "time" : "2022-11-26T16:02:10+08:00",
    "level" : "Info",
    "message" : "[worker-0] training started.",
    "source" : "Task"
  }, {
    "time" : "2022-11-26T16:02:09+08:00",
    "level" : "Info",
    "message" : "Training job is running.",
    "source" : "Job"
  }, {
    "time" : "2022-11-26T16:02:06+08:00",
    "level" : "Info",
    "message" : "[Pod: modelarts-job-5bd61eea-9de2-4864-a0f7-5fae966171b5-worker-0] Started: Started container",
    "source" : "K8S"
  }, {
    "time" : "2022-11-26T16:02:06+08:00",
    "level" : "Info",
    "message" : "[Pod: modelarts-job-5bd61eea-9de2-4864-a0f7-5fae966171b5-worker-0] SuccessfulCreate: Created container",
    "source" : "K8S"
  }, {
    "time" : "2022-11-26T16:02:05+08:00",
    "level" : "Info",
    "message" : "[Pod: modelarts-job-5bd61eea-9de2-4864-a0f7-5fae966171b5-worker-0] Pulled: Successfully pulled image \"swr.cn-north-7.myhuaweicloud.com/modelarts-job-dev-image/modelarts-tool-container:1.0.0-5.3.1-b002.2\"",
    "source" : "K8S"
  } ]
}
```
**状态码：400**
Bad Request。
```
{
  "error_code" : "ModelArts.50004000",
  "error_msg" : "Bad request."
}
```
#### 状态码
| 状态码 | 描述           |
|:---|:---|
| 200 | ok           |
| 400 | Bad Request。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-modelarts/modelarts_03_0095.html)。
