Module: KibanaUrl
- Includes:
- Contracts::Builtin, Contracts::Core
- Defined in:
- lib/kibana_url.rb
Overview
Constructs URLs for Kibana queries.
Defined Under Namespace
Classes: NotConfiguredError
Constant Summary collapse
- STANDARD_PATH =
stuff after the base URL
'#/discover'
- SORT_MODES =
possible sort modes
%i[asc desc].freeze
- TIME_SCOPE_MODES =
possible time scoping modes
%i[relative absolute].freeze
Class Attribute Summary collapse
-
.config ⇒ Object
Returns the value of attribute config.
Class Method Summary collapse
- .configure {|config| ... } ⇒ Object
- .generate(log_spout: config&.[](:index_patterns)&.keys&.first, columns: ['_source'], query: '*', sort: { log_param_name: 'time', mode: :desc }, refresh_interval: nil, time_scope: { mode: :relative }) ⇒ Object
Class Attribute Details
.config ⇒ Object
Returns the value of attribute config.
34 35 36 |
# File 'lib/kibana_url.rb', line 34 def config @config end |
Class Method Details
.configure {|config| ... } ⇒ Object
36 37 38 39 |
# File 'lib/kibana_url.rb', line 36 def configure self.config ||= {} yield config end |
.generate(log_spout: config&.[](:index_patterns)&.keys&.first, columns: ['_source'], query: '*', sort: { log_param_name: 'time', mode: :desc }, refresh_interval: nil, time_scope: { mode: :relative }) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/kibana_url.rb', line 68 def generate( log_spout: config&.[](:index_patterns)&.keys&.first, columns: ['_source'], query: '*', sort: { log_param_name: 'time', mode: :desc }, refresh_interval: nil, time_scope: { mode: :relative } ) if config.nil? || config[:index_patterns].empty? || config[:kibana_base_url].empty? raise NotConfiguredError end # There are two params in Kibana URLs. # Each have multiple arguments comma separated. a_params = [] a_params << columns_param(columns) a_params << spout_param(log_spout) a_params << interval_param a_params << query_param(query) a_params << sort_param(sort) a_params_str = a_params.compact.join(',') # comma delimit params g_params = [] g_params << refresh_interval_param(refresh_interval) g_params << time_scope_param(time_scope) g_params_str = g_params.compact.join(',') # comma delimit params "#{config[:kibana_base_url]}#{STANDARD_PATH}?" \ "_g=(#{g_params_str})&_a=(#{a_params_str})" end |