LogStash: конвертировать в целое число в mutate не имеет никакого эффекта - PullRequest
0 голосов
/ 10 апреля 2019

Я не могу получить целочисленные сравнения для работы в фильтре logstash, используя logstash 6.4.2.Когда я пытаюсь, я все еще получаю строку, и сравнение «> 10» завершается неудачно с исключением времени выполнения при чтении журналов: «сравнение строки с 10 ошибками»

Любая подсказка, что я делаю неправильно?

filter {
    mutate {
        add_field => { "[@metadata][day]" => "%{+dd}"} # generates '06' on 6. of month
        convert => { "[@metadata][day]" => "integer" }
        add_field => { "testDay" => "%{[@metadata][day]}" } # Copy     
}

1 Ответ

0 голосов
/ 10 апреля 2019

Решение от Badger (форумastic.co):

Это ваша проблема. Никто из новообращенных не происходит. Фильтр мутации делает вещи в фиксированном порядке, и после того, как он все это сделал, он украшает событие (это вызов filter_matched ()), который реализует общие параметры, такие как add_field. Это означает, что преобразование выполняется перед add_field, поэтому ни одно из полей не существует, когда вы пытаетесь преобразовать их. Разделите свой мутированный на два

- Спасибо Бэджеру за быстрое решение моего вопроса на https://discuss.elastic.co/t/howto-integer-comparison-in-logstash-filter/175675, с ответом, размещенным здесь для дальнейшего использования.

...