Socket 通讯协议通讯协议
1.概念描述概念描述
Client:前端Creeper中的IP push proxy。
Server:voyage中的Socket Server服务器。
消息:Server push给Client的信息。
2.通讯步骤流程通讯步骤流程
1.
Client通过proxy配置中的host_addr和host_post连接Socket server,等待消息。
2.
Client通过定时check_interval发送TRACE消息[0]维护与Socket server的connetion的连
通信。如果Socket server未返回TRACE-OK消息,则Client在retry_interval的间隔中尝试
重新连接,如果尝试次数超过max_attempt_retry,则raise 自定义Exception。
3.
Server通过rpc消费Event handler消息和loopcall查询数据库,格式化数据为消息格式,
并send给client。如果和Client断开连接,则raise 自定义的Exception,并且丢弃断开时
的数据。丢弃原因[4]
3.消息格式消息格式
消息为字符串:JSONOBJ#
JSONOBJ={
'type': 0|1, # 0代表plugin check的返回结果。 1代表event handler返回的告警信息。
'data': 如果type为0则为原/status/ API返回数据。[1]| 如果type为1则为单个service的
status。[2] }
'#':消息结束标识
4.参考参考
[0]: TRACE消息为TRACE#
[1]: TRACE-OK消息为TRACE-OK#
[2]: 《creeper监控API说明》的状态数据章节。
[3]: 此为[1]中如果制定host_id和service_id的返回数据。
[4]:
a 由于status的历史信息已经在数据库中保存。
b 来源于event handler的历史信息在前台会导致界面中连续弹窗。
c 从用户的角度考虑,当前的status和event有价值。
评论0
最新资源