大型ESB服务总线平台服务运行分析和监控预警实践


大型ESB服务总线平台服务运行分析和监控预警实践

文章插图
 
今天准备谈下ESB总线平台建设项目中的服务运行统计分析 , 服务心跳监测 , 服务监控预警方面的设计和实现 。可以看到 , 在一个ESB服务总线平台上线后 , SOA治理管控就变得相当重要 , 而这些运行监控分析本身也是提升ESB总线平台高可用性的关键 。
对于ESB总线本身的高可用性建设 , 我在前面写过一篇文章可以参考 。
大型集团ESB服务总线平台建设项目高可用性实践总结
【大型ESB服务总线平台服务运行分析和监控预警实践】今天主要分享下对于这类大型ESB总线平台建设项目在服务运行统计分析 , 服务心跳监测 , 服务监控 , 服务预警等配合高可用性能力方面的一些实践总结 。
对接口服务运行统计分析的思考对于ESB服务运行监控 , 从SOA服务管控和治理层面来看 , 经常会涉及到的KPI性能指标并不多 , 主要还是体现在运行次数 , 运行时间等关键的维度 , 如果考虑到指标本身之间的关联关系方便分析 , 那么还需要增加服务运行的并发数(分钟级) , 服务调用的数据量等关键指标 。
举例来说 , 当我们发现服务调用变慢了 , 即服务运行时间明显增加了 , 那么我们需要分析是否是该服务本身的并发量是否增加了 , 还是说服务本身调用的数据量增加了 , 还是说其它服务调用的并发量和数据量增加了导致该服务的资源被占用等 。这些都是可能需要涉及到关联分析的地方 。
首先我们来看下单次服务运行能够采集和记录的关键数据
  1. 服务运行时间(服务请求开始 to 服务请求结束)
  2. 服务运行是否成功(True or False)
  3. 服务传输的消息报文大小
  4. 服务名称
  5. 服务提供的系统 , 包括服务提供系统归属的组织类别等
  6. 服务消费方系统
  7. 正常调用还是非法调用

大型ESB服务总线平台服务运行分析和监控预警实践

文章插图
 
接着再来看某个时间周期的情况 , 比如1个小时 , 1天 , 1周或1个月的统计时间周期
  1. 运行次数 , 对运行次数进行求和
  2. 最大分钟级并发数 , 取并发数的Max值
  3. 异常数 , 对异常数按时间点进行求和
  4. 告警数 , 对告警数按时间点进行求和
  5. 服务最大运行时间 , 最小运行时间 , 平均运行时间
  6. 服务消息报文最大报文 , 最小报文 , 平均报文容量
对于时间周期只我们我们统计的一个维度 , 而对服务进行分析的时候还需要考虑如下维度
  • 按服务目录-》按服务
  • 按企业-》子公司-》子组织
  • 按应用域-》按应用系统-》按模块
  • 按服务类型-》服务子类型
  • 按服务提供系统 , 服务消费系统
经过以上分析 , 我们看到一个最底层的服务运行日志信息 , 就有了按时间维度 , 按组织 , 服务类型 , 系统等多个维度进行维度分析和统计的可能 。而这些恰好又是我们进行自定义报表和维度分析的基础 。所有的统计分析基本都会基于以上基础运行信息展开进行 。
基于以上思考 , 我们整合了一个面向组织和业务系统的服务运行统计分析报表 , 可以按系统的维度详细的查看到自己提供和消费的接口服务的运行情况 , 异常情况 , 并发量和数据量 , 异常和告警等各种关键信息 。如下参考:
大型ESB服务总线平台服务运行分析和监控预警实践

文章插图
 
为了做完整的服务运行和性能分析 , 我们最好还需要对中间件资源池(应用服务器和数据库服务器)的CPU , 内存利用率 , 存储使用量等关键指标进行实时的性能分析和监控 。在实际的性能分析和监控中往往也是首先会从CPU和内存告警上第一时间反应出服务当前运行出现异常(如大并发 , 超大数据传输等) , 然后我们在通过实际的日志监控分析功能快速的查看当前服务运行的并发情况 , 传递的数据量情况等 。
当我们发现如果一个服务经常运行大并发 , 大数据量的异常调用的时候 , 则需要对服务单独启用流量控制策略等 。比如:


推荐阅读