logstash-core 2.2.3.snapshot2-java → 2.2.4-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.
Potentially problematic release.
This version of logstash-core might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/lib/logstash-core/version.rb +1 -1
- data/lib/logstash/agent.rb +6 -0
- data/lib/logstash/config/mixin.rb +14 -1
- data/lib/logstash/output_delegator.rb +1 -1
- data/lib/logstash/pipeline.rb +19 -2
- data/lib/logstash/version.rb +1 -1
- data/locales/en.yml +4 -0
- data/logstash-core.gemspec +1 -1
- data/spec/logstash/agent_spec.rb +24 -1
- data/spec/logstash/config/mixin_spec.rb +4 -0
- data/spec/logstash/pipeline_spec.rb +1 -1
- data/spec/logstash/runner_spec.rb +1 -1
- metadata +29 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f831ead5e4ec098fc912b8f54e9f9d69798f7e9a
|
4
|
+
data.tar.gz: c26099f244c689551f1218eecdeae0608a30f053
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd2d386fae5c0b15b95cd89b8e1a794f8baa4c3c73e3979c0709bcc3c39b6a2146257215a1fc4d404103f8b209ad15127833862f6846c18420983978a1a06e09
|
7
|
+
data.tar.gz: 3e272ebe1527efb486eec984152de845cb3a3ac21f7419b7d96f3e3ee2c6182344dc147e64862357d5837ddaff9be803568ce5cab661629aaa4b770922b1f0e4
|
data/lib/logstash/agent.rb
CHANGED
@@ -9,6 +9,7 @@ require "logstash/pipeline"
|
|
9
9
|
LogStash::Environment.load_locale!
|
10
10
|
|
11
11
|
class LogStash::Agent < Clamp::Command
|
12
|
+
|
12
13
|
DEFAULT_INPUT = "input { stdin { type => stdin } }"
|
13
14
|
DEFAULT_OUTPUT = "output { stdout { codec => rubydebug } }"
|
14
15
|
|
@@ -53,6 +54,10 @@ class LogStash::Agent < Clamp::Command
|
|
53
54
|
option "--verbose", :flag, I18n.t("logstash.agent.flag.verbose")
|
54
55
|
option "--debug", :flag, I18n.t("logstash.agent.flag.debug")
|
55
56
|
|
57
|
+
option "--debug-config", :flag,
|
58
|
+
I18n.t("logstash.runner.flag.debug_config"),
|
59
|
+
:attribute_name => :debug_config, :default => false
|
60
|
+
|
56
61
|
option ["-V", "--version"], :flag,
|
57
62
|
I18n.t("logstash.agent.flag.version")
|
58
63
|
|
@@ -263,6 +268,7 @@ class LogStash::Agent < Clamp::Command
|
|
263
268
|
#
|
264
269
|
# Log file stuff, plugin path checking, etc.
|
265
270
|
def configure
|
271
|
+
@pipeline_settings[:debug_config] = debug_config?
|
266
272
|
configure_logging(log_file)
|
267
273
|
configure_plugin_paths(plugin_paths)
|
268
274
|
end # def configure
|
@@ -51,7 +51,7 @@ module LogStash::Config::Mixin
|
|
51
51
|
# Keep a copy of the original config params so that we can later
|
52
52
|
# differentiate between explicit configuration and implicit (default)
|
53
53
|
# configuration.
|
54
|
-
|
54
|
+
original_params = params.clone
|
55
55
|
|
56
56
|
# store the plugin type, turns LogStash::Inputs::Base into 'input'
|
57
57
|
@plugin_type = self.class.ancestors.find { |a| a.name =~ /::Base$/ }.config_name
|
@@ -123,6 +123,11 @@ module LogStash::Config::Mixin
|
|
123
123
|
instance_variable_set("@#{key}", value)
|
124
124
|
end
|
125
125
|
|
126
|
+
# now that we know the parameters are valid, we can obfuscate the original copy
|
127
|
+
# of the parameters before storing them as an instance variable
|
128
|
+
self.class.secure_params!(original_params)
|
129
|
+
@original_params = original_params
|
130
|
+
|
126
131
|
@config = params
|
127
132
|
end # def config_init
|
128
133
|
|
@@ -495,6 +500,14 @@ module LogStash::Config::Mixin
|
|
495
500
|
return true, result
|
496
501
|
end # def validate_value
|
497
502
|
|
503
|
+
def secure_params!(params)
|
504
|
+
params.each do |key, value|
|
505
|
+
if @config[key][:validate] == :password && !value.is_a?(::LogStash::Util::Password)
|
506
|
+
params[key] = ::LogStash::Util::Password.new(value)
|
507
|
+
end
|
508
|
+
end
|
509
|
+
end
|
510
|
+
|
498
511
|
def hash_or_array(value)
|
499
512
|
if !value.is_a?(Hash)
|
500
513
|
value = [*value] # coerce scalar to array if necessary
|
data/lib/logstash/pipeline.rb
CHANGED
@@ -24,7 +24,8 @@ module LogStash; class Pipeline
|
|
24
24
|
:pipeline_batch_size => 125,
|
25
25
|
:pipeline_batch_delay => 5, # in milliseconds
|
26
26
|
:flush_interval => 5, # in seconds
|
27
|
-
:flush_timeout_interval => 60 # in seconds
|
27
|
+
:flush_timeout_interval => 60, # in seconds
|
28
|
+
:debug_config => false
|
28
29
|
}
|
29
30
|
MAX_INFLIGHT_WARN_THRESHOLD = 10_000
|
30
31
|
|
@@ -52,7 +53,9 @@ module LogStash; class Pipeline
|
|
52
53
|
code = @config.compile
|
53
54
|
# The config code is hard to represent as a log message...
|
54
55
|
# So just print it.
|
55
|
-
|
56
|
+
if @settings[:debug_config]
|
57
|
+
@logger.debug? && @logger.debug("Compiled pipeline code:\n#{code}")
|
58
|
+
end
|
56
59
|
begin
|
57
60
|
eval(code)
|
58
61
|
rescue => e
|
@@ -479,4 +482,18 @@ module LogStash; class Pipeline
|
|
479
482
|
.each {|t| t.delete("blocked_on") }
|
480
483
|
.each {|t| t.delete("status") }
|
481
484
|
end
|
485
|
+
|
486
|
+
# Sometimes we log stuff that will dump the pipeline which may contain
|
487
|
+
# sensitive information (like the raw syntax tree which can contain passwords)
|
488
|
+
# We want to hide most of what's in here
|
489
|
+
def inspect
|
490
|
+
{
|
491
|
+
:pipeline_id => @pipeline_id,
|
492
|
+
:settings => @settings.inspect,
|
493
|
+
:ready => @ready,
|
494
|
+
:running => @running,
|
495
|
+
:flushing => @flushing
|
496
|
+
}
|
497
|
+
end
|
498
|
+
|
482
499
|
end end
|
data/lib/logstash/version.rb
CHANGED
data/locales/en.yml
CHANGED
@@ -193,6 +193,10 @@ en:
|
|
193
193
|
debug: |+
|
194
194
|
Most verbose logging. This causes 'debug'
|
195
195
|
level logs to be emitted.
|
196
|
+
debug-config: |+
|
197
|
+
Print the compiled config ruby code out as a debug log (you must also have --debug enabled).
|
198
|
+
WARNING: This will include any 'password' options passed to plugin configs as plaintext, and may result
|
199
|
+
in plaintext passwords appearing in your logs!
|
196
200
|
unsafe_shutdown: |+
|
197
201
|
Force logstash to exit during shutdown even
|
198
202
|
if there are still inflight events in memory.
|
data/logstash-core.gemspec
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.require_paths = ["lib"]
|
18
18
|
gem.version = LOGSTASH_CORE_VERSION
|
19
19
|
|
20
|
-
gem.add_runtime_dependency "logstash-core-event", "~> 2.2.
|
20
|
+
gem.add_runtime_dependency "logstash-core-event", "~> 2.2.4"
|
21
21
|
|
22
22
|
gem.add_runtime_dependency "cabin", "~> 0.7.0" #(Apache 2.0 license)
|
23
23
|
gem.add_runtime_dependency "pry", "~> 0.10.1" #(Ruby license)
|
data/spec/logstash/agent_spec.rb
CHANGED
@@ -58,5 +58,28 @@ describe LogStash::Agent do
|
|
58
58
|
subject.configure_plugin_paths(multiple_paths)
|
59
59
|
end
|
60
60
|
end
|
61
|
-
end
|
62
61
|
|
62
|
+
describe "debug_config" do
|
63
|
+
let(:pipeline_string) { "input {} output {}" }
|
64
|
+
let(:pipeline) { double("pipeline") }
|
65
|
+
|
66
|
+
before(:each) do
|
67
|
+
allow(pipeline).to receive(:run)
|
68
|
+
end
|
69
|
+
it "should set 'debug_config' to false by default" do
|
70
|
+
expect(LogStash::Pipeline).to receive(:new).
|
71
|
+
with(anything,hash_including(:debug_config => false)).
|
72
|
+
and_return(pipeline)
|
73
|
+
args = ["--debug", "-e", pipeline_string]
|
74
|
+
subject.run(args)
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should allow overriding debug_config" do
|
78
|
+
expect(LogStash::Pipeline).to receive(:new).
|
79
|
+
with(anything, hash_including(:debug_config => true))
|
80
|
+
.and_return(pipeline)
|
81
|
+
args = ["--debug", "--debug-config", "-e", pipeline_string]
|
82
|
+
subject.run(args)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -96,6 +96,10 @@ describe LogStash::Config::Mixin do
|
|
96
96
|
clone = subject.class.new(subject.params)
|
97
97
|
expect(clone.password.value).to(be == secret)
|
98
98
|
end
|
99
|
+
|
100
|
+
it "should obfuscate original_params" do
|
101
|
+
expect(subject.original_params['password']).to(be_a(LogStash::Util::Password))
|
102
|
+
end
|
99
103
|
end
|
100
104
|
|
101
105
|
describe "obsolete settings" do
|
@@ -416,7 +416,7 @@ describe LogStash::Pipeline do
|
|
416
416
|
Thread.new { pipeline.run }
|
417
417
|
sleep 0.1 while !pipeline.ready?
|
418
418
|
# give us a bit of time to flush the events
|
419
|
-
wait(
|
419
|
+
wait(15).for do
|
420
420
|
next unless output && output.events && output.events.first
|
421
421
|
output.events.first["message"].split("\n").count
|
422
422
|
end.to eq(number_of_events)
|
@@ -40,7 +40,7 @@ describe LogStash::Runner do
|
|
40
40
|
|
41
41
|
describe "pipeline settings" do
|
42
42
|
let(:pipeline_string) { "input { stdin {} } output { stdout {} }" }
|
43
|
-
let(:base_pipeline_settings) { { :pipeline_id => "base" } }
|
43
|
+
let(:base_pipeline_settings) { { :pipeline_id => "base", :debug_config => false } }
|
44
44
|
let(:pipeline) { double("pipeline") }
|
45
45
|
|
46
46
|
before(:each) do
|
metadata
CHANGED
@@ -1,33 +1,33 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.4
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
15
15
|
requirements:
|
16
|
-
- - ~>
|
16
|
+
- - "~>"
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: 2.2.
|
18
|
+
version: 2.2.4
|
19
19
|
name: logstash-core-event
|
20
20
|
prerelease: false
|
21
21
|
type: :runtime
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.2.
|
26
|
+
version: 2.2.4
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
29
29
|
requirements:
|
30
|
-
- - ~>
|
30
|
+
- - "~>"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 0.7.0
|
33
33
|
name: cabin
|
@@ -35,13 +35,13 @@ dependencies:
|
|
35
35
|
type: :runtime
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.7.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- - ~>
|
44
|
+
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: 0.10.1
|
47
47
|
name: pry
|
@@ -49,13 +49,13 @@ dependencies:
|
|
49
49
|
type: :runtime
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.10.1
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
|
-
- - ~>
|
58
|
+
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: 0.0.19
|
61
61
|
name: stud
|
@@ -63,13 +63,13 @@ dependencies:
|
|
63
63
|
type: :runtime
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 0.0.19
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
requirement: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
|
-
- - ~>
|
72
|
+
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: 0.6.5
|
75
75
|
name: clamp
|
@@ -77,7 +77,7 @@ dependencies:
|
|
77
77
|
type: :runtime
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - ~>
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 0.6.5
|
83
83
|
- !ruby/object:Gem::Dependency
|
@@ -97,7 +97,7 @@ dependencies:
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
requirement: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
|
-
- - ~>
|
100
|
+
- - "~>"
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: 0.8.3
|
103
103
|
name: gems
|
@@ -105,7 +105,7 @@ dependencies:
|
|
105
105
|
type: :runtime
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - ~>
|
108
|
+
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 0.8.3
|
111
111
|
- !ruby/object:Gem::Dependency
|
@@ -139,7 +139,7 @@ dependencies:
|
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
requirement: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
|
-
- - <
|
142
|
+
- - "<"
|
143
143
|
- !ruby/object:Gem::Version
|
144
144
|
version: 1.5.0
|
145
145
|
name: treetop
|
@@ -147,7 +147,7 @@ dependencies:
|
|
147
147
|
type: :runtime
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- - <
|
150
|
+
- - "<"
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: 1.5.0
|
153
153
|
- !ruby/object:Gem::Dependency
|
@@ -167,7 +167,7 @@ dependencies:
|
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
requirement: !ruby/object:Gem::Requirement
|
169
169
|
requirements:
|
170
|
-
- - ~>
|
170
|
+
- - "~>"
|
171
171
|
- !ruby/object:Gem::Version
|
172
172
|
version: 0.5.4
|
173
173
|
name: minitar
|
@@ -175,13 +175,13 @@ dependencies:
|
|
175
175
|
type: :runtime
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
|
-
- - ~>
|
178
|
+
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: 0.5.4
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
requirement: !ruby/object:Gem::Requirement
|
183
183
|
requirements:
|
184
|
-
- - ~>
|
184
|
+
- - "~>"
|
185
185
|
- !ruby/object:Gem::Version
|
186
186
|
version: 1.1.7
|
187
187
|
name: rubyzip
|
@@ -189,13 +189,13 @@ dependencies:
|
|
189
189
|
type: :runtime
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
|
-
- - ~>
|
192
|
+
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: 1.1.7
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
requirement: !ruby/object:Gem::Requirement
|
197
197
|
requirements:
|
198
|
-
- - ~>
|
198
|
+
- - "~>"
|
199
199
|
- !ruby/object:Gem::Version
|
200
200
|
version: 0.3.5
|
201
201
|
name: thread_safe
|
@@ -203,13 +203,13 @@ dependencies:
|
|
203
203
|
type: :runtime
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
|
-
- - ~>
|
206
|
+
- - "~>"
|
207
207
|
- !ruby/object:Gem::Version
|
208
208
|
version: 0.3.5
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
requirement: !ruby/object:Gem::Requirement
|
211
211
|
requirements:
|
212
|
-
- - ~>
|
212
|
+
- - "~>"
|
213
213
|
- !ruby/object:Gem::Version
|
214
214
|
version: 0.3.7
|
215
215
|
name: jrjackson
|
@@ -217,7 +217,7 @@ dependencies:
|
|
217
217
|
type: :runtime
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
219
219
|
requirements:
|
220
|
-
- - ~>
|
220
|
+
- - "~>"
|
221
221
|
- !ruby/object:Gem::Version
|
222
222
|
version: 0.3.7
|
223
223
|
description: The core components of logstash, the scalable log and event management tool
|
@@ -318,14 +318,14 @@ require_paths:
|
|
318
318
|
- lib
|
319
319
|
required_ruby_version: !ruby/object:Gem::Requirement
|
320
320
|
requirements:
|
321
|
-
- -
|
321
|
+
- - ">="
|
322
322
|
- !ruby/object:Gem::Version
|
323
323
|
version: '0'
|
324
324
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
325
325
|
requirements:
|
326
|
-
- -
|
326
|
+
- - ">="
|
327
327
|
- !ruby/object:Gem::Version
|
328
|
-
version:
|
328
|
+
version: '0'
|
329
329
|
requirements: []
|
330
330
|
rubyforge_project:
|
331
331
|
rubygems_version: 2.4.8
|