以下translate
过滤器似乎不起作用。在logstash输出中,我仍然看到dport
条目的值为-
。但是,如果我取消注释目标选项,则过滤器会按预期工作,并在适当时生成值为test
的{{1}}字段。为什么就地翻译不起作用?
-1
一些背景知识:我试图将所有translate {
field => "dport"
#destination => "test"
dictionary => ["-", "-1"]
}
值作为整数,因此可以通过elasticsearch正确索引该字段。字段dport
应包含整数,但如果字段未初始化,则会记录值dport
。
答案 0 :(得分:1)
我对文档的理解是错误的,或者这是bug。
无论如何,这似乎有效:
translate {
field => "dport"
destination => "dport"
override => "true"
dictionary => ["-", "-1"]
}
答案 1 :(得分:0)
我通过添加此测试来测试插件的最新版本的此行为: ` 描述“implace translation”做
let(:config) do
{
"field" => "status",
"dictionary" => [ "-", "-1"]
}
end
let(:event) { LogStash::Event.new("status" => "-") }
it "return the exact translation" do
subject.register
subject.filter(event)
expect(event["translation"]).to eq("-1")
end
一切都按预期工作。请注意,翻译的默认字段是翻译字段,不确定这是否是您问题的根源。