logstash-core 7.5.0-java → 7.5.1-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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cab190a6029673a04072d82712f522313d00bc9a399291cfaa7daff6463e3b93
4
- data.tar.gz: 960dd2c650d83782c30e0e9ced88940245c0fdc574dd32c5c3f4882d4bd90c86
3
+ metadata.gz: 756c0e499f413c9abe6d5abb1f0525aac99667ee6a04ae1d0fd56d7c60e9a31a
4
+ data.tar.gz: f132194d43addcbd27e7bd9a7ac851441cd28070af0798e0a6fad9417a3baf25
5
5
  SHA512:
6
- metadata.gz: fc0db329ab6c740bc080c6ee8e7656e053cdd2fc95d633438a3e040fba9405be73c6b62d1753a75341cacaf6e88645f3b7936e098822d74254a84b43733466df
7
- data.tar.gz: 955e5d764bfc05afbc8e5834f56d9ef1b885278e4983985ec80bd8194ec47ad203d90eaf209e8c7109af34ba496213cb12952e57c396c5bc67e0587c2accf9a0
6
+ metadata.gz: 6f337f1b1f0eb5e3d663afeae860db418fec5d261e59d8a6ae3b6baf9865d79e0d3715918c58cf923ac2d9895fbe1e4b1c477a3f522994cd7fa3af994ae3ccda
7
+ data.tar.gz: 93caa27c18905b0a5073b74d732276ea63c6421c579c973a1f350e415bfe1de3d7901080ba0dd76e60402412c53fb1aa05e8ccea88b7f049bd6798f4952c878c
@@ -1,7 +1,3 @@
1
- # Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
2
- # or more contributor license agreements. Licensed under the Elastic License;
3
- # you may not use this file except in compliance with the Elastic License.
4
- #
5
1
  module LogStash; module Config;
6
2
  class PipelinesInfo
7
3
  def self.format_pipelines_info(agent, metric_store, extended_performance_collection)
@@ -131,11 +131,12 @@ class LogStash::Inputs::Base < LogStash::Plugin
131
131
  require "logstash/codecs/line"
132
132
  require "logstash/codecs/json"
133
133
  require "logstash/codecs/json_lines"
134
- case @codec
135
- when LogStash::Codecs::Plain
134
+
135
+ case @codec.class.name
136
+ when "LogStash::Codecs::Plain"
136
137
  @logger.info("Automatically switching from #{@codec.class.config_name} to line codec", :plugin => self.class.config_name)
137
138
  @codec = LogStash::Codecs::Line.new("charset" => @codec.charset)
138
- when LogStash::Codecs::JSON
139
+ when "LogStash::Codecs::JSON"
139
140
  @logger.info("Automatically switching from #{@codec.class.config_name} to json_lines codec", :plugin => self.class.config_name)
140
141
  @codec = LogStash::Codecs::JSONLines.new("charset" => @codec.charset)
141
142
  end
@@ -8,10 +8,11 @@ require "logstash/instrument/collector"
8
8
  require "logstash/compiler"
9
9
  require "logstash/config/lir_serializer"
10
10
 
11
- java_import org.apache.logging.log4j.ThreadContext
12
-
13
11
  module LogStash; class JavaPipeline < JavaBasePipeline
14
12
  include LogStash::Util::Loggable
13
+
14
+ java_import org.apache.logging.log4j.ThreadContext
15
+
15
16
  attr_reader \
16
17
  :worker_threads,
17
18
  :events_consumed,
@@ -12,11 +12,11 @@ require "logstash/instrument/collector"
12
12
  require "logstash/filter_delegator"
13
13
  require "logstash/compiler"
14
14
 
15
- java_import org.apache.logging.log4j.ThreadContext
16
-
17
15
  module LogStash; class BasePipeline < AbstractPipeline
18
16
  include LogStash::Util::Loggable
19
17
 
18
+ java_import org.apache.logging.log4j.ThreadContext
19
+
20
20
  attr_reader :inputs, :filters, :outputs
21
21
 
22
22
  def initialize(pipeline_config, namespaced_metric = nil, agent = nil)
@@ -57,7 +57,7 @@ module LogStash module Util class CloudSettingId
57
57
 
58
58
  @elasticsearch_host, @kibana_host, *@other_identifiers = segments
