Class: Fluent::ParseMultipleValueQueryOutput
- Inherits:
-
Output
- Object
- Output
- Fluent::ParseMultipleValueQueryOutput
- Defined in:
- lib/fluent/plugin/out_parse_multiple_value_query.rb
Instance Method Summary collapse
- #configure(conf) ⇒ Object
- #emit(tag, es, chain) ⇒ Object
-
#initialize ⇒ ParseMultipleValueQueryOutput
constructor
A new instance of ParseMultipleValueQueryOutput.
- #parse_query_string(record, query_string) ⇒ Object
- #parse_uri(record) ⇒ Object
- #shutdown ⇒ Object
- #start ⇒ Object
Constructor Details
#initialize ⇒ ParseMultipleValueQueryOutput
12 13 14 15 |
# File 'lib/fluent/plugin/out_parse_multiple_value_query.rb', line 12 def initialize super require 'rack' end |
Instance Method Details
#configure(conf) ⇒ Object
22 23 24 |
# File 'lib/fluent/plugin/out_parse_multiple_value_query.rb', line 22 def configure(conf) super end |
#emit(tag, es, chain) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/fluent/plugin/out_parse_multiple_value_query.rb', line 34 def emit(tag, es, chain) es.each {|time, record| t = tag.dup new_record = parse_uri(record) t = @tag_prefix + t unless @tag_prefix.nil? Engine.emit(t, time, new_record) } chain.next rescue => e log.warn("out_parse_multiple_value_uri_query: error_class:#{e.class} error_message:#{e.} tag:#{tag} es:#{es} bactrace:#{e.backtrace.first}") end |
#parse_query_string(record, query_string) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/fluent/plugin/out_parse_multiple_value_query.rb', line 63 def parse_query_string(record, query_string) begin target = sub_key ? (record[sub_key] ||= {}) : record parsed_query = Rack::Utils.parse_nested_query(query_string) parsed_query.each do |key, value| if value == "" target[key] = "" else if value.class == Array && remove_empty_array if value.empty? || value == [""] || value == [nil] target.delete(key) else target[key] = value end else target[key] = value end end end rescue => e log.warn("out_parse_multiple_value_uri_query: error_class:#{e.class} error_message:#{e.} record:#{record} bactrace:#{e.backtrace.first}") end return record end |
#parse_uri(record) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/fluent/plugin/out_parse_multiple_value_query.rb', line 48 def parse_uri(record) if record[key] if only_query_string record = parse_query_string(record,record[key]) return record else url = without_host ? "http://example.com#{record[key]}" : record[key] query = URI.parse(url).query record = parse_query_string(record, query) return record end end end |
#shutdown ⇒ Object
30 31 32 |
# File 'lib/fluent/plugin/out_parse_multiple_value_query.rb', line 30 def shutdown super end |
#start ⇒ Object
26 27 28 |
# File 'lib/fluent/plugin/out_parse_multiple_value_query.rb', line 26 def start super end |