|
|
3 gadi atpakaļ | |
|---|---|---|
| .. | ||
| src | 3 gadi atpakaļ | |
| README.md | 4 gadi atpakaļ | |
| pom.xml | 3 gadi atpakaļ | |
负责收集应用中的数据,经过筛选之后存储到ElasticSearch 中,主要核心功能是为了弥补CAT中的日志搜索能力较弱的短板,另外还会对CAT的拓展做增强,比如监控告警等等,更加满足实际业务的需要。
提供控制台进行日志能力的搜索,涵盖消息队列、SQL执行、网关请求等等,后续会继续新增更多的模块;
提供多平台规则定义告警,将关注的异常信息告警到特定的讨论组中。
将控制台录入通过端点提供访问,让特定的引擎根据规则参数进行渲染。
Msql存储,但搜索能力太弱。切换到ElasticSearch了。底层可以来回切换成Mysql或者ElasticSearch.Mysql对大文本存储能力较弱,占用内存的情况。目前是按照本地配置走,支持ElasticSearch或MySQL切换,但目前都未实现,可以自行实现。
MonitorDataServer : 服务端数据接收的入口类,通过Spring注入之后调用Start()方法启动一个端口: 9420(默认),负责接收客户端发送过来的数据。
底层的默认传输是基于Netty,框架应用的蚂蚁金服的bolt 。
具体参考:
com.jay.monitor.data.server.config.BeanConfig#boltServer : 会将所有实现UserProcessor接口的类作为消费类,负责消费客户端传递过来的数据。
这些消费类存储在包: com.jay.monitor.data.server.process 中涵盖
在数据传输的过程中,会对每条数据进行分析,根据告警的规则来判定这条数据是否属于要告警的数据。
RealtimeAlertProcess : 实时告警处理器,负责接收数据传输的模块进行回调分析并且交由ConfigAlertRule处理。
ConfigAlertRule : 配置告警,负责读取配置与传输数据进行匹配。满足则告警
MatchValueCondition : 告警的配置规则定义,比如表达式、或者其他的一些规则详情。目前较推荐和灵活的是ExpressionValueCondition,根据Spring的表达式,非常灵活的匹配传输数据是否合理。
AlertSendProcess : 告警发送模型,负责调用各个平台实现的接口进行匹配发送到特定的平台。接口是AlertRealTimeMsg,目前实现有钉钉 如果想拓展可以实现比如微信、邮件、短信等等。
DingDingRealTimeAlertProcess : 钉钉的实现。
ConfigStoreManager : 配置的定义
DefaultLocalConfigManager : 本地文件配置MysqlConfigStoreManager : Mysql的配置DataIdFactory : 按照纬度进行拆分表的尾缀值.
DayIdGenerate : 天纬度HourIdGenerate : 小时纬度在表的创建和获取的时候通过工厂获取规则得到一个尾缀值,将数据找到对应的表,并且流入对应的表。