【翻译】用ElasticSearch和Protovis实现数据可视化

18 Nov 2012 Posted in  logstash

搜索引擎最重要的目的,嗯,不出意料就是搜索。你传给它一个请求,然后它依照相关性返回你一串匹配的结果。我们可以根据自己的内容创造各种请求结构,试验各种不同的分析器,搜索引擎都会努力尝试提供最好的结果。 继续阅读……


【翻译】Coro模块文档

18 Nov 2012 Posted in  perl

名称

Coro —— perl唯一真正的线程 继续阅读……


Chrome的APP简单用法

09 Nov 2012 Posted in  web

学习一下简单的chrome app写法。首先,chrome的ext和web app和packaged app就要分清楚。简单说,ext就是可以出现在地址栏右侧的,app是可以出现在任务栏右侧的。而web app其实就是用json描述了一个url地址,packaged app则是最接近普通桌面程序的,需要完整的带有html/css/js等内容。但同时,因为packaged app可以在关闭chrome浏览器后运行,所以有些浏览器上的API它也用不了。 继续阅读……


【Logstash系列】Outputs::ElasticsearchHTTP自动获取随机node

30 Oct 2012 Posted in  logstash

今天在ES群中和medcl请教了一下index的性能问题。基本上在bulk的基础上,还有几点是可以做的。当然medcl说的是正常的全文索引的场景: 继续阅读……


用systemtap调试文件描述符限制

26 Oct 2012 Posted in  linux

在运行一些非root用户进程的时候,我们都习惯要在前面加上一个ulimit -HSn 65535的命令。而且我们还知道关于文件描述符的限制,不止这一个地方,还有limits.conf,sysctl -w fs.file-max等等。但是到底这些是什么个关系呢?而且,如果是一个已经在运行的程序,有没有可能在更改他的文件描述符限制呢? 继续阅读……


【Logstash系列】ElasticSearch的几点使用事项

21 Oct 2012 Posted in  logstash

之前已经写过一些ES的使用,也翻译了一篇官网上关于ES存储日志的建议日志。今天稍微总结一下近期以来实践出来的方案。 继续阅读……


用Juggernaut实时推送syslog分析结果

17 Oct 2012 Posted in  web

大家一般都会用rsyslog或者syslog-ng之类的收集系统日志。不过收集之后的处理就各种各样了。这里提供一个简单的处理,按日期保存成文件,然后定时分析新增内容,通过websocket推送到页面报警。这对于像磁盘错误等信息比较有用。因为等nagios之类的监控反应出来,故障可能就已经到你措手不及的地步了。 继续阅读……


Perl5里的gather/take

02 Oct 2012 Posted in  perl

九月末的YAPC::Asia上,Larry Wall展示了一下怎么把一个perl5上很标准的排序脚本改造成perl6脚本。主要是条件语句不再用()了,子函数传参方式,对象化操作等等。唯独有个命令是之前未见过的:gather/take。用这个可以减少临时变量的使用。 继续阅读……


用javascript操作新版本amcharts

26 Sep 2012 Posted in  web

新版本的amcharts用js和html5改写。不再简单的用settings.xml而是写成js的object了。好在例子依然详细。下面贴一段从数据库里取值并绘制成多栏图式的代码: 继续阅读……


【Logstash系列】数据格式之json-event

21 Sep 2012 Posted in  logstash

之前的各种示例中,都没有提到logstash的输入输出格式。看起来就好像logstash比Message::Passing少了decoder/encoder一样。其实logstash也有类似的设定的,这就是format。有三种选择:plain/json/json_event。默认情况下是plain。也就是我们之前的通用做法,传文本给logstash,由logstash转换成json。 继续阅读……


【Message::Passing系列】Regexp::Log模板匹配变量

16 Sep 2012 Posted in  logstash

上面调用的Regexp::Log::Nginx是base Regexp::Log的实例,CPAN上已经提供了好些server的log regex,见http://search.cpan.org/search?query=Regexp%3A%3Alog&mode=all继续阅读……


【Message::Passing系列】过滤器实例

16 Sep 2012 Posted in  logstash

