博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计讨论:监控系统,监控什么?
阅读量:7308 次
发布时间:2019-06-30

本文共 722 字,大约阅读时间需要 2 分钟。

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

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

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

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

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

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

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

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

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

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

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

本文转自 斯然在天边 51CTO博客,原文链接:http://blog.51cto.com/winters1224/1881767,如需转载请自行联系原作者

你可能感兴趣的文章
js实现队列的操作以及对队列中数字的冒泡排序的可视化
查看>>
你必须知道的Linux命令和FHS知识
查看>>
jquery
查看>>
关于301重定向--对301跳转的了解(上)
查看>>
WDS系列之三:创建发现映像
查看>>
Android Studio第二十九期 - RecycleView的表格形式
查看>>
11.MyBatis与Spring整合
查看>>
Linux系统挂载U盘
查看>>
淘宝搜索算法现状
查看>>
AD活动目录的应用程序目录分区详解
查看>>
【病历书写专题】病历书写系统、课件及规范资源汇总
查看>>
发送intent到homescreen
查看>>
jboss单机和集群配置需要注意的几个关键点,亲测总结!
查看>>
sql over的作用及用法
查看>>
2013让数据说话,2013有各种表单
查看>>
Powershell检查AD对象是否存在
查看>>
MySQL常用操作
查看>>
加密、解密、openssl的基本应用以及自己创建CA
查看>>
使用对称加密来加密Spring Cloud Config配置文件
查看>>
JConsole监控jvm
查看>>