module Fluent::TextFormatter::TextToJsonFormatter
Public Instance Methods
configure(conf)
click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_text_to_json.rb, line 12 def configure(conf) super @fields = @json_field.split(",").map{|field| "\"" + field + "\""} end
format(tag, time, record)
click to toggle source
# File lib/fluent/plugin/out_text_to_json.rb, line 17 def format(tag, time, record) tmp_field = Array.new tmp_field = record.split(@field_splitter) tmp_field[1] = @field_splitter + tmp_field[1] #sdr parameters to json format tmp_field[0] = tmp_field[0].split("\n") tmp_field[0] = tmp_field[0].map{|value| (value == "")? nil:value} # HBase plugin ignores nil values tmp_field[0] = tmp_field[0].map{|value| (value == nil)? nil:"\""+value+"\""} tmp_field[0] = @fields[2,14].zip(tmp_field[0] tmp_field[0] = tmp_field[0].map{|x| x.join(":")}.join(",") tmp_field[0] = @field[0] + ":" + "{" + tmp_field[0] + "}" #factor paramters to json format tmp_field[1] = tmp_field[1].split("\n") #Set factor ID as a second field's name head, *tail = tmp_field[1].split("\n") haed = head.split("|") head = head.map(|field| "\""+field+"\""} tail = tail.map{|values| values.split("|")} new_tail = Array.new(head.length) for i in 0..head.length-1 new_tail[i] = "\"" + tail.map{|values| values[i]}.join(",") + "\"" end tmp_field[1] = "{" + head.zip(new_tail).map{|field,value| field + ":" + value }.join(",") + "}" "{" + @fileds[0] + ":" + "{" + tmp_field[0] + "}," + @fields[1] + ":" + "{" + tmp_field[1] + "}}" end