Class: LogStash::Modules::KibanaConfig
- Inherits:
-
Object
- Object
- LogStash::Modules::KibanaConfig
show all
- Includes:
- Util::Loggable
- Defined in:
- lib/logstash/modules/kibana_config.rb
Constant Summary
collapse
- ALLOWED_DIRECTORIES =
["search", "visualization"]
Instance Attribute Summary collapse
Instance Method Summary
collapse
included, #logger, #slow_logger
Constructor Details
#initialize(modul, settings) ⇒ KibanaConfig
We name it ‘modul` here because `module` has meaning in Ruby.
17
18
19
20
21
22
|
# File 'lib/logstash/modules/kibana_config.rb', line 17
def initialize(modul, settings)
@directory = ::File.join(modul.directory, "kibana")
@name = modul.module_name
@settings = settings
@index_name = settings.fetch("dashboards.kibana_index", ".kibana")
end
|
Instance Attribute Details
#index_name ⇒ Object
Returns the value of attribute index_name.
14
15
16
|
# File 'lib/logstash/modules/kibana_config.rb', line 14
def index_name
@index_name
end
|
Instance Method Details
#dashboards ⇒ Object
24
25
26
27
28
29
30
|
# File 'lib/logstash/modules/kibana_config.rb', line 24
def dashboards
filenames = FileReader.read_json(dynamic("dashboard"))
filenames.map do |filename|
KibanaResource.new(@index_name, "dashboard", dynamic("dashboard", filename))
end
end
|
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
# File 'lib/logstash/modules/kibana_config.rb', line 89
def (list)
result = [] list.each do |resource|
next unless resource.contains?("savedSearchId")
content = resource.content_as_object
next if content.nil?
saved_search = content["savedSearchId"]
next if saved_search.nil?
ss_resource = KibanaResource.new(@index_name, "search", dynamic("search", saved_search))
next if list.member?(ss_resource) || result.member?(ss_resource)
result << ss_resource
end
result
end
|
#index_pattern ⇒ Object
32
33
34
35
36
37
38
39
40
|
# File 'lib/logstash/modules/kibana_config.rb', line 32
def index_pattern
pattern_name = "#{@name}-*"
default_index_json = '{"defaultIndex": "#{pattern_name}"}'
default_index_content_id = @settings.fetch("index_pattern.kibana_version", "5.5.0")
[
KibanaResource.new(@index_name, "index-pattern", dynamic("index-pattern"),nil, pattern_name),
KibanaResource.new(@index_name, "config", nil, default_index_json, default_index_content_id)
]
end
|
#resources ⇒ Object
42
43
44
45
46
47
48
|
# File 'lib/logstash/modules/kibana_config.rb', line 42
def resources
list = index_pattern
dashboards.each do |board|
(board, list)
end
list.concat((list))
end
|