现状

  • 为什么要做监控,为什么要自己做?

    1、对各项产品数据进行监控,事前及时预警发现故障、事后提供翔实的数据用于追查定位问题 2、提供给全公司,各个项目数据监控的平台 3、反应健康度,稳定性,状态

    监控的目的不言而喻,直接反应系统的健康度,稳定性,状态,并提供更友好的可视化界面 目前开源监控系统很多,Zabbix,Nagios,Centreon,Logstash,Ganglia+Cacti 为什么自己做,业务数据的复杂度和业务独立性,日常分析问题、定位问题的经验变成一条条系统,但是生搬硬套开源方案,并不是最优方案。

  • 做成什么样子,自动化

    保障基本的数据展示外,让监控更智能。建立规则,自动发现问题,友好的提示。

基本思路

监控业务预警包括,每一步的触发点和耗时和整个流程的正常异常和耗时情况,并根据一定的策略报警。

监控预警有几个关键指标

  • 实时,数据推送到达需要马上处理
  • 自动,自动发现问题,
  • 通知,人性化提示,并及时通知到对应的人

技术问题

  • 如何收集数据,上传,自搜集
  • 各种维度数据存储问题

总之,量很大

实现

V1.0

流程图

以上初步设想,从完整包分发给分析器出发,分析器做多步的分布式。

但是有个缺点是:组包的完整性牺牲了分析时间。无法及时预警,并不符合监控预警及时性。另外,如果某一个点,重复发送也会造成数据的不正确性。

V2.0

流式数据监控

statsd + influxdb + 绘图

V3.0

进行时~