Logstash 运行过滤器插件异常行为
我正在使用运行过滤器插件计算特定id的多个开始/结束事件之间的时间差Logstash 运行过滤器插件异常行为,logstash,logstash-configuration,logstash-file,Logstash,Logstash Configuration,Logstash File,我正在使用运行过滤器插件计算特定id的多个开始/结束事件之间的时间差 if [StepName] == "Step1" and [StepStatus] == "start" { mutate { add_tag => "Step1_start" } } else if [StepName] == "Step1" and [StepStatus] == "end" { mutate { add_tag => "Step1_end" } } else if [StepN
if [StepName] == "Step1" and [StepStatus] == "start" {
mutate { add_tag => "Step1_start" }
} else if [StepName] == "Step1" and [StepStatus] == "end" {
mutate { add_tag => "Step1_end" }
} else if [StepName] == "Step2" and [StepStatus] == "start" {
mutate { add_tag => "Step2_start" }
} else if [StepName] == "Step2" and [StepStatus] == "end" {
mutate { add_tag => "Step2_end" }
} else if [StepName] == "Step3" and [StepStatus] == "start" {
mutate { add_tag => "Step3_start" }
} else if [StepName] == "Step3" and [StepStatus] == "end" {
mutate { add_tag => "Step3_end" }
}
elapsed{
start_tag => "Step1_start"
end_tag => "Step1_end"
unique_id_field => "FrtId"
new_event_on_match => false
timeout => 1800
}
elapsed{
start_tag => "Step2_start"
end_tag => "Step2_end"
unique_id_field => "FudtId"
new_event_on_match => false
timeout => 1800
}
elapsed{
start_tag => "Step3_start"
end_tag => "Step3_end"
unique_id_field => "FudtId"
new_event_on_match => false
timeout => 1800
}
我面临的问题是,尽管数据绝对正确。对于许多文档,我得到了“已用的\u结束\u而没有\u开始”标签。但是对于同一个文档,我在加载它的文件中已经有了开始标记
任何帮助都将不胜感激。谢谢你的回答。我终于得到了答案 所以在未来,如果有人面临同样的问题。 这是一个过滤器插件的问题。因为为你的仓库而奔走的工人的数量并不是单一的 他们应该在他们的文档中提到,经过过滤的插件只适用于单个logstash工作者。正如他们提到的聚合过滤器插件 一个id的开始标记可能由一个工作者处理,而结束标记可能由另一个工作者处理。因此,在本例中,它为该结束事件添加了标记“经过的\u结束\u而没有\u开始” 但是,如果有多个工人。这并不是说插件会完全失败。它可以给你70-80%的准确度(它给了我这么多,完全是随机的) 这种情况的解决办法是,我们可以将logstash工人的数量定义为1。然而,这并不是一个最佳的解决方案,因为数据接收速度会很慢,而且一个工作人员的负载会很重