У меня есть файл журнала, который выглядит, например, так:
2015-12-05 05:00:51 prefix1_sent 1
2015-12-05 05:00:52 prefix2_sent 2
2015-12-05 05:00:53 prefix1_received 1
2015-12-05 05:00:54 prefix2_received 2
Я хочу узнать, сколько времени заняло конкретное событие. Я использую просроченный плагин в logstash следующим образом:
....
grok {
patterns_dir => "path"
match => {
"message" => "%{TIMESTAMP:logtime}, %{EVENT:event}, %{SPLIT:ID}"
}
}
filter{
if [event] == "(.)*sent" {
if [event] == "prefix1(.)*" {
kv {
add_tag => [ "prefix1_sent" ]
}
} else if [event] == "prefix2(.)*" {
kv {
add_tag => [ "prefix2_sent" ]
}
} else if [event] == "(.)*received" {
if [event] == "prefix1(.)*" {
kv {
add_tag => [ "prefix1_received" ]
}
} else if [event] == "prefix2(.)*" {
kv {
add_tag => [ "prefix2_received" ]
}
}
}
}
filter{
elapsed {
start_tag => "prefix1_sent"
end_tag => "prefix1_received"
unique_id_field => "ID"
new_event_on_match => false
}
}
filter{
elapsed {
start_tag => "prefix2_sent"
end_tag => "prefix2_received"
unique_id_field => "ID"
new_event_on_match => false
}
}
....
Я не уверен, что мой синтаксис вложенного оператора if верен, если я понимаю использование «kv». Я новичок в логсташе. Однако я не могу найти тег в кибане с этой конфигурацией. Где я делаю ошибку?
Спасибо