137 lines
6.2 KiB
Protocol Buffer
137 lines
6.2 KiB
Protocol Buffer
//========================================================================================
|
||
// @file IntelliAlmMsg.proto
|
||
// @brief 智能告警服务相关消息及结构
|
||
// @author yikenan
|
||
//========================================================================================
|
||
|
||
syntax="proto2";
|
||
package iot_idl;
|
||
|
||
// 缩写说明:
|
||
// Intelli : Intelligent
|
||
// Alm : Alarm
|
||
// IA : Intelligent Alarm
|
||
// SEPR: Separate
|
||
// S2C : Server To Client
|
||
// C2S : Client To Server
|
||
|
||
//========================================================================================
|
||
// 消息类型枚举
|
||
//========================================================================================
|
||
enum enIntelliAlmMsgType
|
||
{
|
||
//====================================================================================
|
||
// 服务端(S)发给客户端(C,比如告警窗)的所有CMbMessage,Para1是AS的DomainID,Para2是消息序号
|
||
|
||
MT_IA_S2C_SEQNO = 1; // 服务端向客户端发送当前序号,本消息自身不占用(不增加)序号
|
||
MT_IA_C2S_SEQNO_REQ = 2; // 客户端向服务端请求当前序号
|
||
|
||
MT_IA_S2C_ALL = 3; // 服务端向客户端发送全部告警
|
||
MT_IA_C2S_ALL_REQ = 4; // 客户端请求全部告警
|
||
|
||
MT_IA_C2S_RT_REQ = 5; // 客户端向服务端请求重传消息,
|
||
// Para1是客户端收到的最后一条有效消息序号
|
||
// 服务端从请求序号的下一条开始重传
|
||
|
||
MT_IA_S2C_ADD = 6; // 服务端向客户端发送添加告警
|
||
|
||
MT_IA_S2C_DEL = 7; // 服务端向客户端发送删除告警,逻辑状态切换为 IALS_DELETED
|
||
MT_IA_C2S_DEL_REQ = 8; // 客户端请求删除告警
|
||
|
||
MT_IA_S2C_BROKEN = 9; // 服务端向客户端通知告警不完整,逻辑状态切换为 IALS_BROKEN
|
||
|
||
MT_IA_S2C_RELEASE = 10; // 服务端向客户端发送释放告警,释放内存
|
||
|
||
MT_IA_C2S_SEPR_REQ = 11; // 将原始告警从原来的智能告警中分离出来,组成新的一条智能告警
|
||
|
||
MT_IA_C2S_MERGE_REQ = 12; // 将多条原始告警合并为一条智能告警
|
||
}
|
||
|
||
// 单条智能告警的逻辑状态
|
||
enum enIntelliAlmLogicState
|
||
{
|
||
IALS_NORMAL = 1; // 正常
|
||
IALS_DELETED = 2; // 已删除
|
||
|
||
// 不完整的,该智能告警包含的原始告警有至少一条在原始告警端内存中不存在,可能性如下:
|
||
// 1、当智能告警处于 IALS_DELETED 状态时,其原始告警允许被释放,
|
||
// 原始告警服务端按先入先出原则从缓存队列释放允许释放的告警,
|
||
// 智能告警端收到原始告警已释放的通知后,将其所属的智能告警标记为 IALS_BROKEN 状态。
|
||
// 当该智能告警的全部原始告警都释放后,释放该智能告警条目。
|
||
// 2、异常情况,比如服务端异常退出,缓存文件被人为删除、修改等。
|
||
// 在告警窗上建议的显示方式:不显示 或 显示为“详细内容请查询历史事件”
|
||
IALS_BROKEN = 3;
|
||
}
|
||
|
||
//========================================================================================
|
||
// 服务端之间同步,以及与客户端的交互消息结构
|
||
//========================================================================================
|
||
|
||
// 单个智能告警信息
|
||
message SIntelliAlmInfo
|
||
{
|
||
required enIntelliAlmLogicState logic_state =1; //客户端上的逻辑状态
|
||
required int32 domain_id =2; //域ID
|
||
required int32 priority =3; //告警优先级
|
||
required int64 time_stamp =4; //时标(RFC1305、POSIX时标标准)
|
||
|
||
required string uuid_base64 =5; //本条智能告警的唯一标识,base64编码
|
||
|
||
required string content =6; //告警内容
|
||
optional string disposal_plan =7; //处置预案
|
||
|
||
//关联的 原始告警 的uuid,base64编码,其中第一个可被认为是主告警
|
||
repeated string raw_alm_uuid =8;
|
||
}
|
||
|
||
// 服务端通知客户端增加告警,或同步全部告警,均使用本消息结构,使用消息类型区分
|
||
message SIntelliAlmAdd
|
||
{
|
||
// 序号使用消息总线中的可选参数,服务端与接口库内自己维护,无需应用管理
|
||
repeated SIntelliAlmInfo alm_info =1; //智能告警信息序列
|
||
}
|
||
|
||
// 客户端向服务端请求删除告警、服务端回复、向其他客户端同步,逻辑状态切换为 IALS_DELETED
|
||
// 不要动原始告警,原始告警端有消息通知
|
||
message SIntelliAlmDel
|
||
{
|
||
//若客户端批量删除不同域的告警,应当先行分组
|
||
required int32 domain_id =1; //域ID,本消息中的告警都应属于此域
|
||
|
||
repeated string uuid_base64 =2; //需删除的 智能告警 的uuid
|
||
}
|
||
|
||
// 服务端向客户端通知智能告警不完整,逻辑状态切换为 IALS_BROKEN
|
||
message SIntelliAlmBroken
|
||
{
|
||
repeated string uuid_base64 =1; //不完整的 智能告警 的uuid
|
||
}
|
||
|
||
// 服务端向客户端通知释放智能告警,释放相应智能告警记录的内存
|
||
// 不要动原始告警,原始告警端有消息通知
|
||
message SIntelliAlmRelease
|
||
{
|
||
repeated string uuid_base64 =1; //需释放的 智能告警 的uuid
|
||
}
|
||
|
||
// 客户端向服务端请求 将原始告警从其原智能告警中分离
|
||
message SIntelliAlmSepr
|
||
{
|
||
required int32 domain_id =1; //域ID,被分离的告警都属于此域
|
||
|
||
// 需分离的 原始告警 的uuid,base64编码
|
||
// 这些原始告警,应属于同一条智能告警,否则服务端将忽略本次操作
|
||
repeated string raw_alm_uuid =2;
|
||
}
|
||
|
||
// 客户端向服务端请求 将多条原始告警合并为一条智能告警
|
||
message SIntelliAlmMerge
|
||
{
|
||
required int32 domain_id =1; //域ID,合并的告警都属于此域
|
||
|
||
// 需合并 原始告警 的uuid,base64编码
|
||
// 这些原始告警不应属于任何智能告警,否则服务端将忽略本次操作
|
||
repeated string raw_alm_uuid =2;
|
||
}
|
||
|