系统监控,是做系统必须解决的一个问题。创业型公司,微服务以前,如何用半天的时间,搞定一个可扩展,通用的http监控框架,是今天要聊的话题。
有哪些常见http监控需求?
常见的http监控需求有两类:
(1)html页面监控;
(2)返回json数据的http接口;
常见的http监控怎么玩?
可以通过access日志,观测参数来实施告警:
(1)http非200状态码;
(2)http请求响应时间;
常见的http非200状态码,以及响应时间监控有什么弊端?
大部分公司,都有自己的404页面。
画外音:当然,不排除有些公司把tomcat异常信息透传到页面的。
这个页面的http状态码是200,且返回速度极快,根本不能代表html页面的真实运行情况,很难起到真正的监控作用。
画外音:不是说http状态码监控没用,相反,http状态码的监控是很有必要的,http状态码404说明系统一定有问题,但http状态码200不能说明系统没有问题。
http状态码不能说明问题,那什么才能代表http没有问题呢?
每个http都有自己的业务特性,必须符合业务特性的页面,才是正常的。
特性一:需要返回特定的页面内容。
例如,访问http://daojia.com/,一定要返回一个含“家政”字眼的html页面,才是正确的。
特性二:需要返回特定的接口内容。
例如,RESTful的获取用户信息接口,假设传入uid=123,会传回:
{“RET”:”SUCCESS”, “name”:”shenjian”, “uid”:”123”}
即,http://daojia.com/userinfo/get/?uid=123,一定要返回一个含“shenjian”的字符串,才是正确的。
于是乎,得到了可扩展通用http监控框架的思路:不仅仅要监控http状态码,更重要的是,要监控http返回内容的业务特性。
可扩展通用http监控框架的细节如何?
整个http监控平台的架构如上,分为监控平台模块,信息管理模块,