用 perl6-bench 做 perl6 性能对比

28 Oct 2014 Posted in  perl

Perl6 成员上周在奥地利大会上做了一次大聚集,写了不少博客讲过去几个月的优化以及未来几个月的优化。但是我发现似乎从8月以来就一直没有正式的 perl6-bench 的图表报告了。于是想:干脆自己跑一把吧。 继续阅读……


ESCC 参会笔记

27 Oct 2014 Posted in  elasticsearch

10 月 25 号举办了 ESCC(ElasticSearch China Conference)。作为个人习惯,稍作记录。 继续阅读……


在终端命令行上调试 grok 表达式

19 Oct 2014 Posted in  logstash

用 logstash 的人都知道在 http://grokdebug.herokuapp.com 上面调试 grok 正则表达式。现在问题来了:翻墙技术哪家强? 页面中用到了来自 google 域名的 js 文件,所以访问经常性失败。所以,在终端上通过命令行方式快速调试成了必需品。 继续阅读……


Rsyslog 性能数据 impstats 直接写入 Elasticsearch

19 Oct 2014 Posted in  logstash

Rsyslog 的性能数据,可以通过自带的 impstats 插件输出。但是在用的比较复杂的场景下,每次输出都会有好几十个 action 的各种状态,肉眼观察变得比较困难,这时候,我们可以直接输出给 Elasticsearch ,然后利用 Kibana 做快速搜索和分析。 继续阅读……


LogStash::Inputs::Syslog 性能测试与优化

18 Oct 2014 Posted in  logstash

最近因为项目需要,必须想办法提高 logstash indexer 接收 rsyslog 转发数据的性能。首先,就是要了解 logstash 到底能收多快? 继续阅读……


在 JRuby 上用 netty 模拟 eventmachine

17 Oct 2014 Posted in  ruby

上一篇说到在 JRuby 上利用 netty 库实现事件驱动。事实上,为了让 Ruby 程序员更习惯,foxbat 模块是把 netty 库封装成 eventmachine 的接口来提供给用户使用的。所以,我们可以把程序写得更通用一些: 继续阅读……


PerlAPI 里的 Magic 简介

11 Oct 2014 Posted in  perl

前几天看到 cindylinz 发了一个新 CPAN 模块叫 Scalar::Watcher,有朋友问我这个是怎么实现的,在无限循环啊,多线程啊,IO 阻塞啊等情况下,还能被触发么? 继续阅读……


从源代码运行 Kibana 4

10 Oct 2014 Posted in  logstash

Kibana 4 发布了,出人意料的是提供的居然是一个 jar 包的运行方式。好在有源码可看,根据源码可以分析得知,v4 版其实是一个 angularjs 写的 kibana 配上一个 sinatra 写的 proxyserver。这么一来,我们也就知道怎么来从源代码运行 Kibana 4,而不是用 Java 启动了。 继续阅读……





Mojolicious 应用的自定义子命令

01 Oct 2014 Posted in  perl

Mojolicious 框架开发应用的时候,可以跟 RoR 一样通过一系列子命令简化很多复杂操作。最简单的来说,就是快速生成整个 web 项目目录:mojo generate youapp。更多子命令见:http://cpan.php-oa.com/perldoc/Mojolicious/Commands 继续阅读……


在 logstash 里使用其他 RubyGems 模块

24 Sep 2014 Posted in  logstash

在开发和使用一些 logstash 自定义插件的时候,几乎不可避免会导入其他 RubyGems 模块 —— 因为都用不上模块的小型处理,直接写在 filters/ruby 插件配置里就够了 —— 这时候,运行 logstash 命令可能会发现一个问题:这个 gem 模块一直是 “no found” 状态。 继续阅读……


Kibana 认证鉴权方案

23 Sep 2014 Posted in  logstash

Kibana 作为一个纯 JS 项目,一直都没有提供完整的权限控制方面的功能。只是附带了一个 nginx.conf 做基本的 Basic Auth。社区另外有在 nodejs 上实现的方案,则使用了 CAS 方式做认证。 继续阅读……


用 Spark 处理数据导入 Elasticsearch

04 Sep 2014 Posted in  logstash

Logstash 说了这么多。其实运用 Kibana 和 Elasticsearch 不一定需要 logstash,其他各种工具导入的数据都可以。今天就演示一个特别的~用 Spark 来处理导入数据。 继续阅读……


山寨一个 Splunk 的 source 上下文查看功能

29 Aug 2014 Posted in  logstash

