做过运维的小伙伴都知道,管理Http ERROR是一个耗时耗力的痛苦历程。公司的老大们常常都在问” ××用户访问出问题啦,看看是啥问题?”,”最近系统怎么样,有没有什么报错?”俺们总不能盯着日志瞅一天吧,阶段性读日志的时候,信息又太多,可读性很差。很多情况下真是压力山大啊!
下面是我们的一个系统架构图(简图),相信很多互联网公司都有类似的架构:
以前定位一个问题的过程往往是这样的:首先需要查看nginx的error.log,如图:
根据ngix日志没有办法直接定位问题,还要结合查看tomcat的error log分析有没有程序的问题。
从日志中发现一个空指针类型的Error。想修复这个问题,俺们运维的人员可搞不定,需要拿着日志找研发分析代码逻辑修复这个问题。
使用OneAPM管理Http ERROR后,点击3下搞定问题:
登陆OneAPM账号,就会看到监控的Application如图:
从图1.的地方,很容易的看到在08:00到14:00时间内Error发生的次数和占据的比例,点击”图2.事件”进入Error的详细页面:
进入到错误信息的页面,会看到08:00到14:00时间段内的每一次Error信息和trace列表。
下方的列表中展示了的最近的几个错误:
uri发生了
java.lang.NullPointerException,捕获到3次错误及发生该错误的Http请求。
我们点击箭头指示的uri跟进对应的代码行信息,如下图:
很轻松的定位到2015年4约7日 11:50发生的这次Http ERROR,请求参数为
URI://http-bio-b2bo-exec-5,在代码java:54出现了Error。
很直观,这样的效率非常赞!
结论:
用OneAPM产品管理Http的Error的效率很高,传统的解决Http Error流程比较繁琐,需要通过逐行查看相关日志,去代码中追踪问题,过程比较缓慢。而且对于公司的CTO和开发人员也很有帮助,能够很直观的看到公司业务错误情况, 目前支持的语言很多,例如:java、python、.net、 Node.js、PHP、Ruby。