Logstash中ruby filter的调试器

ruby filter可以说是Logstash中最强大的一个filter了,通过自己编写ruby代码可以灵活地实现各种功能。显然,每次修改ruby filter后运行Logstash来调试是非常低效的。Logstash启动需要时间,而且错误信息只能在日志里看。最好的方法其实是复制几个消息,然后在irb中调试好ruby filter之后,再更新到Logstash配置文件中。
在Elastic 5.0版本开始,强制使用get/set方法访问event,为调试带来一定困难。其实我们可以写一个简单的类解决这一问题,详见http://git.oschina.net/mvpboss1004/ruby_filter_debugger。新建一个ruby_filter_debugger.rb文件:

#coding: utf-8
#!/usr/bin/ruby

class RubyFilterDebugger
    def initialize(dict={})
        @dict = dict
    end

    def get(key)
        return @dict[key]
    end

    def set(key, value)
        @dict[key] = value
    end

    def cancel()
        @dict = {}
        puts 'dict is empty now'
    end
end

然后在同一文件夹运行irb即可,例如:

load "ruby_filter_debugger.rb"
event = RubyFilterDebugger.new()
event.set('hello', 1)
event.get('hello')
event.cancel()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值