是否可以从 Logstash Ruby 过滤器插件中启动 Ruby 调试器?

Is it possible to launch a Ruby debugger from within the Logstash Ruby filter plugin?

是否可以从 Logstash Ruby filter plugin 中启动 Ruby 调试器?方便调试。

优秀的 Logstash 人员在将 pry 纳入 Logstash 核心时已经想到了这一点。因此,您所要做的就是在您的 ruby 过滤器代码中要求撬动,如下面的示例配置所示:

input { 
  file {
    path => "/tmp/myfile.csv"
    sincedb_path => "/dev/null"
    start_position => "beginning"
  }
}
filter {
  ruby {
    code => "require 'pry'
       ... your code ...

       # start a REPL session
       binding.pry

       ... your code ...
    "
 }
}

当 Logstash 运行时,您将在您的终端中获得一个 REPL 会话,如下所示,您将能够执行 pry 允许您执行的任何操作。

[1] pry(#<LogStash::Filters::Ruby>)>