Sean Lynch谈Facebook Claspin监控工具的由来

标签: sean lynch facebook | 发表时间:2012-09-26 14:08 | 作者:
出处:http://pipes.yahoo.com/pipes/pipe.info?_id=10560380f804c7341f042a2b8a03e117

InfoQ中文站曾经报道过 Facebook的工具文化,Claspin就是该文化的产物,形象来说,Claspin就是Cache的健康热图。该工具的创始人Sean Lynch在一篇博客中分析了它的由来。

Sean Lynch在Facebook担任应用运维工程师,他加入的是产品工程部门新成立的缓存性能团队。Sean在 一篇博客中提到该团队的目标:

处理多种缓存系统的健康问题,同时加快问题处理和解决过程,该过程要先回答这个问题:“这个问题是缓存引起的么?”

最后,Sean所在的团队开发了一个监控工具Claspin,使用易于解读的热度图展示缓存系统情况。接下来,Sean先深入介绍了Facebook的缓存工作机制。

Facebook有两个主要的缓存系统:Memcache,该系统相对简单,复杂度都在客户端;TAO,缓存图数据库,自己完成对MySQL的查询。在这两个系统之间,我们有几千个图标,有些将数据收集到Dashboard中,展示客户端和服务器收集到的不同的延迟、请求率、错误率统计数据。这些图表和Dashboard的大多数都由Facebook的“Operations Data Store”支撑,简称为ODS。一开始,这种机制没有问题,但随着Facebook在规模和复杂度方面的不断增加,想知道哪里出了问题变得越来越困难。因此,我开始想:如何把这些已经积累下来的数据、经验和知识用起来,辅助解决问题,让人们只要卡看一眼,就知道缓存现在的状态。

Sean想到的方法,是把问题可视化。他一开始本打算用类似于交通信号灯的方法,但没多久他就意识到:这种简单的双向工具不能完全确定某些东西是否出了问题。

因此,我开始想如何同时把所有相关数据放在一个图表里面,同时我们还要根据经验知道:当前这些指标的值是否需要我们担心。首先,尝试着写一个命令行工具,列出所有的主机和关键指标数据,以“糟糕程度”排序。我对于“糟糕程度”的定义是:根据每个指标各自的值给主机排定顺序,然后,根据元组(by tuple)排定次序和主机。比如,某台主机在超时和TCP重新传输方面排第一,但在请求率方面拍第十,它的排序主键就是(1,1,10)。同时也要展示主机所在的机架,这样当某个机架中的一些主机出问题时,很快就能发现问题。这么做的输出是很多文本,而且需要了解内情的人解读。虽然这让我的工作变得更容易,但这并不是我想要的。

最终,Sean打算使用热图(Heatmap),不过他一开始并不清楚:以这样二维的方式展示数据对于用户是否有意义。

很明显,我们希望热图中每个像素代表一台主机,机架们能组合在一起。然而,我们的机架中的主机数目并不一样,当每台主机中的指标有十来个时,也不清楚如何为各个主机标示颜色。当时,我们内部已经使用了热图,展示一组主机中的单个统计数据,这些主机组织成集群和机架,不过布局很松散,而且那么多服务器也无法放到同一个页面中。由于已有的热图是通用工具,而且颜色基于现有的统计数据,无法区别何为“好坏”。最后,我认识到:我们真正关心的,是某台主机是否出现问题。所以我决定,用一台主机“最热”的统计数据来标示它的颜色,热度来自于对预先定义的阈值的计算。做法很简单,但是让我们能把以前的经验和知识中关于什么是不好的数值编码到这个视图中。缺少某个统计数据的主机被标示为黑色,说明主机可能宕掉了。尝试过多种安排、聆听多人反馈后,我决定为每个集群绘制一张独立的热图,用机架数字排序,每个机架用类似“贪吃蛇”的样子绘制成垂直的方式,这样机架的展示就是连续的,即使他们可能在上面或者下面弯转。机架的名字按照数据中心、集群、行这样的方式自然排序,哪个层次上出了问题,就很明显了。

在一个朋友的建议下,Sean使用“Claspin”作为这个工具的名字,Claspin 是一种蛋白质,监控细胞中的DNA损伤。

我们用Claspin可以立即把海量信息可视化,让我们更容易发现问题和模式。在一个30寸的屏幕上,我们可以同时放下1万台主机的信息,它们的颜色由30多个状态数据决定,并在秒级或分钟级实时更新。这个数据量很大,Claspin使用了标准的Facebook组件来处理,收集所有服务器端状态,并把它们发送到浏览器,颜色的判定通过JavaScript完成,热图的绘制用SVG。即使出现一个问题,也很容易发现,因为特定的问题会在屏幕上有特定模式。

Sean接下来在博客中展示了一些图片:

上面的标签页包括不同视图,大多数是Claspin监控的不同服务。下面的蓝色按钮让用户可以用单一状态来给主机上色。

 

鼠标箭头放在某个主机上,就会展示出该主机所属机架,并弹出关于主机名、机架号码、以及所有Claspin对该主机监控的数据,同时数值文本的颜色也会根据Claspin对该状态的阈值设置有所不同。上图中,你可以看到下面被包起来的一个机架,展示出不同的方向。没有阈值定义的状态是灰色,但是是放在一起的,这样就可以知道为什么某个主机有很高的超时等等。

此后,Sean其他成员改进了Claspin,加入了对更多后端和自定义调色板的支持。这对于无法区分红绿颜色的人很有帮助,对无所谓好坏的值也是有帮助的。

他们还把配置文件放到版本控制文本文件中,而且可以同时传播更新。配置变得更为用户友好后,使用Claspin监控服务的团队数目翻了一番还要多。

最后,Sean提到了Claspin带来的好处:

