FluentD: условные операторы record_transformer

Как поместить условные операторы if else в fluentd record_transformer и добавить вывод в столбец.

eg:

<filter nifi.*>
  @type record_transformer
  enable_ruby true
  auto_typecast true
  <record>
    NormalizedFileInByte ${a=1024;if record[DataMetricIn]=="GB";record["FilesInByte"].to_f*a.to_f;else;record["FilesInByte"].to_f;end;} 
  </record>
</filter>

Я поместил оператор if else и добавил новый столбец NormalizedFileInByte в существующий журнал в приведенном выше примере. Но это ошибки.


person Vinayak Mishra    schedule 22.10.2019    source источник
comment
Я также попробовал другой синтаксис с результатом NormalizedFileInByte создается, но всегда имеет нулевое значение. Измененный синтаксис: NormalizedFileInByte ${a=1024;if $DataMetricIn==GB then $FilesInByte.to_f*a.to_f else $FilesInByte.to_f end}   -  person Vinayak Mishra    schedule 23.10.2019


Ответы (1)


это сработало для меня:

NormalizedFileInByte ${if record["message"].split(" ")[2].split(",")[0] == "PM"; record["message"].split(" ")[2].split(",")[0] ;end;
person Hamza Mourad    schedule 17.07.2020