59
59
  @elasticsearch_host, @elasticsearch_port = @elasticsearch_host.split(":")
60
- @kibana_host, @kibana_port = @kibana_host.split(":")
60
+ @kibana_host, @kibana_port = @kibana_host.split(":") if @kibana_host
61
61
  @elasticsearch_port ||= cloud_port
62
62
  @kibana_port ||= cloud_port
63
63
  @other_identifiers ||= []
@@ -72,7 +72,9 @@ module LogStash module Util class CloudSettingId
72
72
  if @kibana_host == "undefined"
73
73
  raise ArgumentError.new("Cloud Id, after decoding, the kibana segment is 'undefined', literally. You may need to enable Kibana in the Cloud UI.")
74
74
  end
75
+
75
76
  @kibana_scheme = "https"
77
+ @kibana_host ||= String.new # non-sense really to have '.my-host:443' but we're mirroring others
76
78
  @kibana_host.concat(cloud_host)
77
79
  @kibana_host.concat(":#{@kibana_port}")
78
80
  end
@@ -280,6 +280,41 @@ describe LogStash::Filters::NOOP do
280
280
  end
281
281
  end
282
282
 
283
+ describe "remove_field within @metadata" do
284
+ config <<-CONFIG
285
+ filter {
286
+ noop {
287
+ remove_field => ["[@metadata][f1]", "[@metadata][f2]", "[@metadata][f4][f5]"]
288
+ }
289
+ }
290
+ CONFIG
291
+
292
+ sample_one("type" => "noop", "@metadata" => {"f1" => "one", "f2" => { "f3" => "three"}, "f4" => { "f5" => "five", "f6" => "six"}, "f7" => "seven"}) do
293
+ expect(subject.include?("[@metadata][f1]")).to be_falsey
294
+ expect(subject.include?("[@metadata][f2]")).to be_falsey
295
+ expect(subject.include?("[@metadata][f4]")).to be_truthy
296
+ expect(subject.include?("[@metadata][f4][f5]")).to be_falsey
297
+ expect(subject.include?("[@metadata][f4][f6]")).to be_truthy
298
+ expect(subject.include?("[@metadata][f7]")).to be_truthy
299
+ end
300
+ end
301
+
302
+ describe "remove_field on @metadata" do
303
+ config <<-CONFIG
304
+ filter {
305
+ noop {
306
+ remove_field => ["[@metadata]"]
307
+ }
308
+ }
309
+ CONFIG
310
+
311
+ sample_one("type" => "noop", "@metadata" => {"f1" => "one", "f2" => { "f3" => "three"}}) do
312
+ expect(subject.include?("[@metadata]")).to be_truthy
313
+ expect(subject.include?("[@metadata][f1]")).to be_falsey
314
+ expect(subject.include?("[@metadata][f2]")).to be_falsey
315
+ end
316
+ end
317
+
283
318
  describe "remove_field on array" do
284
319
  config <<-CONFIG
