mirror of
https://github.com/elastic/logstash.git
synced 2025-04-24 22:57:16 -04:00
MODULES: Add maxbuckets to the kibana config json (#7451)
* Add maxbuckets to the kibana config json * change METRICS_MAX_BUCKETS to 86400 and fix specs
This commit is contained in:
parent
448bda167f
commit
1c47ab0f9b
2 changed files with 13 additions and 10 deletions
|
@ -10,7 +10,8 @@ module LogStash module Modules class KibanaConfig
|
||||||
include LogStash::Util::Loggable
|
include LogStash::Util::Loggable
|
||||||
|
|
||||||
ALLOWED_DIRECTORIES = ["search", "visualization"]
|
ALLOWED_DIRECTORIES = ["search", "visualization"]
|
||||||
|
METRICS_MAX_BUCKETS = (24 * 60 * 60).freeze # 24 hours of events/sec buckets.
|
||||||
|
KIBANA_CONFIG_CONTENT_ID = "5.5.0".freeze
|
||||||
attr_reader :index_name
|
attr_reader :index_name
|
||||||
|
|
||||||
# We name it `modul` here because `module` has meaning in Ruby.
|
# We name it `modul` here because `module` has meaning in Ruby.
|
||||||
|
@ -18,7 +19,7 @@ module LogStash module Modules class KibanaConfig
|
||||||
@directory = ::File.join(modul.directory, "kibana")
|
@directory = ::File.join(modul.directory, "kibana")
|
||||||
@name = modul.module_name
|
@name = modul.module_name
|
||||||
@settings = settings
|
@settings = settings
|
||||||
@index_name = settings.fetch("dashboards.kibana_index", ".kibana")
|
@index_name = @settings.fetch("dashboards.kibana_index", ".kibana")
|
||||||
end
|
end
|
||||||
|
|
||||||
def dashboards
|
def dashboards
|
||||||
|
@ -29,18 +30,19 @@ module LogStash module Modules class KibanaConfig
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def index_pattern
|
def kibana_config_patches
|
||||||
pattern_name = "#{@name}-*"
|
pattern_name = "#{@name}-*"
|
||||||
default_index_json = '{"defaultIndex": "#{pattern_name}"}'
|
metrics_max_buckets = @settings.fetch("dashboards.metrics_max_buckets", METRICS_MAX_BUCKETS).to_s
|
||||||
default_index_content_id = @settings.fetch("index_pattern.kibana_version", "5.4.0") # make this 5.5.0
|
kibana_config_json = '{"defaultIndex": "' + pattern_name + '}", "metrics:max_buckets": "' + metrics_max_buckets + '"}'
|
||||||
|
kibana_config_content_id = @settings.fetch("index_pattern.kibana_version", KIBANA_CONFIG_CONTENT_ID)
|
||||||
[
|
[
|
||||||
KibanaResource.new(@index_name, "index-pattern", dynamic("index-pattern"),nil, pattern_name),
|
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)
|
KibanaResource.new(@index_name, "config", nil, kibana_config_json, kibana_config_content_id)
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
def resources
|
def resources
|
||||||
list = index_pattern
|
list = kibana_config_patches
|
||||||
dashboards.each do |board|
|
dashboards.each do |board|
|
||||||
extract_panels_into(board, list)
|
extract_panels_into(board, list)
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
#
|
#
|
||||||
require "logstash/namespace"
|
require "logstash/namespace"
|
||||||
|
require "logstash/modules/kibana_config"
|
||||||
require "logstash/modules/scaffold"
|
require "logstash/modules/scaffold"
|
||||||
require "logstash/modules/importer"
|
require "logstash/modules/importer"
|
||||||
require "logstash/elasticsearch_client"
|
require "logstash/elasticsearch_client"
|
||||||
|
@ -113,8 +114,8 @@ ERB
|
||||||
expect(files[0].content_path).to eq("gem-home/kibana/index-pattern/foo.json")
|
expect(files[0].content_path).to eq("gem-home/kibana/index-pattern/foo.json")
|
||||||
expect(files[0].import_path).to eq(".kibana/index-pattern/foo-*")
|
expect(files[0].import_path).to eq(".kibana/index-pattern/foo-*")
|
||||||
|
|
||||||
expect(files[1].content).to eq("{\"defaultIndex\": \"\#{pattern_name}\"}")
|
expect(files[1].content).to eq("{\"defaultIndex\": \"foo-*}\", \"metrics:max_buckets\": \"#{LogStash::Modules::KibanaConfig::METRICS_MAX_BUCKETS}\"}")
|
||||||
expect(files[1].import_path).to eq(".kibana/config/5.4.0")
|
expect(files[1].import_path).to eq(".kibana/config/#{LogStash::Modules::KibanaConfig::KIBANA_CONFIG_CONTENT_ID}")
|
||||||
|
|
||||||
expect(files[2].content_path).to eq("gem-home/kibana/dashboard/Foo-Dashboard.json")
|
expect(files[2].content_path).to eq("gem-home/kibana/dashboard/Foo-Dashboard.json")
|
||||||
expect(files[2].import_path).to eq(".kibana/dashboard/Foo-Dashboard")
|
expect(files[2].import_path).to eq(".kibana/dashboard/Foo-Dashboard")
|
||||||
|
@ -145,7 +146,7 @@ ERB
|
||||||
[
|
[
|
||||||
"_template/cef",
|
"_template/cef",
|
||||||
".kibana/index-pattern/cef-*",
|
".kibana/index-pattern/cef-*",
|
||||||
".kibana/config/5.4.0",
|
".kibana/config/#{LogStash::Modules::KibanaConfig::KIBANA_CONFIG_CONTENT_ID}",
|
||||||
".kibana/dashboard/FW-Dashboard",
|
".kibana/dashboard/FW-Dashboard",
|
||||||
".kibana/visualization/FW-Metrics",
|
".kibana/visualization/FW-Metrics",
|
||||||
".kibana/visualization/FW-Last-Update",
|
".kibana/visualization/FW-Last-Update",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue