公共故障接口
ConfigMap
接收公共故障的ConfigMap信息,接入断点续训流程。
Note
- 实际的ConfigMap中的参数如果与定义的取值范围不相符,ClusterD会将故障信息丢弃,不作处理。
- 通过ConfigMap或者gRPC接口注入的公共故障,所有节点的故障数量之和上限为5w。当故障数量超过5w时,再次注入故障,ClusterD会将故障信息丢弃,不作处理。
- ConfigMap的Label需要为mc-consumer-publicfault=true,Data的key需要为PublicFault。
- 通过ConfigMap方式发送公共故障时,单次数据量不能超过1M大小,否则ConfigMap会更新失败。
具体的参数说明见下表。
表 1 故障信息说明
| 参数名称 | 含义 | 取值 | 类型 | 是否必填 |
|---|---|---|---|---|
| id | 消息唯一标识 | 8到128个字符的字符串,支持大小写字母、数字、中划线(-)、下划线(_)和点(.),保证唯一性。 | string | 是 |
| timestamp | 消息发送的时间戳 | 时间戳(单位:ms),13位数字,必须在2025-01-01T00:00:00Z之后。 | int64 | 是 |
| version | 消息版本号 | 取值为1.0。 | string | 是 |
| resource | 故障发送方 | 默认配置为CCAE、fd-online、pingmesh、Netmind、dpcStorage。
|
string | 是 |
| faults | 故障内容 | 切片,长度>0且≤100。 | []object, fault | 是 |
表 2 fault字段说明
| 参数名称 | 含义 | 取值 | 类型 | 是否必填 |
|---|---|---|---|---|
| faultId | 故障实例ID | 8到128个字符的字符串,支持大小写字母、数字、中划线(-)、下划线(_)和点(.),保证唯一性。 同一个故障实例,faultId需要保证唯一性。 |
string | 是 |
| faultType | 故障类型 | 取值为NPU、Node、Network或Storage。
|
string | 是 |
| faultCode | 故障码 | 用户可以自定义,9位唯一即可。
|
string | 是 |
| faultTime | 故障产生时间 | 时间戳(单位:ms),13位数字,必须在2025-01-01T00:00:00Z之后。
|
int64 | 是 |
| assertion | 故障状态 | 取值为occur、recover或once。
[!NOTE] 说明
|
string | 是 |
| faultLocation | 故障定位信息 | 故障源信息,长度≤10,map的key长度≤16,value长度≤128。eg. key: npuIp, value: ip | map[string]string | 否 |
| influence | 故障影响的范围 | 切片,长度>0且≤1000。 | []object, faultInfo | 是 |
| description | 故障描述 | 0~512个字符。包含非空白字符和空格。 | string | 否 |
表 3 faultInfo字段说明
| 参数名称 | 含义 | 取值 | 类型 | 是否必填 |
|---|---|---|---|---|
| nodeName | 节点名称。可通过kubectl get nodes -owide命令查询。 | 1到253个字符的字符串,支持小写字母、数字、中划线(-)和点(.),必须以字母数字开头和结尾。该字段存在时,就不使用nodeSN。 如果节点名称不存在于K8s集群中,ClusterD不会提示节点名称错误,但是不会将该故障信息写入cluster-info-device-cm。 |
string | nodeName与nodeSN二选一 |
| nodeSN | 节点SN号 | 节点的SN号。取值为NodeD写入的节点annotation,key为product-serial-number。 若使用该字段而不使用nodeName,需要提前安装NodeD组件。 |
string | nodeName与nodeSN二选一 |
| deviceIds | 芯片物理ID | 长度(0, 32],每个元素的取值[0, 32),且不允许重复。
|
[]int32 | 是 |
gRPC接口
接收处理gRPC客户端的公共故障发送请求,接入断点续训流程。
Note
- 实际的gRPC请求参数如果与定义的取值范围不相符,ClusterD会将故障信息丢弃,不作处理。
- 通过ConfigMap或者gRPC接口注入的公共故障,所有节点的故障数量之和上限为5w。当故障数量超过5w时,再次注入故障,ClusterD会将故障信息丢弃,不作处理。
- 公共故障消除需要将相应故障的recover事件通过gRPC接口发送给ClusterD。
rpc SendPublicFault(PublicFaultRequest) returns (RespStatus){}
| 参数 | 类型(Protobuf定义) | 说明 |
|---|---|---|
| PublicFaultRequest | message PublicFaultRequest{ string id = 1; int64 timestamp = 2; string version = 3; string resource = 4; repeated Fault faults = 5; }message Fault{ string faultId = 1; string faultType = 2; string faultCode = 3; int64 faultTime = 4; string assertion = 5; map<string, string> faultLocation = 6; repeated PubFaultInfo influence = 7; string description = 8; }message PubFaultInfo{ string nodeName = 1; string nodeSN = 2; repeated int32 deviceIds = 3; } |
PublicFaultRequest.id:消息唯一标识 PublicFaultRequest.timestamp:消息发送的时间戳 PublicFaultRequest.version:消息版本号 PublicFaultRequest.resource:故障发送方 PublicFaultRequest.faults:故障内容 Fault.faultId:故障实例ID Fault.faultType:故障类型 Fault.faultCode:故障码 Fault.faultTime:故障产生时间 Fault.assertion:故障状态 Fault.faultLocation:故障定位信息 Fault.influence:故障影响的范围 Fault.description:故障描述 PubFaultInfo.nodeName:节点名称 PubFaultInfo.nodeSN:节点SN号 PubFaultInfo.deviceIds:芯片物理ID 以上参数的详细说明及取值情况请参见ConfigMap。 |
| 返回值 | 类型(Protobuf定义) | 说明 |
|---|---|---|
| RespStatus | message RespStatus{ int32 code = 1; string info = 2; } |
RespStatus.code:返回码。
|