285
320
  filter {
@@ -113,4 +113,32 @@ describe "LogStash::Inputs::Base#fix_streaming_codecs" do
113
113
  tcp.instance_eval { fix_streaming_codecs }
114
114
  expect(tcp.codec.charset).to eq("CP1252")
115
115
  end
116
+
117
+ it "should switch plain codec to line" do
118
+ require "logstash/inputs/tcp"
119
+ require "logstash/codecs/plain"
120
+ require "logstash/codecs/line"
121
+
122
+ # it is important to use "codec" => "plain" here and not the LogStash::Codecs::Plain instance so that
123
+ # the config parsing wrap the codec into the delagator which was causing the codec identification bug
124
+ # per https://github.com/elastic/logstash/issues/11140
125
+ tcp = LogStash::Inputs::Tcp.new("codec" => "plain", "port" => 0)
126
+ tcp.register
127
+
128
+ expect(tcp.codec.class.name).to eq("LogStash::Codecs::Line")
129
+ end
130
+
131
+ it "should switch json codec to json_lines" do
132
+ require "logstash/inputs/tcp"
133
+ require "logstash/codecs/plain"
134
+ require "logstash/codecs/line"
135
+
136
+ # it is important to use "codec" => "json" here and not the LogStash::Codecs::Plain instance so that
137
+ # the config parsing wrap the codec into the delagator which was causing the codec identification bug
138
+ # per https://github.com/elastic/logstash/issues/11140
139
+ tcp = LogStash::Inputs::Tcp.new("codec" => "json", "port" => 0)
140
+ tcp.register
141
+
142
+ expect(tcp.codec.class.name).to eq("LogStash::Codecs::JSONLines")
143
+ end
116
144
  end
@@ -143,4 +143,60 @@ describe LogStash::Util::CloudSettingId do
143
143
  expect(subject.other_identifiers).to eq(["anotherid", "andanother"])
144
144
  end
145
145
  end
146
+
147
+ describe "when given acceptable input (with empty kibana uuid), the accessors:" do
148
+ let(:input) { "a-test:ZWNlLmhvbWUubGFuJHRlc3Qk" } # ece.home.lan$test$
149
+
150
+ it '#original has a value' do
151
+ expect(subject.original).to eq(input)
152
+ end
153
+ it '#decoded has a value' do
154
+ expect(subject.decoded).to eq("ece.home.lan$test$")
155
+ end
156
+ it '#label has a value' do
157
+ expect(subject.label).to eq("a-test")
158
+ end
159
+ it '#elasticsearch_host has a value' do
160
+ expect(subject.elasticsearch_host).to eq("test.ece.home.lan:443")
161
+ end
162
+ it '#elasticsearch_scheme has a value' do
163
+ expect(subject.elasticsearch_scheme).to eq("https")
164
+ end
165
+ it '#kibana_host has a value' do
166
+ # NOTE: kibana part is not relevant -> this is how python/beats(go) code behaves
167
+ expect(subject.kibana_host).to eq(".ece.home.lan:443")
168
+ end
169
+ it '#kibana_scheme has a value' do
170
+ expect(subject.kibana_scheme).to eq("https")
171
+ end
172
+ it '#to_s has a value of #decoded' do
173
+ expect(subject.to_s).to eq(subject.decoded)
174
+ end
175
+ end
176
+
177
+ describe "a lengthy real-world input, the accessors:" do
178
+ let(:input) do
179
+ "ZWFzdHVzMi5henVyZS5lbGFzdGljLWNsb3VkLmNvbTo5MjQzJDQwYjM0MzExNmNmYTRlYmNiNzZjMTFlZTIzMjlmOTJkJDQzZDA5MjUyNTAyYzQxODlhMzc2ZmQwY2YyY2QwODQ4"
180
+ # eastus2.azure.elastic-cloud.com:9243$40b343116cfa4ebcb76c11ee2329f92d$43d09252502c4189a376fd0cf2cd0848
181
+ end
182
+
183
+ it '#original has a value' do
184
+ expect(subject.original).to eq(input)
185
+ end
186
+ it '#decoded has a value' do
187
+ expect(subject.decoded).to eq("eastus2.azure.elastic-cloud.com:9243$40b343116cfa4ebcb76c11ee2329f92d$43d09252502c4189a376fd0cf2cd0848")
188
+ end
189
+ it '#label has a value' do
190
+ expect(subject.label).to eq("")
191
+ end
192
+ it '#elasticsearch_host has a value' do
193
+ expect(subject.elasticsearch_host).to eq("40b343116cfa4ebcb76c11ee2329f92d.eastus2.azure.elastic-cloud.com:9243")
194
+ end
195
+ it '#kibana_host has a value' do
196
+ expect(subject.kibana_host).to eq("43d09252502c4189a376fd0cf2cd0848.eastus2.azure.elastic-cloud.com:9243")
197
+ end
198
+ it '#to_s has a value of #decoded' do
199
+ expect(subject.to_s).to eq(subject.decoded)
200
+ end
201
+ end
146
202
  end
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  # alpha and beta qualifiers are now added via VERSION_QUALIFIER environment var
3
- logstash: 7.5.0
4
- logstash-core: 7.5.0
3
+ logstash: 7.5.1
4
+ logstash-core: 7.5.1
5
5
  logstash-core-plugin-api: 2.1.16
6
6
 
7
7
  # jruby must reference a *released* version of jruby which can be downloaded from the official download url
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.5.0
4
+ version: 7.5.1
5
5
  platform: java
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-26 00:00:00.000000000 Z
11
+ date: 2019-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement