2014/09/02 第27期

statsd:方便收集/监控服务器的各种指标

当你的系统变得很复杂后,后端服务器就需要有很好的监控和报警机制。监控的东西无非就两种:counting and timing。
  • counting:比如api调用的次数,disk I/O的次数,异常的次数等。
  • timeing:比如api调用的平均时间等。
这里介绍的statsd是很好用的收集/监控服务器指标的工具。它是一个daemon process,nodejs写的。你可以用各种语言来写客户端,发送指标到这个daemon process。它就是很好地支持了counting和timing的数据的搜集,然后可以用GraphiteLibrato把数据可视化出来。 根据我的经验,所有的网络通信都要监控,尤其是到第三方服务的通信,比如google maps, twilio等。第三方服务是会挂掉的,你不想在他们挂掉了的时候,花大量时间去排查(湾区工程师一小时薪水至少$40),然后得出结论不是你自己的问题而是别人的问题。 比如我们用python自己写了一层statsd的封装,可以很方便地收集某段代码调用的次数、时间、异常的数量:
with count_time('google.maps', 0.01):
    lookup_address_from_google_maps(address)
这个例子中,我们监控了跟google maps的所有通讯。它会发送三个指标到Librato可视化出来(如果异常,会发alert给oncall的人):google.maps.count(调用次数),google.maps.time(调用时长),google.maps.exception(如果有异常的话,统计异常的次数)。0.01是sample rate,也就是每100次调用,我们只记录一次的数据(性能上的考虑)。

硬件评测网站32岁的创始人退休

自如PK老罗是这几天国内很火的话题。应个景,这条链接也是关于评测的。是美国著名的硬件评测网站AnandTech的创始人写的退休离职信。 这哥们上世纪末(14岁)在GeoCities(中文叫雅虎地球村)架了个网站,评测各种CPU、主板等硬件(这个话题好像上世纪末和21世纪初的几年很火,那时候大家都喜欢玩超频攒机器)。做了近20年的网站,现在有自己的团队,也有一定规模了。32岁退休,这是多少人的梦想啊。当然,他不会真想开始养老了,应该只是想做点硬件评测之外其他的事情,但文中没说。[更新:他要去Apple!] 不知道自如同学几年后,等zealer做大了,会不会也来这么一封信:)

提高产品/设计的品味

在data mining里,一般有讲garbage in, garbage out。或者粗俗地讲,吃什么拉什么。 这篇文章就是阐述这个道理的。

Amazon买Twitch的原因

作为一个工程师,我更(希望)相信这个文章说的原因:Amazon之所以买下Twitch,是为了得到Twitch经济高效的直播平台(Video Streaming Infrastructure)。

Apple在搞iPhone 6的移动支付

很多人都很奇怪,Apple拥有8亿的信用卡号,卖了数以亿计的iPhone,怎么还没搞自己的移动支付? 这个报道说,Apple在跟American Express合作,American Express为小商家提供支持NFC的终端,然后iPhone 6上开始支持NFC,自然而然地就变成了移动支付系统。American Express一直很注重跟小商家的合作(我也有几张American Express的卡,各种优惠打折活动),有非常好的Small business network。即使是大商家,American Express也有很好的关系。比如美国的大连锁超市Costco就只接收American Express的信用卡,不支持visa和master!所以Apple跟American Express合作的话,可以很好地利用American Express手头的资源。文章也提到,visa其实也同意了跟apple的合作。所以应该不止American Express一家。 btw. 以前我很羡慕其他人用Android,可以用NFC扫描旧金山的公交/地铁卡(Clipper Card)查看余额。