Я заметил, что некоторые люди используют третью часть в предикате соответствия grok, например
%{NUMBER:response_status:int}
^--- ??
Очевидно, что означают первые 2, и я могу предположить, что 3-я часть является явным типом результата, но я не могу найти исчерпывающего объяснения того, что это за 3-я часть.
Я проверил как документацию Logstash, так и Grok's one и не видит никаких следов подробного описания синтаксиса.
Есть ссылки?
UPD:
вот пример того, что это работает и синтаксически правильно:
Для файла конфигурации:
input { stdin { } }
filter {
grok {
match => [
"message", "%{NUMBER:a_number:float}"
]
}
}
output { stdout { codec => rubydebug } }
Результат для 12345
:
{
"message" => "12345",
"@version" => "1",
"@timestamp" => "2014-10-08T01:08:49.087Z",
"host" => "logstash",
"a_number" => 12345.0
}
Если вы удалите :float
, он изменится на
{
"message" => "12345",
"@version" => "1",
"@timestamp" => "2014-10-08T01:09:46.055Z",
"host" => "logstash",
"a_number" => "12345"
}
Это верно как минимум для logstash v1.4.2.