码迷,mamicode.com
首页 > 其他好文 > 详细

设计讨论:监控系统,监控什么?

时间:2016-12-12 07:50:12      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:监控;设计思路;

一个监控系统要监控些什么?


从粒度上,从小到大可以列出:一两行代码、一个方法、一个服务接口、一个服务的调用链、一个应用服务(应用端口、jvm的cpu和内存占用等)、硬件(cpu、网卡、硬盘等)。

对方法的监控,可以扩展到对http链接/连接池的监控、对数据库连接/连接池的监控、对其它服务的调用等。

对一两行代码进行监控,不可避免的要侵入到被监控端。对方法、服务接口的监控,可以利用在适当位置织入AOP的切面。一个服务的调用链,则对服务的调用双方都有入侵。对应用、硬件的监控,和应用本身脱钩,但是对服务器有入侵。


从监控方法上,可以在被监控端注入agent、可以监控日志、可以用JMX工具、可以在服务器上跑脚本,等等。

注入agent需要注意性能和健壮性、可扩展性。不能因为agent而影响到被监控者的性能、功能;也不能因为监控系统增加了新的监控功能,而使得旧的agent无法正常运行。

监控日志虽然不需要直接侵入被监控者的代码,但是通常都要求被监控者按一定规则输出日志。这是另一种形式的代码入侵。另外,日志监控会有一定的延迟和不可靠性。例如,如果一段时间内都没有日志,监控系统如何判断此时是没有业务调用,还是应用已经OOM了?

JMX工具提供的是标准接口,除了JVM之外,应该还可以监控一些内存中的实时数据。服务器脚本方面,对开发人员来说可能会涉及一些学习成本。


除了监控外,监控系统还需要具备报警和统计分析功能。

报警功能一定要保证实时性和可靠性。

统计分析功能要小心数据库的增长。

本文出自 “编程的摩羯男” 博客,谢绝转载!

设计讨论:监控系统,监控什么?

标签:监控;设计思路;

原文地址:http://winters1224.blog.51cto.com/3021203/1881767

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!