使用coredump分析实例程序异常
功能概述
coredump是指在程序运行过程中发生异常终止或崩溃时,操作系统将程序的内存内容转储到一个特殊的文件(即coredump文件)中,以便于后续的调试和分析。BCI容器实例支持例开启coredump运维任务,以便在容器异常终止时可以查看分析coredump生成的文件,从而定位问题原因,修复程序异常。 BCI支持将coredump文件存入对象存储BOS中。
使用流程
BCI默认关闭coredump,避免磁盘占用过多而导致业务不可用。您可以根据需要选择以下方式开启coredump运维任务。
方式一:支持手动开启coredump运维任务 手动通过OpenAPI开启coredump后,BCI将生成一个coredump运维任务,在容器运行异常终止或者退出时,触发coredump生成的core文件将自动保存到对象存储BOS中。
手动开启coredump运维任务
当前BCI仅支持通过OpenAPI开启运维任务。步骤如下
调用开启接口前,需确保目标 BCI 实例已成功创建并处于 Running 状态,并获取 podId。指定 BCI 实例时,需确保目标实例在创建时未设置 CorePattern Annotation。
请求
请求结构
开启 coredump 运维任务:
POST http://{{endpoint_bci}}/v2/opstask
请求头域
本接口未定义额外业务请求头域。
请求参数
| 参数名 | 类型 | 位置 | 必填 | 说明 |
|---|---|---|---|---|
| podId | String | Body | 是 | 目标 BCI 实例的 podId。实例需处于 Running 状态。 |
| opsType | String | Body | 是 | 运维任务类型。开启 coredump 时固定为 coredump。 |
| opsValue | String | Body | 是 | 运维动作。手动开启 coredump 时固定为 enable。 |
| bucket | String | Body | 是 | 保存 Core 文件的 BOS bucket 名称。 |
示例
请求示例
1POST http://bci.gz.baidubce.com/v2/opstask
2
3{
4 "podId": "p-h7aobkjv",
5 "opsType": "coredump",
6 "opsValue": "enable",
7 "bucket": "coredump-gz-20260416-1044"
8}
- 触发coredump。连接BCI实例,在容器内执行sleep 100命令后按Ctrl+\键,可触发coredump,生成的core文件将自动保存到BOS中。
请求结构
查询运维任务记录:
GET http://{{endpoint_bci}}/v2/opsrecord?podId={podId}&opsType=coredump
请求参数
| 参数名 | 类型 | 位置 | 必填 | 说明 |
|---|---|---|---|---|
| podId | String | Query | 是 | 待查询的 BCI 实例 podId。 |
| opsType | String | Query | 是 | 运维任务类型。查询 coredump 记录时固定为 coredump。 |
响应
响应头域
| 名称 | 说明 |
|---|---|
| X-Bce-Request-Id | 请求唯一标识,可用于问题排查。 |
响应参数
开启 coredump 运维任务接口成功时返回 HTTP 200,响应体为空。查询运维任务记录接口返回参数如下。
| 参数名 | 类型 | 说明 |
|---|---|---|
| result | Array | 运维任务记录列表。 |
| result[].opsType | String | 运维任务类型,当前为 coredump。 |
| result[].opsStatus | String | 运维任务执行状态。可选值:success、failed。 |
| result[].storageType | String | 存储类型,当前为 bos。 |
| result[].storageContent | String | 结果说明,包含 Core 文件下载提示或错误原因。 |
| result[].createTime | Long | 记录创建时间,Unix 时间戳,单位为毫秒。 |
示例
请求示例
查询运维任务记录接口的请求路径示例如下:
GET http://bci.gz.baidubce.com/v2/opsrecord?podId=p-h7aobkjv&opsType=coredump
响应示例
调用开启 coredump 运维任务接口成功时返回 HTTP 200,响应体为空。调用 GET http://bci.gz.baidubce.com/v2/opsrecord?podId=p-h7aobkjv&opsType=coredump 查询运维任务记录时,响应示例如下。
1{
2 "result": [
3 {
4 "opsType": "coredump",
5 "opsStatus": "success",
6 "storageType": "bos",
7 "storageContent": "please goto bos page to download file core.p-h7aobkjv.sleep.2023.1776373384 .",
8 "createTime": 1776373394000
9 }
10 ]
11}
评价此篇文章
