消息中心
本项目源于AlertManager项目,为了实现监控消息与业务消息的统一处理.整体的消息分发机制类似于AlertManager
.
消息源主要分为两类:
- 应用消息: 应用消息是指基于哪个业务应用产生的消息,如订单系统,用户系统等.主要基于事件驱动的消息.
- 监控消息: 监控消息是指基于哪个监控系统产生的消息,主要针对指标的告警消息.
监控消息定义
监控消息目前根据Prometheus的配置规则进行定义.
应用消息定义
应用需要根据业务需求,定义相应的事件来提供用户订阅,消息系统接收到业务系统消息时,向订阅者(1个或多个)发送消息.
应用消息支持:
[ ] 抑制规则: 业务消息的指向性要求一般很高,一般较少采用,对于监控消息型,可直接在配置文件中配置.
[x] 静默规则:
消息模板
各组织下可以根据自己的需求定义消息模板.
组织模板的定义有特定要求:
- 需要符合
go template
的语法规范.
- 为了避免命名冲突,组织内的模板定义需要以租户的ID作为前缀,如:
{{ define "1000.alterpassword"}}{{ end }}
,其中1000
为租户ID.
- 组织定义的模板文件存放在以组织ID命名的文件夹中.
接口
目前提供了两个接口:
- graphql: 用户接口,用户级别的消息通过该接口访问
- openapi: 系统级接口,主要由其他子系统调用,及运维方面的接口.具有较弱的鉴权能力或未能全面鉴权.