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
Returns a new instance of 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
20 21 22 |
# File 'lib/fluent/plugin/out_parse_multiple_value_query.rb', line 20 def configure(conf) super end |
#emit(tag, es, chain) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/fluent/plugin/out_parse_multiple_value_query.rb', line 32 def emit(tag, es, chain) es.each do |time, record| t = tag.dup new_record = parse_uri(record) t = @tag_prefix + t unless @tag_prefix.nil? Engine.emit(t, time, new_record) end chain.next rescue StandardError => e log.warn("out_parse_multiple_value_uri_query: error_class:#{e.class} error_message:#{e.message} tag:#{tag} es:#{es} bactrace:#{e.backtrace.first}") end |
#parse_query_string(record, query_string) ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/fluent/plugin/out_parse_multiple_value_query.rb', line 58 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 StandardError => e log.warn("out_parse_multiple_value_uri_query: error_class:#{e.class} error_message:#{e.message} record:#{record} bactrace:#{e.backtrace.first}") end record end |
#parse_uri(record) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/fluent/plugin/out_parse_multiple_value_query.rb', line 46 def parse_uri(record) return unless record[key] if only_query_string parse_query_string(record, record[key]) else url = without_host ? "http://example.com#{record[key]}" : record[key] query = URI.parse(url).query parse_query_string(record, query) end end |
#shutdown ⇒ Object
28 29 30 |
# File 'lib/fluent/plugin/out_parse_multiple_value_query.rb', line 28 def shutdown super end |
#start ⇒ Object
24 25 26 |
# File 'lib/fluent/plugin/out_parse_multiple_value_query.rb', line 24 def start super end |