Message::Passing是Suretec公司为自己的VoIP业务开发的logstash山寨版。这几个月更新还是比较快的。比之前我刚关注它时改变很大。比如Message::Passing::Output::ElasticSearch已经出来了,还有专门的Message::Passing::Filter::ToLogstash,连命令行方式Message::Passing::Role::Script都采用了MooX::Options构建,相当的OO了。 继续阅读……


【Message::Passing系列】客户端收集脚本

16 Sep 2012 Posted in  logstash

最后编写一段日志收集的agent: 继续阅读……


【Message::Passing系列】ElasticSearch的bulk_index速度测试

16 Sep 2012 Posted in  logstash

连续尝试了logstash的elasticsearch/elasticsearch_http/elasticsearch_river三个putput模块,发现其index/bulk/river三种插入方式的实际运行效果速度居然没有差异。而使用perl脚本测试,单例下index不到300msg/sec,bulk接近2500msg/sec,几乎翻了10倍。 继续阅读……


(R)?ex介绍

06 Sep 2012 Posted in  devops

按说这文章好像轮不到我写。几个线上运用着的哥们都不出手,我勉强记录一些官网上没写example但实际应该蛮常用的功能吧: 继续阅读……


【翻译】用ElasticSearch存储日志

26 Aug 2012 Posted in  logstash

介绍

如果你使用elasticsearch来存储你的日志,本文给你提供一些做法和建议。 继续阅读……


用systemtap定位nginx1.2在header解析时的报错

23 Aug 2012 Posted in  monitor

一个url请求,在经过代理层访问应用层后,会报502错误。检查发现应用层是Nginx0.7.64+Resin3的结构,代理层是Nginx1.2。直接访问Nginx0.7.64是没问题的,访问Nginx1.2就会返回”upstream sent invalid header while reading response header from upstream”。 继续阅读……


Coro::Semaphore和async_pool示例

20 Aug 2012 Posted in  testing

之前有一个AnyEvent和Fork写的http压测工具,评论里有大神教导说用Coro控制并发更有效更方便。于是改写了下面的版本。从被压测的nginx server上,可以看到ESTABLISHED的数量确实大大增加,“”并发”两个字算是做到了。 继续阅读……


一个Plack::Middleware的实例

30 Jul 2012 Posted in  dancer

做一个文件上传的网页,想稍微华丽一点,显示进度条出来。在Apache和Catalyst下都有现成的模块,不过Dancer上还没有。看了一下代码,Dancer::Request里没有像Catalyst那样暴露prepare_body_chunk方法。所以需要在plack上利用psgi.input来做。尽量重用现有代码,所以progress.css和progress.js都直接从Catalyst/Plugin/UploadProgress/example/Upload/root/static/里复制。 继续阅读……


一个Dancer::Plugin的实例

30 Jul 2012 Posted in  dancer

公司内部工具统一使用passport认证登录,于是写这么一个小plugin,用来给dancer做的网站使用统一认证。 passport的原理很简单,将原先的页面url带入session转到passport的login,然后由passport通过user/password或者kerberos确认是否正确,并返回一个ticket参数,然后拿这个ticket再到passport的verify上校验一次username,正确的话写入session即可。代码如下: 继续阅读……


用AnyEvent和ForkManager写一个http协议的压测工具

19 Jul 2012 Posted in  testing

话不多说,先上第一版的代码: 继续阅读……


IPC::Locker模块介绍

07 Jul 2012 Posted in  perl

当你需要给一个集群的某项服务做简单的排他性管理的时候,强力推荐Veripool公司的一系列模块:IPC::Locker、Schedule::Load。 继续阅读……


AnyEvent::HTTPD和AnyEvent::HTTP使用实例

02 Jul 2012 Posted in  perl

很简单的一个实例,就是开一个端口接受url请求,然后向squid提交这个url的刷新。 继续阅读……


【翻译】Coro::Intro文档

29 Jun 2012 Posted in  perl


STF介绍

14 Jun 2012 Posted in  perl

STF项目,全称”Stepover Toehold Facelock“,原因是项目发起人喜欢这个动作,我勒个去……当然作者也给它找了个靠谱一点的解释,叫STorage Farm。 继续阅读……