故障服务接口

Register

功能说明

接收处理客户端的注册请求,为订阅故障信息等功能做初始化准备。

函数原型

rpc Register(ClientInfo) returns (Status) {}

输入参数说明

参数 类型(Protobuf定义) 说明
ClientInfo

message ClientInfo{

string jobId = 1;

string role = 2;

}

ClientInfo.jobId:任务ID。

ClientInfo.role:客户端角色。

[!NOTE] 说明
  • 传入jobId为空时,表示注册集群所有任务。
  • 传入jobId不为空时,表示注册指定任务。

返回值说明

返回值 类型(Protobuf定义) 说明
Status

message Status{

int32 code = 1;

string info =2;

}
Status.code:返回码。
  • 取值为0:表示注册成功。
  • 其他值:表示注册失败。
Status.info:返回信息描述。

SubscribeFaultMsgSignal

功能说明

接收客户端订阅故障信息请求。服务端为每一个任务分配一个消息队列,并侦听消息队列是否存在待发送的消息,若存在则通过gRPC stream发送给客户端。

Note

  • 调用此接口前,需先调用Register接口
  • 客户端订阅通算任务的故障信息后,只能收到NodeD故障和K8s节点状态异常故障。

函数原型

rpc SubscribeFaultMsgSignal(ClientInfo) returns (stream FaultMsgSignal){}

输入参数说明

参数 类型(Protobuf定义) 说明
ClientInfo

message ClientInfo{

string jobId = 1;

string role = 2;

}

ClientInfo.jobId:任务ID。

ClientInfo.role:客户端角色。

[!NOTE] 说明
  • 传入jobId为空时,获取的结果为集群内所有job的故障。
  • 传入jobId不为空时,获取的结果为任务所属节点的故障。

返回值说明

返回值 类型(Protobuf定义) 说明
stream grpc stream
  • 该接口返回gRPC stream(返回值的具体数据结构基于客户端选择的编程语言)。
  • 客户端可以调用stream的Receive方法(具体方法名基于客户端选择的编程语言)接收服务端推送的数据。

发送数据说明

参数 类型(Protobuf定义) 说明
FaultMsgSignal

message FaultMsgSignal{

string uuid = 1;

string jobId = 2;

string signalType = 3;

repeated NodeFaultInfo nodeFaultInfo = 4;

}

message NodeFaultInfo{

string nodeName = 1;

string nodeIP = 2;

string nodeSN = 3;

string faultLevel = 4;

repeated DeviceFaultInfo faultDevice = 5;

}

message DeviceFaultInfo{

string deviceId = 1;

string deviceType = 2;

repeated string faultCodes = 3;

string faultLevel = 4;

repeated string faultType = 5;

repeated string faultReason = 6;

repeated SwitchFaultInfo switchFaultInfos = 7;

repeated string faultLevels = 8;

}

message SwitchFaultInfo{

string faultCode = 1;

string switchChipId = 2;

string switchPortId = 3;

string faultTime = 4;

string faultLevel = 5;

}

FaultMsgSignal.uuid:消息ID

FaultMsgSignal.jobId:任务ID

FaultMsgSignal.signalType:消息类型,“fault”代表故障发生,“normal”代表无故障或故障恢复

FaultMsgSignal.nodeFaultInfo:节点故障信息

NodeFaultInfo.nodeName:故障节点名称

NodeFaultInfo.nodeIP:节点IP

NodeFaultInfo.nodeSN:节点SN号

NodeFaultInfo.faultLevel:故障类型,包括“Healthy”、“SubHealthy”和“UnHealthy”,设置为DeviceFaultInfo.faultLevel中最严重的级别

NodeFaultInfo.faultDevice:设备故障信息

DeviceFaultInfo.deviceId:设备ID。当节点发生总线设备故障和K8s状态异常故障时,deviceId为-1

DeviceFaultInfo.deviceType:设备类型名,包括“Node”、“NPU”、“Storage”、“CPU”、“Network”等

