Использование переменной, такой как индекс массива в конвейере logsta sh - PullRequest
0 голосов
/ 08 марта 2020

У меня есть этот фильтр в журнале sh конвейер

filter{

    ruby { code => 'event.set("patternmatch1", event.get("message").scan(/TEXT.*?(\w[\w,.]*)\r?$/))'
    }

    # Retrieve the lenght of the array cointaining all the matches
    ruby { code => 'event.set("number_of_elements", event.get("patternmatch4").length-1)'
    }

Моя цель

Я хотел бы использовать длину массива в качестве индекса ruby массив шаблонов, чтобы выбрать шаблон индекса, который я хочу. Вместо использования индекса 9:

mutate{
       add_field => {"gross_profit" => "%{[patternmatch4][9]}"}}
}

Я хочу сослаться на последний шаблон, сопоставленный в массиве, с переменной, содержащей длину массива "number_of_elements", но мой код не работает. Может быть, я неправильно ссылаюсь на переменную. Как правильно ссылаться на эту переменную?

mutate{
   add_field => {"gross_profit" => "%{[patternmatch4][%{[number_of_elements]}"}}
}
...