Class: LogStash::Filters::Jdbc::Lookup
- Inherits:
-
Object
- Object
- LogStash::Filters::Jdbc::Lookup
show all
- Includes:
- Util::Loggable
- Defined in:
- lib/logstash/filters/jdbc/lookup.rb
Defined Under Namespace
Classes: Getfier, Sprintfier
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(options, globals, default_id) ⇒ Lookup
Returns a new instance of Lookup.
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/logstash/filters/jdbc/lookup.rb', line 54
def initialize(options, globals, default_id)
@id = options["id"] || default_id
@target = options["target"]
@id_used_as_target = @target.nil?
if @id_used_as_target
if globals[:ecs_compatibility] != :disabled
logger.info('ECS compatibility is enabled but no ``target`` option was specified, it is recommended'\
' to set the option to avoid potential schema conflicts (if your data is ECS compliant or'\
' non-conflicting feel free to ignore this message)')
end
@target = @id
end
@options = options
@globals = globals
@valid = false
@option_errors = []
@default_result = nil
@prepared_statement = nil
@symbol_parameters = nil
parse_options
@load_method_ref = method(:load_data_from_local)
end
|
Instance Attribute Details
#id ⇒ Object
Returns the value of attribute id.
52
53
54
|
# File 'lib/logstash/filters/jdbc/lookup.rb', line 52
def id
@id
end
|
#parameters ⇒ Object
Returns the value of attribute parameters.
52
53
54
|
# File 'lib/logstash/filters/jdbc/lookup.rb', line 52
def parameters
@parameters
end
|
#query ⇒ Object
Returns the value of attribute query.
52
53
54
|
# File 'lib/logstash/filters/jdbc/lookup.rb', line 52
def query
@query
end
|
#target ⇒ Object
Returns the value of attribute target.
52
53
54
|
# File 'lib/logstash/filters/jdbc/lookup.rb', line 52
def target
@target
end
|
Class Method Details
.find_validation_errors(array_of_options) ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/logstash/filters/jdbc/lookup.rb', line 37
def self.find_validation_errors(array_of_options)
if !array_of_options.is_a?(Array)
return "The options must be an Array"
end
errors = []
array_of_options.each_with_index do |options, i|
instance = new(options, {}, "lookup-#{i.next}")
unless instance.valid?
errors << instance.formatted_errors
end
end
return nil if errors.empty?
errors.join("; ")
end
|
Instance Method Details
#enhance(local, event) ⇒ Object
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
# File 'lib/logstash/filters/jdbc/lookup.rb', line 90
def enhance(local, event)
result = retrieve_local_data(local, event, &@load_method_ref) if result.failed? || result.parameters_invalid?
tag_failure(event)
end
if result.valid?
if @use_default && result.empty?
tag_default(event)
process_event(event, @default_result)
else
process_event(event, result)
end
true
else
false
end
end
|
86
87
88
|
# File 'lib/logstash/filters/jdbc/lookup.rb', line 86
def formatted_errors
@option_errors.join(", ")
end
|
#id_used_as_target? ⇒ Boolean
78
79
80
|
# File 'lib/logstash/filters/jdbc/lookup.rb', line 78
def id_used_as_target?
@id_used_as_target
end
|
#prepare(local) ⇒ Object
113
114
115
116
117
118
119
|
# File 'lib/logstash/filters/jdbc/lookup.rb', line 113
def prepare(local)
hash = {}
@prepared_parameters.each_with_index { |v, i| hash[:"$p#{i}"] = v }
@prepared_param_placeholder_map = hash
@prepared_statement = local.prepare(query, hash.keys)
@load_method_ref = method(:load_data_from_prepared)
end
|
#use_prepared_statement? ⇒ Boolean
109
110
111
|
# File 'lib/logstash/filters/jdbc/lookup.rb', line 109
def use_prepared_statement?
@prepared_parameters && !@prepared_parameters.empty?
end
|
#valid? ⇒ Boolean
82
83
84
|
# File 'lib/logstash/filters/jdbc/lookup.rb', line 82
def valid?
@valid
end
|