发起诊断。
接口说明
对目标 ECS 实例进行诊断有如下要求:
目标 ECS 实例状态必须为运行中(Running);
目标 ECS 实例必须已经安装云助手,如果未安装,请参考 安装云助手 Agent 进行安装;
必须调用 AuthDiagnosis 接口授权 SysOM 对目标 ECS 进行诊断,如果没有授权本接口会直接失败;
本接口依赖于 SysOM 服务关联角色(AliyunServiceRoleForSysom)已经创建,本接口不会主动创建服务角色,如果服务角色不存在需要首先调用 AuthDiagnosis 进行授权,该接口会创建前述服务角色。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
调试
授权信息
|
操作 |
访问级别 |
资源类型 |
条件关键字 |
关联操作 |
|
sysom:InvokeDiagnosis |
create |
*Diagnosis
|
无 | 无 |
请求语法
POST /api/v1/openapi/diagnosis/invoke_diagnosis HTTP/1.1
请求参数
|
名称 |
类型 |
必填 |
描述 |
示例值 |
| body |
object |
否 |
请求体参数 |
|
| channel |
string |
是 |
诊断通道(目前固定为 ecs 通道) 枚举值:
|
ecs |
| params |
string |
是 |
诊断参数,不同类型的诊断要求传递不同的诊断参数,每种诊断所需的参数参见下面的请求参数补充说明。 重要 请传递 json 格式的字符串 |
{ "instance": "i-wz9gdv7qmdhusamc4dl01", "uid": "xxxxxxxxxxxxxx", "region": "cn-shenzhen" } |
| service_name |
string |
是 |
诊断类型,用于区分不同类型的诊断 枚举值:
|
memgraph |
诊断参数说明
内存大盘诊断(memgraph)参数
memgraph(内存全景分析)工具:内存全景分析适用于内存占用较高但无法明确识别具体内存占用情况的场景。通过使用内存全景分析诊断功能,可以扫描当前系统的内存占用状态,详细拆解内存使用情况。系统内存与应用内存的分布,并列出当前 Top 30 的应用内存使用、文件缓存、共享内存缓存占用情况的排序。
| 参数名称 | 参数类型 | 参数说明 | 是否必填 | 默认值 | 备注 |
| uid | string | 用户 UID | 是 | 用户 UID | |
| region | string | 实例所在地区 | 是 | 实例所在地区 | |
| instance | string | 实例 ID | 是 | 请输入你要诊断的实例 ID, 我们将在会这台机器内部发起诊断 | |
| pod | string | Pod 名称 | 否 | Pod 名称 |
Java 内存诊断(javamem)参数
javamem(Java 内存诊断)工具,主要用于诊断 Java 应用的内存使用情况,帮助用户了解 Java 堆内存和非堆内存的分布和组成,识别潜在的内存泄漏和内存溢出问题,实现 Java 内存的可维可测可追踪。
| 参数名称 | 参数类型 | 参数说明 | 是否必填 | 默认值 | 备注 |
| uid | string | 用户 UID | 是 | 用户 UID | |
| region | string | 实例所在地区 | 是 | 实例所在地区 | |
| instance | string | 实例 ID | 是 | 请输入你要诊断的实例 ID, 我们将在会这台机器内部发起诊断 | |
| Pid | string | Java 进程 Pid | 否 | Java 进程 Pid,pid 和 pod 至少提供一个 | |
| pod | string | Pod 名称 | 否 | Pod 名称,pid 和 pod 至少提供一个 | |
| duration | string | JNI 内存分配 profiling 时长 | 否 | JNI 内存分配 profiling 时长,执行 JNI 诊断需要填写一个非 0 的值,否则默认不执行 JNI 诊断 |
内存 OOM 诊断(oomcheck)参数
oomcheck(OOM 诊断)工具,主要用于分析和界定 OOM(Out of memory)问题,找出导致 OOM 的主要原因,并给出相应的处理建议,帮助用户解决 OOM 问题,提高系统的可用性和性能。
| 参数名称 | 参数类型 | 参数说明 | 是否必填 | 默认值 | 备注 |
| uid | string | 用户 UID | 是 | 用户 UID | |
| region | string | 实例所在地区 | 是 | 实例所在地区 | |
| instance | string | 实例 ID | 是 | 请输入你要诊断的实例 ID, 我们将在会这台机器内部发起诊断 | |
| pod | string | Pod 名称 | 否 | Pod 名称 | |
| time | string | 诊断时间 | 否 | 请输入需要诊断 OOM 的时间点,默认为最近一次 |
系统负载诊断(loadtask)参数
loadtask(系统负载诊断)工具主要分析系统在一分钟内的平均负载(load1 指标)异常原因机器详细信息。
| 参数名称 | 参数类型 | 参数说明 | 是否必填 | 默认值 | 备注 |
| uid | string | 用户 UID | 是 | 用户 UID | |
| region | string | 实例所在地区 | 是 | 实例所在地区 | |
| instance | string | 实例 ID | 是 | 请输入你要诊断的实例 ID, 我们将在会这台机器内部发起诊断 |
调度抖动诊断(delay)参数
delay(调度抖动诊断)工具主要分析 CPU 长时间不进行任务切换导致用户态业务进程长期得不到调度引发的问题(例如内存回收等场景)。
| 参数名称 | 参数类型 | 参数说明 | 是否必填 | 默认值 | 备注 |
| uid | string | 用户 UID | 是 | 用户 UID | |
| region | string | 实例所在地区 | 是 | 实例所在地区 | |
| instance | string | 实例 ID | 是 | 请输入你要诊断的实例 ID, 我们将在会这台机器内部发起诊断 | |
| duration | string | 诊断持续的时长 | 否 | 20 | 诊断持续的时长(s)(可选),默认为 20 秒 |
| threshold | string | 诊断阈值 | 否 | 20 | 延迟的阈值,超过这个阈值就记录,默认 20ms |
IO 流量分析诊断(iofsstat)参数
iofsstat(IO 流量分析)工具主要分析系统中 IO 流量的归属,结果包含每个磁盘/分区的 IO 流量统计列表以及每个进程的 IO 流量统计列表。
| 参数名称 | 参数类型 | 参数说明 | 是否必填 | 默认值 | 备注 |
| uid | string | 用户 UID | 是 | 用户 UID | |
| region | string | 实例所在地区 | 是 | 实例所在地区 | |
| instance | string | 实例 ID | 是 | 请输入你要诊断的实例 ID,我们将在会这台机器内部发起 IO 流量统计 | |
| timeout | string | 诊断时长 | 否 | 15 | 诊断时长,也是 IO 流量统计周期,单位秒,建议不超过 60 秒 |
| disk | string | 目标磁盘 | 否 | "" | 请输入你要诊断的磁盘,如 vda,sda,缺省为所有磁盘 |
IO 一键诊断(iodiagnose)参数
iodiagnose(IO 一键诊断)工具专注于高频出现的 IO 高延迟、IO Burst 及 IO Wait 等问题,支持对各种 IO 问题类型的识别,并调用相应的子工具对 IO 数据进行分析,从而提供结论和建议。
| 参数名称 | 参数类型 | 参数说明 | 是否必填 | 默认值 | 备注 |
| uid | string | 用户 UID | 是 | 用户 UID | |
| region | string | 实例所在地区 | 是 | 实例所在地区 | |
| instance | string | 实例 ID | 是 | 请输入你要诊断的实例 ID,我们将在会这台机器内部发起 IO HANG 诊断 | |
| timeout | string | 诊断时长 | 否 | 30 | 诊断时长(可选),默认为 30 秒,不建议低于 30 秒,单位秒 |
网络丢包诊断(packetdrop)参数
packetdrop(网络丢包诊断)工具主要分析数据包通过网络传输过程中,由于多种原因在操作系统内核层面发生的丢失问题。
| 参数名称 | 参数类型 | 参数说明 | 是否必填 | 默认值 | 备注 |
| uid | string | 用户 UID | 是 | 用户 UID | |
| region | string | 实例所在地区 | 是 | 实例所在地区 | |
| instance | string | 实例 ID | 是 | 请输入你要诊断的实例 ID, 我们将在会这台机器内部发起诊断 |
网络抖动诊断(netjitter)参数
netjitter(网络抖动诊断)工具主要分析数据包在网络传输过程中,由于多种因素引起的操作系统内核层面的不稳定现象。
| 参数名称 | 参数类型 | 参数说明 | 是否必填 | 默认值 | 备注 |
| uid | string | 用户 UID | 是 | 用户 UID | |
| region | string | 实例所在地区 | 是 | 实例所在地区 | |
| instance | string | 实例 ID | 是 | 请输入你要诊断的实例 ID, 我们将在会这台机器内部发起诊断 | |
| duration | string | 诊断持续的时长 | 否 | 20 | 诊断持续的时长(s)(可选),默认为 20 秒 |
| threshold | string | 判定出现抖动的阈值 | 否 | 10 | 判定出现抖动的阈值(ms)(可选),默认为 10ms |
宕机诊断(vmcore)参数
vmcore(宕机诊断)工具主要分析操作系统崩溃的原因,通过分析内核 panic 产生的 core dump 文件,结合 dmesg 日志,分析操作系统崩溃的原因。
| 参数名称 | 参数类型 | 参数说明 | 是否必填 | 默认值 | 备注 |
| uid | string | 用户 UID | 是 | 用户 UID | |
| region | string | 实例所在地区 | 是 | 实例所在地区 | |
| instance | string | 实例 ID | 是 | 请输入你要诊断的实例 ID, 我们将在会这台机器内部发起诊断 |
磁盘分析诊断(diskanalysis)参数
diskanalysis(磁盘分析诊断)工具主要分析系统中磁盘的使用情况。
| 参数名称 | 参数类型 | 参数说明 | 是否必填 | 默认值 | 备注 |
| uid | string | 用户 UID | 是 | 用户 UID | |
| region | string | 实例所在地区 | 是 | 实例所在地区 | |
| instance | string | 实例 ID | 是 | 请输入你要诊断的实例 ID, 我们将在会这台机器内部发起诊断 |
返回参数
|
名称 |
类型 |
描述 |
示例值 |
|
object |
Schema of Response |
||
| code |
string |
状态码
|
Success |
| data |
object |
返回结果。 |
|
| task_id |
string |
诊断任务 ID,可以凭借该 ID 调用 |
ihqhAcrt |
| message |
string |
错误信息
|
SysomOpenAPIAssumeRoleException: EntityNotExist.Role The role not exists: acs:ram::xxxxx:role/aliyunserviceroleforsysom |
| request_id |
string |
请求 RequestId |
43A910E9-A739-525E-855D-A32C257F1826 |
示例
正常返回示例
JSON格式
{
"code": "Success",
"data": {
"task_id": "ihqhAcrt"
},
"message": "SysomOpenAPIAssumeRoleException: EntityNotExist.Role The role not exists: acs:ram::xxxxx:role/aliyunserviceroleforsysom",
"request_id": "43A910E9-A739-525E-855D-A32C257F1826"
}
错误码
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。