2017-02-21 4 views
1

Я использовалПреобразование строки плавать в logstash

filter { 
    mutate { 
     convert => { 
      "Availability" => "float" 
     } 
    } 
} 

преобразовать несколько полей, чтобы плавать в файле .csv в logstash. Я не получаю ошибку, но я не получаю ожидаемый результат, который строки не преобразовывая в float.I попробовал этот формат, а

grok { 
    match => [ "Basic", " %{NUMBER:Basic:float}"] 
} 

(Обратите внимание, что метод ГРОК образец, который у меня есть здесь я имею в виду не правильный способ преобразования строк в float)

+0

Можете ли вы показать примерную строку журнала и какое значение ожидать? – Val

ответ

0

Я видел это поведение раньше. В моем случае поля, которые я пытался использовать для ввода текста, также использовались другим типом. Эти поля не получали тип. Поскольку я использовал ежедневные вращающиеся индексы, когда поле uncast впервые попало в индекс, тип поля был string. Когда поле заливки сначала попало в индекс, оно было integer.

Если это ваша проблема, есть два пути ее решения:

  1. Hunt через ваши полевых данных и выяснить, все случаи, когда Availability используется. Напечатайте их так, как вы это делаете.
  2. Внесите исправление, обновив шаблон ElasticSearch для индексов вашей логсташей, чтобы указать это поле в float во время создания индекса. Входящие строки будут вынуждены float или отброшены.
+0

Я попробую это и посмотрю – Sheron

+0

sysadmin1138 Это не сработало для меня, нет другого решения? – Sheron

+0

@Sheron Боюсь, что это мои самые большие молоты. Остальное - детективная работа, и я не уверен, где указать дальше. Сожалею! – sysadmin1138

Смежные вопросы