我正在尝试在logstash过滤器中使用ruby代码,但它会出错:
[
{
"field":"value",
"bookings": null
}
]
我认为错误是因为我需要导入Enumerable模块(beucase没有行filter {
ruby {
code => "
arr = [ {id: 1, name: 'John' }, {id: 2, name: 'Sam' }, {id: 3, name: 'Bob' }]
if arr.any? {|h| h[:name] == "Sam"}
event['doc']['userInput']['programName'] = '222222'
end"
}
}
没有抛出错误),但我不知道如何在logstash的ruby过滤器中导入模块?
答案 0 :(得分:1)
问题是因为Sam
在双引号之间,你需要在整个代码块中使用单引号,因为代码本身用双引号括起来。
filter {
ruby {
code => "
arr = [ {id: 1, name: 'John' }, {id: 2, name: 'Sam' }, {id: 3, name: 'Bob' }]
if arr.any? {|h| h[:name] == 'Sam'}
event['doc']['userInput']['programName'] = '222222'
end"
}
}