DeviceFaultInfo.faultCodes:故障码列表

DeviceFaultInfo.faultLevel:故障类型,包括“Healthy”、“SubHealthy”和“UnHealthy”,严重级别依次递增

DeviceFaultInfo.faultType:故障子系统类型,预留字段

DeviceFaultInfo.faultReason:故障原因,预留字段

DeviceFaultInfo.switchFaultInfos:灵衢故障信息

DeviceFaultInfo.faultLevels:故障等级列表

SwitchFaultInfo.faultCode:灵衢故障码

SwitchFaultInfo.switchChipId:灵衢故障芯片ID

SwitchFaultInfo.switchPortId:灵衢故障端口ID

SwitchFaultInfo.faultTime:灵衢故障发生时间

SwitchFaultInfo.faultLevel:灵衢故障等级

GetFaultMsgSignal

功能说明

本接口为故障查询接口。功能主要是接收客户端查询集群、任务故障信息的请求。

Note

该接口每秒最多可查询10次,超过10次时会将请求加入等待队列中。总等待数超过50时,再次发送请求会被拒绝。

函数原型

rpc GetFaultMsgSignal(ClientInfo) returns (FaultQueryResult){}

输入参数说明

参数 类型(Protobuf定义) 说明
ClientInfo message ClientInfo{

string jobId = 1;

string role = 2;

}

ClientInfo.jobId:任务ID。当jobId传入空值时返回集群范围内的故障信息。若jobId不传入空值,则jobId的合理长度为[8,128]个字符,且不能包含汉字字符。

ClientInfo.role:客户端角色。

[!NOTE] 说明
  • 传入jobId为空时,查询的结果为当前集群的全量故障。
  • 传入jobId不为空时,查询的结果为任务所属节点的故障。

返回值说明

返回值 类型(Protobuf定义) 说明
FaultQueryResult

message FaultQueryResult{

int32 code = 1;

string info = 2;

FaultMsgSignal faultSignal =3;

}

code:本次查询的返回码。

  • 200:查询正常返回。
  • 429:服务端限流。
  • 500:服务端错误。

info:本次查询结果的描述信息

faultSignal:故障信息结构体

FaultMsgSignal.uuid:消息id

FaultMsgSignal.jobId:任务id,-1代表集群

FaultMsgSignal.signalType:消息类型,“fault”代表故障发生,“normal”代表无故障或故障恢复

FaultMsgSignal.nodeFaultInfo:节点故障信息

NodeFaultInfo.nodeName:故障节点名称

NodeFaultInfo.nodeIP:节点IP

NodeFaultInfo.nodeSN:节点SN号

NodeFaultInfo.faultLevel:故障类型,包括“Healthy”、“SubHealthy”和“UnHealthy”,设置为DeviceFaultInfo.faultLevel中最严重的级别

NodeFaultInfo.faultDevice:设备故障信息

DeviceFaultInfo.deviceId:设备ID

DeviceFaultInfo.deviceType:设备类型名,包括“Node”、“NPU”、“Storage”、“CPU”、“Network”等

DeviceFaultInfo.faultCodes:故障码列表

DeviceFaultInfo.faultLevel:故障类型,包括“Healthy”、“SubHealthy”和“UnHealthy”,严重级别依次递增

DeviceFaultInfo.faultType:故障子系统类型,预留字段

DeviceFaultInfo.faultReason:故障原因,预留字段

DeviceFaultInfo.switchFaultInfos:灵衢故障信息列表

DeviceFaultInfo.faultLevels:故障等级列表

SwitchFaultInfo.faultCode:灵衢故障码

SwitchFaultInfo.switchChipId:灵衢故障芯片ID

SwitchFaultInfo.switchPortId:灵衢故障端口ID

SwitchFaultInfo.faultTime:灵衢故障发生时间

SwitchFaultInfo.faultLevel:灵衢故障等级