数据格式化:从数据服务总入口收集到的原始数据做初步数据分析,从原始数据中提取关键信息(譬如请求报文、响应报文、请求时间等)进行格式化,并选择合适的方式将数据持久化到数据库中。
统计分析任务流程
统计分析任务由多个线程共同完成:
TimeStatics线程任务用来分析时间段内的以不同的消费方和服务提供方为维度的调用统计指标,比如:在两分钟内A系统调用B系统时服务响应的成功次数、异常次数、平均响应时间、最长响应时间等数据指标。
Exception线程任务用来将数据服务异常调用记录同正常调用区分开来,异常响应对于运维监控来说更为重要。
All线程任务会将每一笔的数据服务记录到案
Top线程任务用来统计数据服务调用访问时长TopN的调用详情。
数据分析线程解析
四、数据存储
数据存储:数据落地以后需要对落地的数据进行解析分析,将对应的数据拆分成合理的指标单元进行持久化操作。
针对关系型数据库,以mybatis为底层框架实现数据的持久化操作,同时支持将海量监控数据存储在ES中,充分利用ES聚合检索分类分析的能力。
物理表一览
针对不同的调用请求,我们进行分类统计,以请求方、服务提供方、网关实例节点为维度获取如下关键信息进行汇总
服务超时异常个数
系统异常个数
业务异常个数
非法调用个数(未配置服务调用关系)
非法IP调用个数(请求方IP不在白名单内)
成功调用次数
总调用时长
最长调用时长TopN的统计记录
关于告警
没有告警的监控就像一潭死水,没有灵魂。我们不能将注意力全部Focus到监控系统上,所以及时的自动告警就是监控中必须的事情。我们提供统一接口接入邮件、钉钉,借助常用办公系统实现对数据服务的实时告警。
告警维度主要有以下几个:
响应时间告警:针对一段时间内超过指定次数、指定响应时长的告警。
系统状态告警:应用系统状态告警,当应用无法正常运行时告警。
业务异常告警:针对一段时间内的成功响应占比低于指定阈值进行告警。
五、数据展示
数据展示:对指标单元数据整合分析,借助Echarts组件,提供针对不同需求的可视化图
推荐阅读
基于 Spark 的数据分析实践
Skywalking微服务监控分析
基于微服务的日志中心设计、实现与关键配置
关于作者:阿良,普元开发工程师,参与普元EOS8 Studio、EOS8微服务管理平台开发,负责关于服务监控、日志监控等组件开发;参与太平洋保险供数平台建设,负责服务管理注册监控。
关于EAWorld:微服务,DevOps,数据治理,移动架构原创技术分享。关注微信公众号EAWorld!