有那么一天晚上,你接听到一个报警电话,你有点隐隐的不安。 “怎么突然报警了?代码我都一个月没动过了?”

“怎么办?” 默默地666? 不!那不符合价值观! TC 报警接踵而来,时不我待。 打开 Qtalk 问同事——改了啥?没有? 拉进来个 QA——有发布吗?没有?? 啊!友军问我是不是服务呲了,好吧,把他也拉进来吧,额……一下又进来 DEV,QA,PM 三人组。 这时,Noc 找上了门,好吧,报个故障先。 问题好奇怪啊,日志看不出问题,是不是机器有问题?还是网络有问题? @noc 机器有问题吗?网络有问题吗? 你猜对了,OPS 入群了。宿主正常、网络正常、解析正常,OPS 没做变更 我勒个去,到底哪出问题了。群里的人越来越多… (幸好我们的 Qtalk 对大群的支持一流)

noc 在问影响范围有多大?又有人报故障了,跟你们有关系吗? 鬼知道!我哪知道谁在依赖我的服务! “我曾经改了一个 Qconfig 配置,应该没关系吧?” “擦,什么时候改的?!改的啥?!” ………… 破案了。一个配置引发的群体事件。耗时10分钟。

是的,都是我瞎编的,聪明如你处理故障怎么会如此笨拙。

不过,试想在你正在熟睡中被报警惊醒;如果你还只是个新人,遇到一个莫名问题会不会很紧张?会不会不知所措?甚至淡淡的惶恐? 人类最古老最强烈的恐惧,便是对未知的恐惧。随着人类对信息获取的多样、直接、准确,人类社会终于从蒙昧和焦虑中走了出来,沐浴在自由阳光中,如此喜乐、幸福。 同样,对于工程师来说,处理故障时最大的困惑也是对各种信息、时间掌握的不够及时、准确、也就无法利用他们经过长期逻辑训练的大脑来串联出整个故障时间线,定位问题、解决问题。 在 Qunar 的世界中,充斥了各种报警:TC 报警、业务报警、主机报警;无时无刻在发生着各种事情:发布、部署、Nginx 变更、Dns 变更、Qconfig 修改;也无时无刻的在出现各种错误。在不影响你负责的应用时你不会也无需关心他们的存在,但是当你的应用出现问题的时候是不是很想第一时间知道这些事件对你的应用有没有关联? 当你刚接手应用或者这个应用已经运行了很久,你是不是也会忘却它依赖了哪些服务?又有哪些服务依赖了它? “这台机器能回收吗? “ “好像没人用了,不过先别回收,可能有应用再用” 你跟 OPS 有过这样的对话吗?鬼知道哪些应用依赖我了。

现在,你不用再为信息不透明不周全而苦恼了!只需在你的浏览器中输入以下地址:http://event.corp.qunar.com 你的应用健康状况,事件关联,尽在掌握! 下面,待我给众位看官细细道来:

首先映入眼帘的是健康看板。这里展示的是你所负责的,有健康隐患应用。 我们姑且简单的将其按照严重从重到轻划分为:危险、异常、注意三个等级。各位一定要问了:“你是凭什么把我的应用诊断为危险的?我的应用跑的很正常啊。”不错,你的应用现在可能的确能提供正常服务,但是天有不测风云,应用也有旦夕祸福,前一分钟欢快的跑着,后一分钟就 crush 了,这种事情将一直伴随我在我们的职业生涯中。 言归正传,目前我们采用的分析指标来自公司权威的两个监控系统发出的报警,分别是 TC 的 Cerberus 和 OPS 的 Watcher,包括业务报警和机器报警,我们利用我司大数据中心提供的数据服务进行指标采集和数据分析,分析维度包括报警时长、频率、重要程度,同时关联应用的业务特性、资源使用情况等,经过一系类规则匹配和算法计算(想知道内幕吗?欢迎参与我们的数据分析规则/算法开发工作中来)计算出应用当前的健康程度。同时,我们也会将相关时段内公司级别的变更、故障罗列出来,供您参考。

当你发现了应该有健康隐患的应用出现了,是不是很好奇它到底怎么了?不要压抑自己,去点它!哇!你看到了什么?是不是很奇妙!

是的,我们贴心的为您提供了应用的关联拓扑关系,不用我多做介绍了吧,还有比图画更直观的吗?看看谁调用了你的应用,你的应用又调用了什么其他服务?http 调用还是 dubbo 调用?每分钟调用次数是多少?一目了然吧?是不是很惊讶你的服务如此重要,要是挂了是不是整个 Qunar 就一起挂了?你的去哪儿的未来!

好了,在往下看,是与你系统可能有关的各个事件,他们有的可能直接与你的应用相关,有的可能关系不大,就看你能不能从里边分析出蛛丝马迹了。你!才是你开发出的应用的王!我们为您提供各种信息作为参考,你才是做出决策的人,请相信自己! 好了,目前就这么多了。我知道你要吐槽了: 我司十余年的历史积淀才接入这么区区几个系统的事件! 只有 http 和 dubbo 调用关系,数据库调用呢,qmq/kafka 的生产/消费关系呢?我们自己开发的 rpc 调用你们怎么显示? 是的,我承认我是一直青蛙,坐在井底,并不知道你们还有很多设计的无与伦比的精妙系统在维系着我司正常工作,请大声的告诉我们!我们来接入,让更多的应用知道还有人默默地关心着他们。 请把你掌握的各种调用关系告诉我们,我们来丰富应用的拓扑图,让应用不在孤单。 朋友们,我们的系统刚刚起步,很多不足和问题,希望大家都来帮助我们、鞭策我们,一起建设出一个信息共享的、透明的、准确的Qunar 事件监控系统。 下面是不分排名先后的感谢: 感谢 OPS 提供了宝贵的运维经验,他们是 Qunar 重要的非物质资产。 感谢大数据中心提供的数据服务,有了他们冰冷的数据才能发挥出无限的能量。 感谢 TC、CM 等平台事业部各部门的大力支持,提供了各种公共事件的接入。

