logstash-core 2.0.0.beta1-java → 2.0.0.beta2-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/agent.rb +12 -3
- data/lib/logstash/codecs/base.rb +1 -1
- data/lib/logstash/config/cpu_core_strategy.rb +32 -0
- data/lib/logstash/config/defaults.rb +12 -0
- data/lib/logstash/config/mixin.rb +17 -0
- data/lib/logstash/filters/base.rb +7 -46
- data/lib/logstash/inputs/base.rb +29 -40
- data/lib/logstash/json.rb +10 -2
- data/lib/logstash/outputs/base.rb +6 -38
- data/lib/logstash/patches.rb +1 -0
- data/lib/logstash/patches/silence_concurrent_ruby_warning.rb +54 -0
- data/lib/logstash/patches/stronger_openssl_defaults.rb +1 -1
- data/lib/logstash/pipeline.rb +82 -97
- data/lib/logstash/plugin.rb +10 -60
- data/lib/logstash/string_interpolation.rb +1 -1
- data/lib/logstash/util/defaults_printer.rb +31 -0
- data/lib/logstash/util/worker_threads_default_printer.rb +17 -0
- data/lib/logstash/version.rb +1 -1
- data/locales/en.yml +4 -0
- data/logstash-core.gemspec +3 -1
- data/spec/core/config_cpu_core_strategy_spec.rb +123 -0
- data/spec/core/config_defaults_spec.rb +10 -0
- data/spec/core/config_mixin_spec.rb +54 -0
- data/spec/core/event_spec.rb +8 -0
- data/spec/core/pipeline_spec.rb +13 -13
- data/spec/filters/base_spec.rb +4 -71
- data/spec/license_spec.rb +13 -0
- data/spec/outputs/base_spec.rb +0 -21
- data/spec/util/defaults_printer_spec.rb +49 -0
- data/spec/util/worker_threads_default_printer_spec.rb +26 -0
- metadata +46 -7
- data/lib/logstash/multiqueue.rb +0 -53
- data/lib/logstash/util/require-helper.rb +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6026efcfb1f8b27ca3aead70d7055af4b89acc91
|
4
|
+
data.tar.gz: 04df43c7a2703f14b7511906d0ab74c60b4e6954
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1d3cbf47dd791f55bb26a8c39ded8f13f7c44c44af5b6975e0f9133153d0896d5eb2807ba93564634a17ae25d6cd09ef961c687e1375cef8647ce6f458525602
|
7
|
+
data.tar.gz: 4f5f02dc8a9f35ffa97f4a6789712d0e542e70e73a637055da1a143268f5e5882476549ee87918018c3ea8b689b1bac008f83a47bb1d28115b89daff2abd178e
|
data/lib/logstash/agent.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
require "clamp" # gem 'clamp'
|
3
3
|
require "logstash/environment"
|
4
4
|
require "logstash/errors"
|
5
|
+
require "logstash/config/cpu_core_strategy"
|
5
6
|
require "uri"
|
6
7
|
require "net/http"
|
7
8
|
LogStash::Environment.load_locale!
|
@@ -21,7 +22,8 @@ class LogStash::Agent < Clamp::Command
|
|
21
22
|
|
22
23
|
option ["-w", "--filterworkers"], "COUNT",
|
23
24
|
I18n.t("logstash.agent.flag.filterworkers"),
|
24
|
-
:attribute_name => :filter_workers,
|
25
|
+
:attribute_name => :filter_workers,
|
26
|
+
:default => LogStash::Config::CpuCoreStrategy.fifty_percent, &:to_i
|
25
27
|
|
26
28
|
option ["-l", "--log"], "FILE",
|
27
29
|
I18n.t("logstash.agent.flag.log"),
|
@@ -126,14 +128,14 @@ class LogStash::Agent < Clamp::Command
|
|
126
128
|
@logger.warn(I18n.t("logstash.agent.sigint"))
|
127
129
|
Thread.new(@logger) {|logger| sleep 5; logger.warn(I18n.t("logstash.agent.slow_shutdown")) }
|
128
130
|
@interrupted_once = true
|
129
|
-
pipeline
|
131
|
+
shutdown(pipeline)
|
130
132
|
end
|
131
133
|
end
|
132
134
|
|
133
135
|
# Make SIGTERM shutdown the pipeline.
|
134
136
|
sigterm_id = Stud::trap("TERM") do
|
135
137
|
@logger.warn(I18n.t("logstash.agent.sigterm"))
|
136
|
-
pipeline
|
138
|
+
shutdown(pipeline)
|
137
139
|
end
|
138
140
|
|
139
141
|
Stud::trap("HUP") do
|
@@ -172,6 +174,13 @@ class LogStash::Agent < Clamp::Command
|
|
172
174
|
Stud::untrap("TERM", sigterm_id) unless sigterm_id.nil?
|
173
175
|
end # def execute
|
174
176
|
|
177
|
+
def shutdown(pipeline)
|
178
|
+
pipeline.shutdown do
|
179
|
+
InflightEventsReporter.logger = @logger
|
180
|
+
InflightEventsReporter.start(pipeline.input_to_filter, pipeline.filter_to_output, pipeline.outputs)
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
175
184
|
def show_version
|
176
185
|
show_version_logstash
|
177
186
|
|
data/lib/logstash/codecs/base.rb
CHANGED
@@ -0,0 +1,32 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require "logstash/namespace"
|
3
|
+
require "logstash/config/defaults"
|
4
|
+
|
5
|
+
module LogStash module Config module CpuCoreStrategy
|
6
|
+
|
7
|
+
extend self
|
8
|
+
|
9
|
+
def maximum
|
10
|
+
LogStash::Config::Defaults.cpu_cores
|
11
|
+
end
|
12
|
+
|
13
|
+
def fifty_percent
|
14
|
+
[1, (maximum * 0.5)].max.floor
|
15
|
+
end
|
16
|
+
|
17
|
+
def seventy_five_percent
|
18
|
+
[1, (maximum * 0.75)].max.floor
|
19
|
+
end
|
20
|
+
|
21
|
+
def twenty_five_percent
|
22
|
+
[1, (maximum * 0.25)].max.floor
|
23
|
+
end
|
24
|
+
|
25
|
+
def max_minus_one
|
26
|
+
[1, (maximum - 1)].max.floor
|
27
|
+
end
|
28
|
+
|
29
|
+
def max_minus_two
|
30
|
+
[1, (maximum - 2)].max.floor
|
31
|
+
end
|
32
|
+
end end end
|
@@ -76,6 +76,13 @@ module LogStash::Config::Mixin
|
|
76
76
|
"about this, please visit the #logstash channel " +
|
77
77
|
"on freenode irc.", :name => name, :plugin => self)
|
78
78
|
end
|
79
|
+
if opts && opts[:obsolete]
|
80
|
+
extra = opts[:obsolete].is_a?(String) ? opts[:obsolete] : ""
|
81
|
+
extra.gsub!("%PLUGIN%", self.class.config_name)
|
82
|
+
raise LogStash::ConfigurationError,
|
83
|
+
I18n.t("logstash.agent.configuration.obsolete", :name => name,
|
84
|
+
:plugin => self.class.config_name, :extra => extra)
|
85
|
+
end
|
79
86
|
end
|
80
87
|
|
81
88
|
# Set defaults from 'config :foo, :default => somevalue'
|
@@ -103,6 +110,16 @@ module LogStash::Config::Mixin
|
|
103
110
|
I18n.t("logstash.agent.configuration.invalid_plugin_settings")
|
104
111
|
end
|
105
112
|
|
113
|
+
# We remove any config options marked as obsolete,
|
114
|
+
# no code should be associated to them and their values should not bleed
|
115
|
+
# to the plugin context.
|
116
|
+
#
|
117
|
+
# This need to be done after fetching the options from the parents classed
|
118
|
+
params.reject! do |name, value|
|
119
|
+
opts = self.class.get_config[name]
|
120
|
+
opts.include?(:obsolete)
|
121
|
+
end
|
122
|
+
|
106
123
|
# set instance variables like '@foo' for each config value given.
|
107
124
|
params.each do |key, value|
|
108
125
|
next if key[0, 1] == "@"
|
@@ -11,22 +11,11 @@ class LogStash::Filters::Base < LogStash::Plugin
|
|
11
11
|
|
12
12
|
config_name "filter"
|
13
13
|
|
14
|
-
|
15
|
-
# `exclude_fields`) must be met in order for the event to be handled by the filter.
|
14
|
+
config :type, :validate => :string, :default => "", :obsolete => "You can achieve this same behavior with the new conditionals, like: `if [type] == \"sometype\" { %PLUGIN% { ... } }`."
|
16
15
|
|
17
|
-
|
18
|
-
# act on messages with the same type. See any input plugin's `type`
|
19
|
-
# attribute for more.
|
20
|
-
# Optional.
|
21
|
-
config :type, :validate => :string, :default => "", :deprecated => "You can achieve this same behavior with the new conditionals, like: `if [type] == \"sometype\" { %PLUGIN% { ... } }`."
|
22
|
-
|
23
|
-
# Only handle events with all of these tags.
|
24
|
-
# Optional.
|
25
|
-
config :tags, :validate => :array, :default => [], :deprecated => "You can achieve similar behavior with the new conditionals, like: `if \"sometag\" in [tags] { %PLUGIN% { ... } }`"
|
16
|
+
config :tags, :validate => :array, :default => [], :obsolete => "You can achieve similar behavior with the new conditionals, like: `if \"sometag\" in [tags] { %PLUGIN% { ... } }`"
|
26
17
|
|
27
|
-
|
28
|
-
# Optional.
|
29
|
-
config :exclude_tags, :validate => :array, :default => [], :deprecated => "You can achieve similar behavior with the new conditionals, like: `if !(\"sometag\" in [tags]) { %PLUGIN% { ... } }`"
|
18
|
+
config :exclude_tags, :validate => :array, :default => [], :obsolete => "You can achieve similar behavior with the new conditionals, like: `if (\"sometag\" not in [tags]) { %PLUGIN% { ... } }`"
|
30
19
|
|
31
20
|
# If this filter is successful, add arbitrary tags to the event.
|
32
21
|
# Tags can be dynamic and include parts of the event using the `%{field}`
|
@@ -202,40 +191,12 @@ class LogStash::Filters::Base < LogStash::Plugin
|
|
202
191
|
|
203
192
|
protected
|
204
193
|
def filter?(event)
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
:type=> @type, :event => event)
|
209
|
-
return false
|
210
|
-
end
|
211
|
-
end
|
212
|
-
|
213
|
-
if !@tags.empty?
|
214
|
-
# this filter has only works on events with certain tags,
|
215
|
-
# and this event has no tags.
|
216
|
-
return false if !event["tags"]
|
217
|
-
|
218
|
-
# Is @tags a subset of the event's tags? If not, skip it.
|
219
|
-
if (event["tags"] & @tags).size != @tags.size
|
220
|
-
@logger.debug? and @logger.debug("filters/#{self.class.name}: Skipping event because tags don't match",
|
221
|
-
:tags => tags, :event => event)
|
222
|
-
return false
|
223
|
-
end
|
224
|
-
end
|
225
|
-
|
226
|
-
if !@exclude_tags.empty? && event["tags"]
|
227
|
-
if (diff_tags = (event["tags"] & @exclude_tags)).size != 0
|
228
|
-
@logger.debug("filters/#{self.class.name}: Skipping event because tags contains excluded tags:",
|
229
|
-
:diff_tags => diff_tags, :exclude_tags => @exclude_tags, :event => event)
|
230
|
-
return false
|
231
|
-
end
|
232
|
-
end
|
233
|
-
|
234
|
-
return true
|
235
|
-
end
|
194
|
+
# TODO: noop for now, remove this once we delete this call from all plugins
|
195
|
+
true
|
196
|
+
end # def filter?
|
236
197
|
|
237
198
|
public
|
238
|
-
def
|
199
|
+
def close
|
239
200
|
# Nothing to do by default.
|
240
201
|
end
|
241
202
|
end # class LogStash::Filters::Base
|
data/lib/logstash/inputs/base.rb
CHANGED
@@ -26,31 +26,16 @@ class LogStash::Inputs::Base < LogStash::Plugin
|
|
26
26
|
# when sent to another Logstash server.
|
27
27
|
config :type, :validate => :string
|
28
28
|
|
29
|
-
config :debug, :validate => :boolean, :default => false, :
|
29
|
+
config :debug, :validate => :boolean, :default => false, :obsolete => "This setting no longer has any effect. In past releases, it existed, but almost no plugin made use of it."
|
30
30
|
|
31
|
-
|
32
|
-
config :format, :validate => ["plain", "json", "json_event", "msgpack_event"], :deprecated => "You should use the newer 'codec' setting instead."
|
31
|
+
config :format, :validate => ["plain", "json", "json_event", "msgpack_event"], :obsolete => "You should use the newer 'codec' setting instead."
|
33
32
|
|
34
|
-
|
35
|
-
config :codec, :validate => :codec, :default => "plain"
|
33
|
+
config :charset, :obsolete => "Use the codec setting instead. For example: input { %PLUGIN% { codec => plain { charset => \"UTF-8\" } }"
|
36
34
|
|
37
|
-
|
38
|
-
# and `cp1252`
|
39
|
-
#
|
40
|
-
# This setting is useful if your log files are in `Latin-1` (aka `cp1252`)
|
41
|
-
# or in another character set other than `UTF-8`.
|
42
|
-
#
|
43
|
-
# This only affects `plain` format logs since json is `UTF-8` already.
|
44
|
-
config :charset, :deprecated => "Use the codec setting instead. For example: input { %PLUGIN% { codec => plain { charset => \"UTF-8\" } }"
|
35
|
+
config :message_format, :validate => :string, :obsolete => "Setting is no longer valid."
|
45
36
|
|
46
|
-
#
|
47
|
-
|
48
|
-
# `sprintf` format strings look like `%{fieldname}`
|
49
|
-
#
|
50
|
-
# If format is `json_event`, ALL fields except for `@type`
|
51
|
-
# are expected to be present. Not receiving all fields
|
52
|
-
# will cause unexpected results.
|
53
|
-
config :message_format, :validate => :string, :deprecated => true
|
37
|
+
# The codec used for input data. Input codecs are a convenient method for decoding your data before it enters the input, without needing a separate filter in your Logstash pipeline.
|
38
|
+
config :codec, :validate => :codec, :default => "plain"
|
54
39
|
|
55
40
|
# Add any number of arbitrary tags to your event.
|
56
41
|
#
|
@@ -67,27 +52,9 @@ class LogStash::Inputs::Base < LogStash::Plugin
|
|
67
52
|
def initialize(params={})
|
68
53
|
super
|
69
54
|
@threadable = false
|
55
|
+
@stop_called = Concurrent::AtomicBoolean.new(false)
|
70
56
|
config_init(params)
|
71
57
|
@tags ||= []
|
72
|
-
|
73
|
-
if @charset && @codec.class.get_config.include?("charset")
|
74
|
-
# charset is deprecated on inputs, but provide backwards compatibility
|
75
|
-
# by copying the charset setting into the codec.
|
76
|
-
|
77
|
-
@logger.info("Copying input's charset setting into codec", :input => self, :codec => @codec)
|
78
|
-
charset = @charset
|
79
|
-
@codec.instance_eval { @charset = charset }
|
80
|
-
end
|
81
|
-
|
82
|
-
# Backwards compat for the 'format' setting
|
83
|
-
case @format
|
84
|
-
when "plain"; # do nothing
|
85
|
-
when "json"
|
86
|
-
@codec = LogStash::Plugin.lookup("codec", "json").new
|
87
|
-
when "json_event"
|
88
|
-
@codec = LogStash::Plugin.lookup("codec", "oldlogstashjson").new
|
89
|
-
end
|
90
|
-
|
91
58
|
end # def initialize
|
92
59
|
|
93
60
|
public
|
@@ -100,6 +67,28 @@ class LogStash::Inputs::Base < LogStash::Plugin
|
|
100
67
|
@tags << newtag
|
101
68
|
end # def tag
|
102
69
|
|
70
|
+
public
|
71
|
+
# override stop if you need to do more than do_stop to
|
72
|
+
# enforce the input plugin to return from `run`.
|
73
|
+
# e.g. a tcp plugin might need to close the tcp socket
|
74
|
+
# so blocking read operation aborts
|
75
|
+
def stop
|
76
|
+
# override if necessary
|
77
|
+
end
|
78
|
+
|
79
|
+
public
|
80
|
+
def do_stop
|
81
|
+
@logger.debug("stopping", :plugin => self)
|
82
|
+
@stop_called.make_true
|
83
|
+
stop
|
84
|
+
end
|
85
|
+
|
86
|
+
# stop? should never be overriden
|
87
|
+
public
|
88
|
+
def stop?
|
89
|
+
@stop_called.value
|
90
|
+
end
|
91
|
+
|
103
92
|
protected
|
104
93
|
def to_event(raw, source)
|
105
94
|
raise LogStash::ThisMethodWasRemoved("LogStash::Inputs::Base#to_event - you should use codecs now instead of to_event. Not sure what this means? Get help on https://discuss.elastic.co/c/logstash")
|
data/lib/logstash/json.rb
CHANGED
@@ -32,15 +32,23 @@ module LogStash
|
|
32
32
|
### JRuby
|
33
33
|
|
34
34
|
def jruby_load(data, options = {})
|
35
|
-
|
35
|
+
# TODO [guyboertje] remove these comments in 5.0
|
36
|
+
# options[:symbolize_keys] ? JrJackson::Raw.parse_sym(data) : JrJackson::Raw.parse_raw(data)
|
37
|
+
|
38
|
+
JrJackson::Ruby.parse(data, options)
|
39
|
+
|
36
40
|
rescue JrJackson::ParseError => e
|
37
41
|
raise LogStash::Json::ParserError.new(e.message)
|
38
42
|
end
|
39
43
|
|
40
44
|
def jruby_dump(o)
|
45
|
+
# TODO [guyboertje] remove these comments in 5.0
|
41
46
|
# test for enumerable here to work around an omission in JrJackson::Json.dump to
|
42
47
|
# also look for Java::JavaUtil::ArrayList, see TODO submit issue
|
43
|
-
o.is_a?(Enumerable) ? JrJackson::Raw.generate(o) : JrJackson::Json.dump(o)
|
48
|
+
# o.is_a?(Enumerable) ? JrJackson::Raw.generate(o) : JrJackson::Json.dump(o)
|
49
|
+
|
50
|
+
JrJackson::Base.generate(o, {})
|
51
|
+
|
44
52
|
rescue => e
|
45
53
|
raise LogStash::Json::GeneratorError.new(e.message)
|
46
54
|
end
|
@@ -12,19 +12,11 @@ class LogStash::Outputs::Base < LogStash::Plugin
|
|
12
12
|
|
13
13
|
config_name "output"
|
14
14
|
|
15
|
-
|
16
|
-
# act on messages with the same type. See any input plugin's `type`
|
17
|
-
# attribute for more.
|
18
|
-
# Optional.
|
19
|
-
config :type, :validate => :string, :default => "", :deprecated => "You can achieve this same behavior with the new conditionals, like: `if [type] == \"sometype\" { %PLUGIN% { ... } }`."
|
15
|
+
config :type, :validate => :string, :default => "", :obsolete => "You can achieve this same behavior with the new conditionals, like: `if [type] == \"sometype\" { %PLUGIN% { ... } }`."
|
20
16
|
|
21
|
-
|
22
|
-
# Optional.
|
23
|
-
config :tags, :validate => :array, :default => [], :deprecated => "You can achieve similar behavior with the new conditionals, like: `if \"sometag\" in [tags] { %PLUGIN% { ... } }`"
|
17
|
+
config :tags, :validate => :array, :default => [], :obsolete => "You can achieve similar behavior with the new conditionals, like: `if \"sometag\" in [tags] { %PLUGIN% { ... } }`"
|
24
18
|
|
25
|
-
|
26
|
-
# Optional.
|
27
|
-
config :exclude_tags, :validate => :array, :default => [], :deprecated => "You can achieve similar behavior with the new conditionals, like: `if !(\"sometag\" in [tags]) { %PLUGIN% { ... } }`"
|
19
|
+
config :exclude_tags, :validate => :array, :default => [], :obsolete => "You can achieve similar behavior with the new conditionals, like: `if (\"sometag\" not in [tags]) { %PLUGIN% { ... } }`"
|
28
20
|
|
29
21
|
# The codec used for output data. Output codecs are a convenient method for encoding your data before it leaves the output, without needing a separate filter in your Logstash pipeline.
|
30
22
|
config :codec, :validate => :codec, :default => "plain"
|
@@ -94,31 +86,7 @@ class LogStash::Outputs::Base < LogStash::Plugin
|
|
94
86
|
|
95
87
|
private
|
96
88
|
def output?(event)
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
:type => @type, :event => event)
|
101
|
-
return false
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
|
-
if !@tags.empty?
|
106
|
-
return false if !event["tags"]
|
107
|
-
if (event["tags"] & @tags).size != @tags.size
|
108
|
-
@logger.debug? and @logger.debug("outputs/#{self.class.name}: Dropping event because tags don't match",
|
109
|
-
:tags => @tags, :event => event)
|
110
|
-
return false
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
if !@exclude_tags.empty? && event["tags"]
|
115
|
-
if (diff_tags = (event["tags"] & @exclude_tags)).size != 0
|
116
|
-
@logger.debug? and @logger.debug("outputs/#{self.class.name}: Dropping event because tags contains excluded tags",
|
117
|
-
:diff_tags => diff_tags, :exclude_tags => @exclude_tags, :event => event)
|
118
|
-
return false
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
return true
|
123
|
-
end
|
89
|
+
# TODO: noop for now, remove this once we delete this call from all plugins
|
90
|
+
true
|
91
|
+
end # def output?
|
124
92
|
end # class LogStash::Outputs::Base
|
data/lib/logstash/patches.rb
CHANGED
@@ -0,0 +1,54 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require "logstash/namespace"
|
3
|
+
require "concurrent/concern/logging"
|
4
|
+
require "concurrent/concern/deprecation"
|
5
|
+
require "concurrent/version"
|
6
|
+
require "cabin"
|
7
|
+
|
8
|
+
# Concurrent-ruby is throwing warning when the code is run under jdk7, and they
|
9
|
+
# will provide best effort support, logstash has to support JDK7 for a few months.
|
10
|
+
#
|
11
|
+
# By default all deprecation warnings of the concurrent ruby
|
12
|
+
# library use the `WARN` level which is show everytime we boot logstash,
|
13
|
+
# This monkeypatch change the log level of the deprecation warning to be `debug`
|
14
|
+
# instead. This monkey patch might be a bit over kill but there is no
|
15
|
+
# easy way to override the java version check.
|
16
|
+
#
|
17
|
+
# ref: https://github.com/ruby-concurrency/concurrent-ruby/blob/v0.9.1/lib/concurrent/configuration.rb#L284-L295
|
18
|
+
#
|
19
|
+
# This patch is only valid for 0.9.1
|
20
|
+
if Concurrent::VERSION == "0.9.1"
|
21
|
+
module Concurrent
|
22
|
+
module Concern
|
23
|
+
module Deprecation
|
24
|
+
include Concern::Logging
|
25
|
+
|
26
|
+
def deprecated(message, strip = 2)
|
27
|
+
caller_line = caller(strip).first if strip > 0
|
28
|
+
klass = if Module === self
|
29
|
+
self
|
30
|
+
else
|
31
|
+
self.class
|
32
|
+
end
|
33
|
+
message = if strip > 0
|
34
|
+
format("[DEPRECATED] %s\ncalled on: %s", message, caller_line)
|
35
|
+
else
|
36
|
+
format('[DEPRECATED] %s', message)
|
37
|
+
end
|
38
|
+
|
39
|
+
# lets use our logger
|
40
|
+
logger = Cabin::Channel.get(LogStash)
|
41
|
+
logger.debug(message, :class => klass.to_s)
|
42
|
+
end
|
43
|
+
|
44
|
+
extend self
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
else
|
49
|
+
# This is added a guard to check if we need to update this code or not.
|
50
|
+
# Keep in mind, the latest releases of concurrent-ruby brokes a few stuff.
|
51
|
+
#
|
52
|
+
# Even the latest master version changed how they handle deprecation.
|
53
|
+
raise "Logstash expects concurrent-ruby version 0.9.1 and version #{Concurrent::VERSION} is installed, please verify this patch: #{__FILE__}"
|
54
|
+
end
|