如何对生产系统进行全链路监控
系统运行情况如何?
运行良好?不堪负载?已经挂掉?
提供的服务质量如何?
成功?失败?异常?
成功多少?失败多少?
响应时间多少?
吞吐量怎么样?
什么原因导致一个服务慢,是远程调用?还是SQL调用?还是其他原因?
出现问题如何追踪?
看日志?
跨系统调用故障如何排查?还是看日志?
是什么导致了一个核心服务出现大量异常?
统一应用监控中心⊙应用状态监控
⊙用户满意指数监控
⊙多维度监控指标视图,包含TPS、平均响应时间、错误率以及长响应量等监控指标视图
⊙将服务耗时拆分为调用耗时、SQL执行耗时、CACHE访问耗时以及自身耗时
⊙问题快速诊断
⊙跨应用调用链追踪
⊙非常灵活的告警规则
快速接入1.maven依赖1).将Tesla版本升级到2.1.0-RELEASE以上版本
2).增加tesla-monitor-client与tesla-monitor-agent的依赖
2.客户端配置在项目工程父容器或者任一子容器内加入以下配置
对于数据库层面,目前仅支持基于Mybatis提供的插件机制,配置实例如下:
说明:需要在每一个sqlSessionFactory下增加插件
3.应用账号申请接入监控中心需要在Tesla统一监控管理中心进行注册,相关事宜请联系Tesla统一应用中心负责人。负责人会进行应用的新建并分配管理员账号,应用管理员登录平台即可看见应用运行情况Q
接入监控中心后,
对被监控系统会造成多大的性能影响?
监控中心设计的原则优先保证被监控应用系统的稳定性。CPU消耗率小于2%,内存增长率小于5%,对服务响应时间的影响小于5ms。
Q
监控中心是否高可用?
监控中心目前采用多实例部署,监控客户端自动故障转移。极端情况下,即使监控中心都挂掉,也不会对应用系统正常运行产生影响,只是监控功能不可用。待监控中心恢复后,监控功能也自动恢复,无需应用系统重启。
Q
是否可用于生产环境?
可以。目前已部署到生产监控M1区
Q
是否可以用于非Tesla项目?
可以。对于基于java开发的项目,我们提供相关的SDK,需要用户主动嵌入SDK。目前提供事务Transaction、事件Event、业务统计指标Metric三大类API。
Transaction表示跨越边界的程序执行,例如远程调用、SQL执行、URL访问等,表示的是一段代码的执行。
Event表示事件的发生,例如一次异常的发生,与事务相比缺少执行耗时,因此开销更小。
Metric是对一段时间内业务信息的统计,如交易金额、交易次数、交易金额平均值等,以分钟为最小周期进行统计。
数据模型
Transaction模型Event模型Metric模型功能展示1.应用大盘
1).不同的颜色代表不同的应用状态
绿色-表示系统目前运行状态正常
灰色-表示目前系统处于维护状态
黄色-表示目前系统存在WARNING级别的告警
红色-表示目前系统存在ERROR级别的告警
2).右上角的数字表示目前系统存在多少未处理的告警数量
3).下方的数字表示用户满意度,值越高表示系统性能越好
2.应用详情系统吞吐量、平均响应时间、错误率、长响应量等多维指标视图。
各类监控指标报表:访问次数、执行总次数、失败次数、平均响应时间、执行总次数、执行总耗时、95线、线、响应时间方差等信息。
3.服务列表
提供具体服务的执行次数、平均响应时间、执行总次数、执行耗时、95线、线、响应时间方差、最长响应时间、最短响应时间等信息展示。
点击链接可以查看服务下各类耗时占比。
单个服务下的各类耗时汇总占比
单笔服务执行的耗时占比
4.问题列表
包含了错误以及长响应等预定义的问题类型。点击链接可以进入问题详情,对于异常类型的问题可以查看异常堆栈
5.异常堆栈
6.调用链
提供一次服务请求执行所涉及的服务调用、URL访问、数据库访问、缓存访问等所有信息。图中可以清晰的看见服务的执行结果,服务的耗时在什么环节,是哪一个环节导致服务失败
7.告警规则
可以根据监控类型、监控对象、监控指标在不同的时间段[例如09:00-17:00]提供不同的告警规则,以满足各种业务场景的需求
北京最大白癜风医院北京治疗白癜风疗效最好的皮肤病医院