logstash-core 6.0.0.alpha2-java → 6.0.0.beta1-java
Sign up to get free protection for your applications and to get access to all the features.
- 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
|