当我刚刚部署Claspin时,上面的图中有很多红色。Claspin帮助很多人更易于发现问题,从而让我们发现“黄色”预警,并阻止更多“红色”出现。在我看来,验证统计数据和阈值选择是否正确的最好方法,就是当红色出现之后,通过改善服务,全部变成绿色。

微博上,有人 分享了Pinterest创始人本·西尔伯曼在光速创投夏令营分享的创业经验:

雇请优秀的人,即便还没有明确定义好的工作(Hire Great People, regardless of if you have a defined role for them):他对优秀的人的定义是,可以在不同角色上有附加价值、能在你现在和今后遇到问题时提供解决方案。

毫无疑问,Sean Lynch就是一位优秀的人。

郑柯 InfoQ中文站总编。做过开发,当过PM,干过销售,搞过市场,最终还是回到媒体。实用的理想主义者,相信:每天改变一点点,这个世界会更好。

相关 [sean lynch facebook] 推荐:

Sean Lynch谈Facebook Claspin监控工具的由来

- - InfoQ cn
InfoQ中文站曾经报道过 Facebook的工具文化,Claspin就是该文化的产物,形象来说,Claspin就是Cache的健康热图. 该工具的创始人Sean Lynch在一篇博客中分析了它的由来. Sean Lynch在Facebook担任应用运维工程师,他加入的是产品工程部门新成立的缓存性能团队.

Sean Parker:Spotify 是 Napster 愿景的实现

- Neo - 爱范儿 · Beats of Bits
看过《社交网络》的人,一定对 Sean Parker 印象深刻. 他在 19 岁的时候与  Shawn Fanning 合作创建了音乐分享服务 Napster,在 Facebook 发展早期指导过 Mark Zuckerberg, 并且担任了 Facebook 第一任总裁. 他被公认为是一位网络先知,熟人和同事称呼他为”天才“.

访谈:凝视中国的眼睛——Sean Gallagher

- 骕 - 1416 教室
“凝视中国的眼睛”这个双语访谈栏目,又因为我的忙碌和思想上的懒惰,出了一期之后,很久没有更新了. 马上就要开始的photocamp 14的主题是自然,第二期“凝视中国的眼睛”是拍摄中国环保问题的英国摄影师Sean Gallagher(中文名韶华),这个时间将之介绍给大家,正好也和我们的活动有所呼应.

增长黑客之父 Sean Ellis :如何复制“爆炸性增长” | 演讲全文&专访

- - 雷锋网
12月17日 Growing Io 数据驱动增长大会邀请到了硅谷大咖,“增长黑客理论”(Growth Hacking)之父 Sean Ellis 来到了现场. Sean Ellis 在2010年提出增长黑客理论,核心理论就是通过对用户行为数据的精细挖掘,有针对性地对产品进行快速迭代,从而实现用户数量爆炸性增长,如“被黑客操纵”一般神奇.

中国的Facebook?

- Lorna - It Talks--上海魏武挥的博客
腾讯近日很低调地推出了一个名为“朋友”的网络服务(也是一个使用独立域名的网站),这是一个与时下社交网站,比如人人、开心等非常类似的产品. 与它们一样,目前这个“朋友”上也加载了一些应用,当然,一贯的,以腾讯自家出品为主. 而且,我个人以为,未来会有更多的腾讯在QQ这个客户端上的应用,逐步向这个网站迁移.

Facebook初探

- 亦农 - 王建硕
今天的湾区阳光灿烂,280州际公路两边的绿色山坡和蔚蓝的白云,让人觉得自己是Windows XP桌面上的一个图标. 下午,2点,终于来到Facebook这个神奇的公司. 他们的新家在南加利福尼亚街的最里面,一幢两层的楼里. 他们刚刚从车位紧张的Palo Alto城里搬到这里,据说一层楼又要搬了. 我好像是他们再次搬地方前的最后一批访客.

Facebook败给Foursquare

- We_Get - GeekPark 捕风捉影
除了我们熟知的QQ,互联网世界里以自身强大资源来复制小公司的产品和服务的事,绝不少见. 去年8月份,Facebook推出了Facebook Places,这是一个类似Foursquare的基于地理位置的手机在线签到功能. Foursquare当时是社交网站新贵,几个月以后它成了代表着全球互联网方向中的SoLoMo中的Lo—Location.

Facebook的标语

- - 阮一峰的网络日志
Facebook即将 上市,一时之间成为全球新闻热点. 为了不错过商机,有人将Facebook内部的标语做成 海报,每张20美元,放到网上卖. 据说,从扎克伯格创业初期,这些标语就贴在Facebook的办公室,作为行动准则,激励员工. 虽然这些标语很简单,但是我发现,它们真的具有警醒的效果,能指导你做出正确的事.

读facebook效应

- - 搜索引擎技术博客
     我的一位室友说:“嘿,我来帮你”. 我回答他:“兄弟,你不会编程”,然后他周末回家买了一个perl编程入门的书,告诉我‘我现在准备好了’. 我就说;“兄弟,网站不是用perl语言编写的”.      我们并不想让用户在网站停留尽可能长的时间,我们所做的是让人们可以在网站用户好的体验,使他们在上面所花的时间有价值.

Facebook 开源 Detectron

- - 最新更新 – Solidot
Facebook 在 Apache 2.0 许可证下 开源了它的目标识别平台 Detectron, 源代码托管在 GitHub 上. Detectron 用 Python 开发,基于 Caffe2 深度学习框架. Facebook 同时公开了超过 70 个预先训练的模型. Detectron 项目始于 2016 年,实现了一系列最新的目标识别算法如 Mask R-CNN,该软件平台在社交巨人的视觉感知系统的进步上扮演了重要角色.