logstash-core 6.0.0.alpha2-java → 6.0.0.beta1-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/gemspec_jars.rb +6 -4
- data/lib/logstash-core/logstash-core.jar +0 -0
- data/lib/logstash-core/logstash-core.rb +2 -2
- data/lib/logstash-core/version.rb +1 -1
- data/lib/logstash-core_jars.rb +14 -10
- data/lib/logstash/agent.rb +4 -2
- data/lib/logstash/api/commands/default_metadata.rb +1 -1
- data/lib/logstash/api/commands/hot_threads_reporter.rb +8 -2
- data/lib/logstash/api/commands/node.rb +2 -2
- data/lib/logstash/api/commands/stats.rb +2 -2
- data/lib/logstash/bootstrap_check/bad_ruby.rb +2 -2
- data/lib/logstash/bootstrap_check/default_config.rb +2 -3
- data/lib/logstash/compiler.rb +12 -12
- data/lib/logstash/compiler/lscl.rb +17 -7
- data/lib/logstash/compiler/treetop_monkeypatches.rb +1 -0
- data/lib/logstash/config/config_ast.rb +11 -1
- data/lib/logstash/config/mixin.rb +5 -0
- data/lib/logstash/config/modules_common.rb +101 -0
- data/lib/logstash/config/source/base.rb +75 -0
- data/lib/logstash/config/source/local.rb +52 -50
- data/lib/logstash/config/source/modules.rb +55 -0
- data/lib/logstash/config/source/multi_local.rb +54 -10
- data/lib/logstash/config/source_loader.rb +1 -0
- data/lib/logstash/config/string_escape.rb +27 -0
- data/lib/logstash/elasticsearch_client.rb +142 -0
- data/lib/logstash/environment.rb +5 -1
- data/lib/logstash/event.rb +0 -1
- data/lib/logstash/instrument/global_metrics.rb +13 -0
- data/lib/logstash/instrument/metric_store.rb +16 -13
- data/lib/logstash/instrument/metric_type/counter.rb +6 -18
- data/lib/logstash/instrument/metric_type/gauge.rb +6 -12
- data/lib/logstash/instrument/periodic_poller/dlq.rb +19 -0
- data/lib/logstash/instrument/periodic_pollers.rb +3 -1
- data/lib/logstash/logging/logger.rb +43 -14
- data/lib/logstash/modules/cli_parser.rb +74 -0
- data/lib/logstash/modules/elasticsearch_config.rb +22 -0
- data/lib/logstash/modules/elasticsearch_importer.rb +37 -0
- data/lib/logstash/modules/elasticsearch_resource.rb +10 -0
- data/lib/logstash/modules/file_reader.rb +36 -0
- data/lib/logstash/modules/kibana_base.rb +24 -0
- data/lib/logstash/modules/kibana_client.rb +122 -0
- data/lib/logstash/modules/kibana_config.rb +125 -0
- data/lib/logstash/modules/kibana_dashboards.rb +36 -0
- data/lib/logstash/modules/kibana_importer.rb +17 -0
- data/lib/logstash/modules/kibana_resource.rb +10 -0
- data/lib/logstash/modules/kibana_settings.rb +40 -0
- data/lib/logstash/modules/logstash_config.rb +120 -0
- data/lib/logstash/modules/resource_base.rb +38 -0
- data/lib/logstash/modules/scaffold.rb +50 -0
- data/lib/logstash/modules/settings_merger.rb +23 -0
- data/lib/logstash/modules/util.rb +17 -0
- data/lib/logstash/namespace.rb +1 -0
- data/lib/logstash/pipeline.rb +66 -27
- data/lib/logstash/pipeline_settings.rb +1 -0
- data/lib/logstash/plugins/registry.rb +1 -0
- data/lib/logstash/runner.rb +47 -3
- data/lib/logstash/settings.rb +20 -1
- data/lib/logstash/util/dead_letter_queue_manager.rb +1 -1
- data/lib/logstash/util/safe_uri.rb +146 -11
- data/lib/logstash/util/thread_dump.rb +4 -3
- data/lib/logstash/util/wrapped_acked_queue.rb +28 -24
- data/lib/logstash/util/wrapped_synchronous_queue.rb +19 -20
- data/lib/logstash/version.rb +1 -1
- data/locales/en.yml +56 -1
- data/logstash-core.gemspec +6 -4
- data/spec/logstash/agent/converge_spec.rb +2 -2
- data/spec/logstash/agent_spec.rb +11 -3
- data/spec/logstash/api/modules/logging_spec.rb +13 -7
- data/spec/logstash/api/modules/node_plugins_spec.rb +23 -5
- data/spec/logstash/api/modules/node_spec.rb +17 -15
- data/spec/logstash/api/modules/node_stats_spec.rb +0 -1
- data/spec/logstash/api/modules/plugins_spec.rb +40 -9
- data/spec/logstash/api/modules/root_spec.rb +0 -1
- data/spec/logstash/api/rack_app_spec.rb +2 -1
- data/spec/logstash/compiler/compiler_spec.rb +54 -7
- data/spec/logstash/config/config_ast_spec.rb +47 -8
- data/spec/logstash/config/mixin_spec.rb +14 -2
- data/spec/logstash/config/pipeline_config_spec.rb +7 -7
- data/spec/logstash/config/source/local_spec.rb +5 -2
- data/spec/logstash/config/source/multi_local_spec.rb +56 -10
- data/spec/logstash/config/source_loader_spec.rb +1 -1
- data/spec/logstash/config/string_escape_spec.rb +24 -0
- data/spec/logstash/event_spec.rb +9 -0
- data/spec/logstash/filters/base_spec.rb +1 -1
- data/spec/logstash/instrument/metric_store_spec.rb +2 -3
- data/spec/logstash/instrument/metric_type/counter_spec.rb +0 -12
- data/spec/logstash/instrument/metric_type/gauge_spec.rb +1 -8
- data/spec/logstash/instrument/periodic_poller/dlq_spec.rb +17 -0
- data/spec/logstash/instrument/periodic_poller/jvm_spec.rb +1 -1
- data/spec/logstash/legacy_ruby_event_spec.rb +0 -9
- data/spec/logstash/legacy_ruby_timestamp_spec.rb +19 -14
- data/spec/logstash/modules/cli_parser_spec.rb +129 -0
- data/spec/logstash/modules/logstash_config_spec.rb +56 -0
- data/spec/logstash/modules/scaffold_spec.rb +239 -0
- data/spec/logstash/pipeline_dlq_commit_spec.rb +1 -1
- data/spec/logstash/pipeline_spec.rb +87 -20
- data/spec/logstash/runner_spec.rb +122 -5
- data/spec/logstash/setting_spec.rb +2 -2
- data/spec/logstash/settings/splittable_string_array_spec.rb +51 -0
- data/spec/logstash/timestamp_spec.rb +8 -2
- data/spec/logstash/util/safe_uri_spec.rb +16 -0
- data/spec/logstash/util/wrapped_acked_queue_spec.rb +63 -0
- data/spec/logstash/util/wrapped_synchronous_queue_spec.rb +0 -22
- data/spec/support/helpers.rb +1 -1
- data/spec/support/matchers.rb +21 -4
- metadata +102 -19
- data/lib/logstash/instrument/metric_type/base.rb +0 -31
- data/lib/logstash/program.rb +0 -14
- data/lib/logstash/string_interpolation.rb +0 -18
data/lib/logstash/settings.rb
CHANGED
@@ -537,8 +537,27 @@ module LogStash
|
|
537
537
|
end
|
538
538
|
end
|
539
539
|
end
|
540
|
-
end
|
541
540
|
|
541
|
+
class SplittableStringArray < ArrayCoercible
|
542
|
+
DEFAULT_TOKEN = ","
|
543
|
+
|
544
|
+
def initialize(name, klass, default, strict=true, tokenizer = DEFAULT_TOKEN, &validator_proc)
|
545
|
+
@element_class = klass
|
546
|
+
@token = tokenizer
|
547
|
+
super(name, klass, default, strict, &validator_proc)
|
548
|
+
end
|
549
|
+
|
550
|
+
def coerce(value)
|
551
|
+
if value.is_a?(Array)
|
552
|
+
value
|
553
|
+
elsif value.nil?
|
554
|
+
[]
|
555
|
+
else
|
556
|
+
value.split(@token).map(&:strip)
|
557
|
+
end
|
558
|
+
end
|
559
|
+
end
|
560
|
+
end
|
542
561
|
|
543
562
|
SETTINGS = Settings.new
|
544
563
|
end
|
@@ -48,7 +48,7 @@ module LogStash; module Util
|
|
48
48
|
def self.get(pipeline_id)
|
49
49
|
if LogStash::SETTINGS.get("dead_letter_queue.enable")
|
50
50
|
return DeadLetterQueueWriter.new(
|
51
|
-
DeadLetterQueueFactory.getWriter(pipeline_id, LogStash::SETTINGS.get("path.dead_letter_queue")))
|
51
|
+
DeadLetterQueueFactory.getWriter(pipeline_id, LogStash::SETTINGS.get("path.dead_letter_queue"), LogStash::SETTINGS.get('dead_letter_queue.max_bytes')))
|
52
52
|
else
|
53
53
|
return DeadLetterQueueWriter.new(nil)
|
54
54
|
end
|
@@ -11,20 +11,21 @@ class LogStash::Util::SafeURI
|
|
11
11
|
|
12
12
|
extend Forwardable
|
13
13
|
|
14
|
-
def_delegators :@uri, :coerce, :query=, :route_from, :port=, :default_port, :select, :normalize!, :absolute?, :registry=, :path, :password, :hostname, :merge, :normalize, :host, :component_ary, :userinfo=, :query, :set_opaque, :+, :merge!, :-, :password=, :parser, :port, :set_host, :set_path, :opaque=, :scheme, :fragment=, :set_query, :set_fragment, :userinfo, :hostname=, :set_port, :path=, :registry, :opaque, :route_to, :set_password, :hierarchical?, :set_user, :set_registry, :set_userinfo, :fragment, :component, :user=, :set_scheme, :absolute, :host=, :relative?, :scheme=, :user
|
15
14
|
|
16
15
|
attr_reader :uri
|
17
|
-
|
16
|
+
|
18
17
|
public
|
19
18
|
def initialize(arg)
|
20
19
|
@uri = case arg
|
21
20
|
when String
|
22
21
|
arg = "//#{arg}" if HOSTNAME_PORT_REGEX.match(arg)
|
23
|
-
URI.
|
24
|
-
when URI
|
22
|
+
java.net.URI.new(arg)
|
23
|
+
when java.net.URI
|
25
24
|
arg
|
25
|
+
when URI
|
26
|
+
java.net.URI.new(arg.to_s)
|
26
27
|
else
|
27
|
-
raise ArgumentError, "Expected a string or URI, got a #{arg.class} creating a URL"
|
28
|
+
raise ArgumentError, "Expected a string, java.net.URI, or URI, got a #{arg.class} creating a URL"
|
28
29
|
end
|
29
30
|
end
|
30
31
|
|
@@ -37,11 +38,11 @@ class LogStash::Util::SafeURI
|
|
37
38
|
end
|
38
39
|
|
39
40
|
def sanitized
|
40
|
-
return uri unless
|
41
|
+
return uri unless password # nothing to sanitize here!
|
41
42
|
|
42
|
-
|
43
|
-
|
44
|
-
|
43
|
+
user_info = user ? "#{user}:#{PASS_PLACEHOLDER}" : nil
|
44
|
+
|
45
|
+
make_uri(scheme, user_info, host, port, path, query, fragment)
|
45
46
|
end
|
46
47
|
|
47
48
|
def ==(other)
|
@@ -49,8 +50,142 @@ class LogStash::Util::SafeURI
|
|
49
50
|
end
|
50
51
|
|
51
52
|
def clone
|
52
|
-
|
53
|
-
self.class.new(
|
53
|
+
# No need to clone the URI, in java its immutable
|
54
|
+
self.class.new(uri)
|
55
|
+
end
|
56
|
+
|
57
|
+
def update(field, value)
|
58
|
+
new_scheme = scheme
|
59
|
+
new_user = user
|
60
|
+
new_password = password
|
61
|
+
new_host = host
|
62
|
+
new_port = port
|
63
|
+
new_path = path
|
64
|
+
new_query = query
|
65
|
+
new_fragment = fragment
|
66
|
+
|
67
|
+
case field
|
68
|
+
when :scheme
|
69
|
+
new_scheme = value
|
70
|
+
when :user
|
71
|
+
new_user = value
|
72
|
+
when :password
|
73
|
+
new_password = value
|
74
|
+
when :host
|
75
|
+
new_host = value
|
76
|
+
when :port
|
77
|
+
new_port = value
|
78
|
+
when :path
|
79
|
+
new_path = value
|
80
|
+
when :query
|
81
|
+
new_query = value
|
82
|
+
when :fragment
|
83
|
+
new_fragment = value
|
84
|
+
end
|
85
|
+
|
86
|
+
user_info = new_user
|
87
|
+
if new_user && new_password
|
88
|
+
user_info += ":" + new_password
|
89
|
+
end
|
90
|
+
|
91
|
+
@uri = make_uri(new_scheme, user_info, new_host, new_port, new_path, new_query, new_fragment)
|
92
|
+
end
|
93
|
+
|
94
|
+
def user
|
95
|
+
if userinfo
|
96
|
+
userinfo.split(":")[0]
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
def user=(new_user)
|
101
|
+
update(:user, new_user)
|
102
|
+
end
|
103
|
+
|
104
|
+
def password
|
105
|
+
if userinfo
|
106
|
+
userinfo.split(":")[1]
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
def password=(new_password)
|
111
|
+
update(:password, new_password)
|
112
|
+
end
|
113
|
+
|
114
|
+
def hostname
|
115
|
+
# Alias from the ruby library
|
116
|
+
host
|
117
|
+
end
|
118
|
+
|
119
|
+
def host=(new_host)
|
120
|
+
update(:host, new_host)
|
121
|
+
end
|
122
|
+
|
123
|
+
def port
|
124
|
+
# In java this is an int
|
125
|
+
uri.port < 1 ? nil : uri.port
|
126
|
+
end
|
127
|
+
|
128
|
+
def port=(new_port)
|
129
|
+
update(:port, new_port)
|
130
|
+
end
|
131
|
+
|
132
|
+
def path=(new_path)
|
133
|
+
update(:path, new_path)
|
134
|
+
end
|
135
|
+
|
136
|
+
def query=(new_query)
|
137
|
+
update(:query, new_query)
|
138
|
+
end
|
139
|
+
|
140
|
+
def fragment=(new_fragment)
|
141
|
+
update(:fragment, new_fragment)
|
142
|
+
end
|
143
|
+
|
144
|
+
# Same algorithm as Ruby's URI class uses
|
145
|
+
def normalize!
|
146
|
+
if path && path == ''
|
147
|
+
path = '/'
|
148
|
+
end
|
149
|
+
if scheme && scheme != scheme.downcase
|
150
|
+
scheme = self.scheme.downcase
|
151
|
+
end
|
152
|
+
if host && host != host.downcase
|
153
|
+
host = self.host.downcase
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
def normalize
|
158
|
+
d = self.dup
|
159
|
+
d.normalize!
|
160
|
+
d
|
161
|
+
end
|
162
|
+
|
163
|
+
def path
|
164
|
+
@uri.raw_path
|
165
|
+
end
|
166
|
+
|
167
|
+
def query
|
168
|
+
@uri.raw_query
|
169
|
+
end
|
170
|
+
|
171
|
+
def fragment
|
172
|
+
@uri.raw_fragment
|
173
|
+
end
|
174
|
+
|
175
|
+
def userinfo
|
176
|
+
@uri.raw_user_info
|
177
|
+
end
|
178
|
+
|
179
|
+
def_delegators :@uri, :absolute?, :scheme, :host
|
180
|
+
|
181
|
+
private
|
182
|
+
|
183
|
+
# Jruby doesn't guess the constructor correctly if there are some nil things in place
|
184
|
+
# hence, this method
|
185
|
+
def make_uri(scheme, user_info, host, port, path, query, fragment)
|
186
|
+
# It is lot legal to have a path not starting with a /
|
187
|
+
prefixed_path = path && path[0] != "/" ? "/#{path}" : path
|
188
|
+
java.net.URI.new(scheme, user_info, host, port || -1, prefixed_path, query, fragment)
|
54
189
|
end
|
55
190
|
end
|
56
191
|
|
@@ -19,12 +19,13 @@ module LogStash
|
|
19
19
|
|
20
20
|
def each(&block)
|
21
21
|
i=0
|
22
|
-
dump.
|
22
|
+
dump.each do |hash|
|
23
|
+
thread_name = hash["thread.name"]
|
23
24
|
break if i >= top_count
|
24
25
|
if ignore
|
25
|
-
next if idle_thread?(thread_name,
|
26
|
+
next if idle_thread?(thread_name, hash)
|
26
27
|
end
|
27
|
-
block.call(
|
28
|
+
block.call(hash)
|
28
29
|
i += 1
|
29
30
|
end
|
30
31
|
end
|
@@ -57,24 +57,6 @@ module LogStash; module Util
|
|
57
57
|
end
|
58
58
|
alias_method(:<<, :push)
|
59
59
|
|
60
|
-
# TODO - fix doc for this noop method
|
61
|
-
# Offer an object to the queue, wait for the specified amount of time.
|
62
|
-
# If adding to the queue was successful it will return true, false otherwise.
|
63
|
-
#
|
64
|
-
# @param [Object] Object to add to the queue
|
65
|
-
# @param [Integer] Time in milliseconds to wait before giving up
|
66
|
-
# @return [Boolean] True if adding was successful if not it return false
|
67
|
-
def offer(obj, timeout_ms)
|
68
|
-
raise NotImplementedError.new("The offer method is not implemented. There is no non blocking write operation yet.")
|
69
|
-
end
|
70
|
-
|
71
|
-
# Blocking
|
72
|
-
def take
|
73
|
-
check_closed("read a batch")
|
74
|
-
# TODO - determine better arbitrary timeout millis
|
75
|
-
@queue.read_batch(1, 200).get_elements.first
|
76
|
-
end
|
77
|
-
|
78
60
|
# Block for X millis
|
79
61
|
def poll(millis)
|
80
62
|
check_closed("read")
|
@@ -100,6 +82,10 @@ module LogStash; module Util
|
|
100
82
|
end
|
101
83
|
end
|
102
84
|
|
85
|
+
def is_empty?
|
86
|
+
@queue.is_empty?
|
87
|
+
end
|
88
|
+
|
103
89
|
def close
|
104
90
|
@queue.close
|
105
91
|
@closed.make_true
|
@@ -127,7 +113,12 @@ module LogStash; module Util
|
|
127
113
|
end
|
128
114
|
|
129
115
|
def empty?
|
130
|
-
@mutex.
|
116
|
+
@mutex.lock
|
117
|
+
begin
|
118
|
+
@queue.is_empty?
|
119
|
+
ensure
|
120
|
+
@mutex.unlock
|
121
|
+
end
|
131
122
|
end
|
132
123
|
|
133
124
|
def set_batch_dimensions(batch_size, wait_for)
|
@@ -152,8 +143,11 @@ module LogStash; module Util
|
|
152
143
|
end
|
153
144
|
|
154
145
|
def inflight_batches
|
155
|
-
@mutex.
|
146
|
+
@mutex.lock
|
147
|
+
begin
|
156
148
|
yield(@inflight_batches)
|
149
|
+
ensure
|
150
|
+
@mutex.unlock
|
157
151
|
end
|
158
152
|
end
|
159
153
|
|
@@ -173,16 +167,24 @@ module LogStash; module Util
|
|
173
167
|
end
|
174
168
|
|
175
169
|
batch = new_batch
|
176
|
-
@mutex.
|
170
|
+
@mutex.lock
|
171
|
+
begin
|
172
|
+
batch.read_next
|
173
|
+
ensure
|
174
|
+
@mutex.unlock
|
175
|
+
end
|
177
176
|
start_metrics(batch)
|
178
177
|
batch
|
179
178
|
end
|
180
179
|
|
181
180
|
def start_metrics(batch)
|
182
|
-
@mutex.
|
181
|
+
@mutex.lock
|
182
|
+
begin
|
183
183
|
# there seems to be concurrency issues with metrics, keep it in the mutex
|
184
184
|
set_current_thread_inflight_batch(batch)
|
185
185
|
start_clock
|
186
|
+
ensure
|
187
|
+
@mutex.unlock
|
186
188
|
end
|
187
189
|
end
|
188
190
|
|
@@ -191,12 +193,14 @@ module LogStash; module Util
|
|
191
193
|
end
|
192
194
|
|
193
195
|
def close_batch(batch)
|
194
|
-
@mutex.
|
196
|
+
@mutex.lock
|
197
|
+
begin
|
195
198
|
batch.close
|
196
|
-
|
197
199
|
# there seems to be concurrency issues with metrics, keep it in the mutex
|
198
200
|
@inflight_batches.delete(Thread.current)
|
199
201
|
stop_clock(batch)
|
202
|
+
ensure
|
203
|
+
@mutex.unlock
|
200
204
|
end
|
201
205
|
end
|
202
206
|
|
@@ -18,21 +18,6 @@ module LogStash; module Util
|
|
18
18
|
end
|
19
19
|
alias_method(:<<, :push)
|
20
20
|
|
21
|
-
# Offer an object to the queue, wait for the specified amount of time.
|
22
|
-
# If adding to the queue was successful it wil return true, false otherwise.
|
23
|
-
#
|
24
|
-
# @param [Object] Object to add to the queue
|
25
|
-
# @param [Integer] Time in milliseconds to wait before giving up
|
26
|
-
# @return [Boolean] True if adding was successful if not it return false
|
27
|
-
def offer(obj, timeout_ms)
|
28
|
-
@queue.offer(obj, timeout_ms, TimeUnit::MILLISECONDS)
|
29
|
-
end
|
30
|
-
|
31
|
-
# Blocking
|
32
|
-
def take
|
33
|
-
@queue.take
|
34
|
-
end
|
35
|
-
|
36
21
|
# Block for X millis
|
37
22
|
def poll(millis)
|
38
23
|
@queue.poll(millis, TimeUnit::MILLISECONDS)
|
@@ -98,8 +83,11 @@ module LogStash; module Util
|
|
98
83
|
end
|
99
84
|
|
100
85
|
def inflight_batches
|
101
|
-
@mutex.
|
86
|
+
@mutex.lock
|
87
|
+
begin
|
102
88
|
yield(@inflight_batches)
|
89
|
+
ensure
|
90
|
+
@mutex.unlock
|
103
91
|
end
|
104
92
|
end
|
105
93
|
|
@@ -115,16 +103,24 @@ module LogStash; module Util
|
|
115
103
|
|
116
104
|
def read_batch
|
117
105
|
batch = new_batch
|
118
|
-
@mutex.
|
106
|
+
@mutex.lock
|
107
|
+
begin
|
108
|
+
batch.read_next
|
109
|
+
ensure
|
110
|
+
@mutex.unlock
|
111
|
+
end
|
119
112
|
start_metrics(batch)
|
120
113
|
batch
|
121
114
|
end
|
122
115
|
|
123
116
|
def start_metrics(batch)
|
124
|
-
@mutex.
|
125
|
-
|
117
|
+
@mutex.lock
|
118
|
+
# there seems to be concurrency issues with metrics, keep it in the mutex
|
119
|
+
begin
|
126
120
|
set_current_thread_inflight_batch(batch)
|
127
121
|
start_clock
|
122
|
+
ensure
|
123
|
+
@mutex.unlock
|
128
124
|
end
|
129
125
|
end
|
130
126
|
|
@@ -133,10 +129,13 @@ module LogStash; module Util
|
|
133
129
|
end
|
134
130
|
|
135
131
|
def close_batch(batch)
|
136
|
-
@mutex.
|
132
|
+
@mutex.lock
|
133
|
+
begin
|
137
134
|
# there seems to be concurrency issues with metrics, keep it in the mutex
|
138
135
|
@inflight_batches.delete(Thread.current)
|
139
136
|
stop_clock(batch)
|
137
|
+
ensure
|
138
|
+
@mutex.unlock
|
140
139
|
end
|
141
140
|
end
|
142
141
|
|
data/lib/logstash/version.rb
CHANGED
data/locales/en.yml
CHANGED
@@ -81,14 +81,37 @@ en:
|
|
81
81
|
::: {%{hostname}}
|
82
82
|
Hot threads at %{time}, busiestThreads=%{top_count}:
|
83
83
|
thread_title: |-
|
84
|
-
%{percent_of_cpu_time} % of cpu usage, state: %{thread_state}, thread name: '%{thread_name}'
|
84
|
+
%{percent_of_cpu_time} % of cpu usage, state: %{thread_state}, thread name: '%{thread_name}', thread id: %{thread_id}
|
85
85
|
logging:
|
86
86
|
unrecognized_option: |-
|
87
87
|
unrecognized option [%{option}]
|
88
|
+
modules:
|
89
|
+
configuration:
|
90
|
+
parse-failed: |-
|
91
|
+
Failed to parse the module configuration: [%{error}]
|
92
|
+
modules-must-be-unique: >-
|
93
|
+
Only a single instance of any module can be run at a time. Duplicate
|
94
|
+
modules: %{duplicate_modules}
|
95
|
+
modules-invalid-name: >-
|
96
|
+
Invalid module name: %{module_name}
|
97
|
+
modules-variables-malformed: >-
|
98
|
+
Failed to parse module variable %{rawvar}. Must be in -M
|
99
|
+
"MODULE_NAME.KEY.SUBKEY=VALUE" format
|
100
|
+
modules-unavailable: >-
|
101
|
+
The modules specified are not available yet.
|
102
|
+
Specified modules: %{specified_modules}
|
103
|
+
Available modules: %{available_modules}
|
104
|
+
elasticsearch_connection_failed: >-
|
105
|
+
Failed to import module configurations to Elasticsearch and/or Kibana.
|
106
|
+
Module: %{module_name} has Elasticsearch hosts: %{elasticsearch_hosts} and Kibana hosts: %{kibana_hosts}
|
107
|
+
modules-too-many-specified: >-
|
108
|
+
Too many modules specified. Maximum allowed: %{max}, specified: %{specified_modules}
|
109
|
+
|
88
110
|
runner:
|
89
111
|
short-help: |-
|
90
112
|
usage:
|
91
113
|
bin/logstash -f CONFIG_PATH [-t] [-r] [] [-w COUNT] [-l LOG]
|
114
|
+
bin/logstash --modules MODULE_NAME [-M "MODULE_NAME.var.PLUGIN_TYPE.PLUGIN_NAME.VARIABLE_NAME=VALUE"] [-t] [-w COUNT] [-l LOG]
|
92
115
|
bin/logstash -e CONFIG_STR [-t] [--log.level fatal|error|warn|info|debug|trace] [-w COUNT] [-l LOG]
|
93
116
|
bin/logstash -i SHELL [--log.level fatal|error|warn|info|debug|trace]
|
94
117
|
bin/logstash -V [--log.level fatal|error|warn|info|debug|trace]
|
@@ -100,6 +123,20 @@ en:
|
|
100
123
|
the '-f yourlogstash.conf' flag?
|
101
124
|
config-string-path-exclusive:
|
102
125
|
Settings 'path.config' (-f) and 'config.string' (-e) can't be used simultaneously.
|
126
|
+
config-module-exclusive: >-
|
127
|
+
Settings 'path.config' (-f) or 'config.string' (-e) can't be used in conjunction with
|
128
|
+
(--modules) or the "modules:" block in the logstash.yml file.
|
129
|
+
reload-with-modules: >-
|
130
|
+
Configuration reloading can't be used with command-line or logstash.yml specified modules.
|
131
|
+
cli-module-override: >-
|
132
|
+
Both command-line and logstash.yml modules configurations detected.
|
133
|
+
Using command-line module configuration to override logstash.yml module configuration.
|
134
|
+
config-pipelines-failed-read: >-
|
135
|
+
Failed to read pipelines yaml file. Location: %{path}
|
136
|
+
config-pipelines-empty: >-
|
137
|
+
Pipelines YAML file is empty. Location: %{path}
|
138
|
+
config-pipelines-invalid: >-
|
139
|
+
Pipelines YAML file must contain an array of pipeline configs. Found "%{invalid_class}" in %{path}
|
103
140
|
reload-without-config-path: >-
|
104
141
|
Configuration reloading also requires passing a configuration path with '-f yourlogstash.conf'
|
105
142
|
reload-with-config-string: >-
|
@@ -187,6 +224,24 @@ en:
|
|
187
224
|
"%{default_output}"
|
188
225
|
If you wish to use both defaults, please use
|
189
226
|
the empty string for the '-e' flag.
|
227
|
+
modules: |+
|
228
|
+
Load Logstash modules.
|
229
|
+
Modules can be defined using multiple instances
|
230
|
+
'--modules module1 --modules module2',
|
231
|
+
or comma-separated syntax
|
232
|
+
'--modules=module1,module2'
|
233
|
+
Cannot be used in conjunction with '-e' or '-f'
|
234
|
+
Use of '--modules' will override modules declared
|
235
|
+
in the 'logstash.yml' file.
|
236
|
+
modules_variable: |+
|
237
|
+
Load variables for module template.
|
238
|
+
Multiple instances of '-M' or
|
239
|
+
'--modules.variable' are supported.
|
240
|
+
Ignored if '--modules' flag is not used.
|
241
|
+
Should be in the format of
|
242
|
+
'-M "MODULE_NAME.var.PLUGIN_TYPE.PLUGIN_NAME.VARIABLE_NAME=VALUE"'
|
243
|
+
as in
|
244
|
+
'-M "example.var.filter.mutate.fieldname=fieldvalue"'
|
190
245
|
configtest: |+
|
191
246
|
Check configuration for valid syntax and then exit.
|
192
247
|
http_host: Web API binding host
|