跟很多朋友在聊 elk stack 的时候,都会不知不觉的开始跟 Splunk 做对比。最常见的两个抱怨就是:Splunk 的搜索构建语法 比 Kibana 方便,以及 Splunk 搜索出来的消息可以通过点击 Source 按钮查看其原始日志中的前后几条日志。 继续阅读……


用 ES 的 RangeFacets 接口实现一个查看区间占比的 Kibana 面板

18 Aug 2014 Posted in  logstash

公司用 kibana 的同事提出一个需求,希望查看响应时间在不同区间内占比的饼图。第一想法是用 1.3.0 新加的 percentile rank aggregation 接口。不过仔细想想,其实并不合适 —— 这个接口目的是计算固定的 [0 TO $value] 的比例。不同的区间反而还得自己做减法来计算。稍微查了一下,更适合的做法是专门的 range aggregation。考虑到 kibana 内大多数还是用 facet 接口,这里也沿用:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-facets-range-facet.html继续阅读……


Kibana 动态仪表板的使用

28 Jul 2014 Posted in  logstash

半年前,Kibana3.4 版刚出来的时候,曾经在官方博客上描述了一个新功能,当时我的翻译见:【翻译】Kibana3 里程碑 4继续阅读……


在 MacBook 上使用 PDL 绘图

27 Jul 2014 Posted in  perl

之前在 Linux 服务器上使用 PDL,主要是一些矩阵函数,这次准备在个人电脑上使用 PDL,尤其是本身的绘图功能,其一目的就是导出 zabbix 中存储的监控数据,通过 PDL 绘图观察其季节性分布情况。 继续阅读……


Rex::Test::Spec 模块

08 Jul 2014 Posted in  perl

上篇说了 serverspec 工具,我一直对 Rspec 的语法蛮有好感的,于是昨晚花了点时间模仿这个给 Rex 写了个类似的工具,叫 Rex::Test::Spec,源代码地址见:https://github.com/chenryn/Rex--Test--Spec继续阅读……


Serverspec 工具介绍

13 Jun 2014 Posted in  devops

去年曾经写过一篇文章里提到做 puppet 的测试,用的是 rspec-puppet 工具。不过这个工具的作用只是能确保在 Puppet Master 上你撰写的 .pp 文件可以按照你的预期正常编译完毕,并不代表真实的节点就是按照这个状态维护的。所以今天介绍另一个工具,Serverspec,它拥有和 rspec-puppet 类似的语法(都是 Rspec 衍生品),同时又是真的 SSH 到远程主机上去做测试!官网见:http://serverspec.org继续阅读……


用 Redis 做分布式 DNS/HTTP 检测汇总系统

13 Jun 2014 Posted in  perl

一年前搞的一套小脚本,今天翻博客发现没发过,现在发上来好了。主要背景是这样:考虑到有 DNS 和 HTTP 劫持需要监控,但是很多 DNS 服务器对非本区域本运营商的来源请求是拒绝做出响应的,所以得把监控点分散到各地去。其实做这个事情用 nagios 的分布式就足够了,不过如果想做即时触发的紧急任务,就算在 nagios 页面上点击立刻执行,到返回全部结果也得有一阵子。所以选择了自己写一套分布式的异步系统。 继续阅读……


Rex 简明手册

12 Jun 2014 Posted in  devops

Rex 是 Perl 编写的基于 SSH 链接的集群配置管理系统,语法上类似 Puppet DSL。官网中文版见 http://rex.perl-china.com 。本文仅为本人在部门 Wiki 上编写的简介性文档。 继续阅读……


PerlDancer 框架笔记

12 Jun 2014 Posted in  perl

Dancer 是 Perl 的 web 开发框架,在 metacpan 上有 100 多个 like。其语法结构都起源自 Ruby 的 sinatra 框架,sinatra 曾经在自己官网上悬挂“perldancer is good”标语以示对 perldancer 的支持。Dancer 官网见: http://perldancer.org/ 本文系本人在部门 Wiki 上稍微写的几行介绍性质的笔记。 继续阅读……


Perl 编程的个人惯例

12 Jun 2014 Posted in  perl

Perl 代码规范可以参考著名的《Perl 最佳实践》一书。当然,PBP 上的规定比较严格,实际生活中绝对多数 Perl 程序都无法通过以 PBP 规范编写的 Perl::Critic 模块的校验。本文仅为本人在部门 Wiki 上以部分常见用法作为示例的介绍性文档。 继续阅读……