Logstash中ruby filter的调试器

2017-08-11 20:20:33来源:CSDN作者:mvpboss1004人点击

分享

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/rubyclass 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'    endend

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

load "ruby_filter_debugger.rb"event = RubyFilterDebugger.new()event.set('hello', 1)event.get('hello')event.cancel()

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台