flink实现指标监控

                                 flink实现指标监控

  数据监控都要求实时性,我把监控分为2种,一种是有状态监控,一种是无状态监控。有状态就是指指标的计算依赖于之前的数据,比如连续产生N次才触发告警推送;无状态计算就是指只跟当前值相关,即值大于(或者等于、小于)某个阀值触发告警推送,下面是一个大概的数据流程图:

flink监控流图

流程图说明:

(1)由于我们监控的数据来源可能很多,为了尽可能复用监控平台,我们需要标准化数据结构,即图中的Adapter1到AdapterN,这些模块的输出为同一个数据结构。

(2)由于是实时计算,我们需要在flink的map阶段将无效的过时的数据丢弃。

(3)由于监控指标的不固定性,我们可能随时需要增加监控指标,而且监控的阀值或者规则也不尽相同,因此我们需要配置监控规则,这里可以将规则配置的mysql,以javascript的方式配置,flink可以通过javascript引擎解析出是否需要告警。

(4)由于有些指标涉及到有状态计算,规则中也需要标识是否是有状态计算,还要配置缓存指标

(5)告警数据产生之后一方面我们需要写库,供后面二次统计使用,另一方面需要发送到告警推送模块进行统一的推送(短信,邮件等)

(6)离线计算引擎会读取实时产生的告警数据,进行二次统计,这里一般采用定时计算。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容