厉害了我的Qunar!看我工程师写轮眼!相关推荐

  1. 厉害!40 张图看懂分布式追踪系统原理及实践

    作者 | 码海 来源 | 码海 在微服务架构中,一次请求往往涉及到多个模块,多个中间件,多台机器的相互协作才能完成. 这一系列调用请求中,有些是串行的,有些是并行的,那么如何确定这个请求背后调用了哪些 ...

  2. 熊绎:我看软件工程师的职业规划

    /* 本文转载自:http://blog.jobbole.com/25440/ 由@熊绎 投稿于伯乐在线 这篇文章对我这个即将从一个二流农业院校毕业的IT从业者有很大的触动,相信它会成为成为我今后职场 ...

  3. 熊绎:我看软件工程师的职业规划(转载)

    转自:http://blog.jobbole.com/25440/ 写这篇文章源于某条微博评论,原内容大概是一个快40岁的人还在当程序员写代码,评论内容大概是:有些人就喜欢当程序员写代码,无可厚非.但 ...

  4. (转)熊绎:我看软件工程师的职业规划

    原文链接:http://blog.jobbole.com/25440/ 写这篇文章源于某条微博评论,原内容大概是一个快40岁的人还在当程序员写代码,评论内容大概是:有些人就喜欢当程序员写代码,无可厚非 ...

  5. 达内看软件工程师的职业规划

    写这篇文章源于某条微博评论,原内容大概是一个快40岁的人还在当程序员写代码,评论内容大概是:有些人就喜欢当程序员写代码,无可厚非.但是,现实情况中是否真的能做到"无可厚非"呢?我思 ...

  6. 厉害了!一文看懂各大互联网支付系统整体架构

    在互联网产品运营中,有很多小伙伴或许会遇到这样的困扰:产品好不容易推出来了,流量成本节节攀升,用户的活跃度.留存度却持续下降. 因此在瞬息万变的互联网产品环境中,需要研发接入支付系统来加入商业行为的闭 ...

  7. nedc和epa续航里程什么意思_NEDC、WLTP和EPA续航里程标准谁最真实?看比亚迪工程师怎么说...

    随着新能源汽车的不断增多,消费者越来越重视新能源汽车的续航里程.但是在选择新能源汽车的时候,在车辆配置表上面会有几个不同的续航里程,这让很多消费者摸不着头脑,不知道以哪一个为标准. 据氢云链了解,现在 ...

  8. nedc和epa续航里程什么意思_NEDC、WLTP和EPA续航里程标准谁最真实? 看比亚迪工程师怎么说...

    随着新能源汽车的不断增多,消费者越来越重视新能源汽车的续航里程.但是在选择新能源汽车的时候,在车辆配置表上面会有几个不同的续航里程,这让很多消费者摸不着头脑,不知道以哪一个为标准. 据氢云链了解,现在 ...

  9. 看软件工程师带你了解不一样的兼容性测试

    1.兼容性测试含义 兼容性测试是指要测试的软件在不同的硬件平台上.不同的应用软件之间.不同的操作系统中.不同的网络环境中是否可以正常的运行.有无异常的测试过程.即是通常说的软件的可移植性. 2.兼容性 ...

  10. [转]熊绎:我看软件工程师的职业规划

    http://developer.51cto.com/art/201208/354658.htm 转载于:https://www.cnblogs.com/wowk/p/3169633.html

最新文章

  1. 游标对于分页存储过程
  2. 22条API设计的最佳实践
  3. CentOS下与Apache连接的PHP多版本共存方案实现详解
  4. CTFshow php特性 web100
  5. 对话:在敏捷中,是否可以仍然用需求来替代用户故事?
  6. 《JS设计模式笔记》 5,适配器模式
  7. Error:Could not resolve all files for configuration ':app:preDebugCompileClasspath'. Could not fin
  8. OpenLDAP的安装测试及管理
  9. html博客源码_5分钟搭建私人Java博客系统——Tale
  10. 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单
  11. Spring MVC 事务配置
  12. 开发者论坛一周精粹(第六十三期) WHM自动脚本修复ssh问题
  13. 疫情核酸检测,应考虑使用刷身份证的方式
  14. 算法导论 pdf_[LaTeX 宏包] clrscode3e - 排版《算法导论》风格的伪代码
  15. 投影仪与计算机连接方式,投影仪怎么连接电脑 电脑与投影仪的连接方法
  16. Xshell上传文件方法
  17. 大作手操作体系:突破后回调不下箱体可加仓,但是也有失误的时候!
  18. 开发愤怒的小鸟的Lua语言:Wax框架详解
  19. java中以yyyyMMddHHmmss格式取得系统时间
  20. 飞桨领航团AI达人创造营第一课2021.7.26

热门文章

  1. can't connect local MySql Server though socket /tmp如何解决
  2. PLSQL复合变量与参照变量
  3. JNI 概述 (翻译)
  4. Python多线程(threading模块)
  5. 从零基础入门Tensorflow2.0 ----八、39.4. gpu4
  6. Arcgis利用点数据集(txt数据)转为shp线数据(含案例)
  7. Java并发编程实战之基于生产者消费者模式的日志服务读书笔记
  8. Gson之TypeAdapter的工作原理分析(1)
  9. ListView分组实现方案(一)
  10. Flink 1.11 新特性之 SQL Hive Streaming 简单示例