logstash-filter-elasticsearch 3.4.0 → 3.5.0

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: 92a2e2d6660ea8cf72381f7e7bd6832525e580c083b1f0d7188cbea58e32f2ee
4
- data.tar.gz: 9cf2ac564ac0347e9f0642c0efaef8b4ac59f8725d9a9eef250805e8cde03656
3
+ metadata.gz: 57bc6bc825a1866b1ecf39eb35bcab5e062dfb73f7b1e7590feb4fe51358b2c9
4
+ data.tar.gz: 48df2bb55103e2fb6196ec8679f1b48ce70742f43dcd9ab3c5ff257637ccdda8
5
5
  SHA512:
6
- metadata.gz: 913c2c225cfa517bf983ca3ee9c85263f0008e305b27dae4619afb8ffaa535e36f2618449b5da2de498dae4bfeb7e3f8dd2d654b3e0499d60f2383e99e92865b
7
- data.tar.gz: b47a71caee22bf6b95908ec48ea9ce8a17b73c619fe48453a3ed4fe1470906bb149d4c852a1b8aba22e1b003ab0ad8ec33fcf558dfff56ea464cd9b69e4dc04e
6
+ metadata.gz: e93655c43a05df8d1f7cf261ff552a875cb765111903cf9bc4903e77cb423329f346f1b67d949b6cae24c85872b8ea45a7a08e7ce812d48ab93117d575236eef
7
+ data.tar.gz: b3dbca71043c7cbb6ef904e19e30b88dd6e974d92c0fdf77eae52d90c1d41151bdc9b0ef4c9cc93fa8c97937dc31e30c6570a62a8343d693a0b1d00bb2d4fa6a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 3.5.0
2
+ - Added connection check during register to avoid failures during processing
3
+ - Changed Elasticsearch Client transport to use Manticore
4
+ - Changed amount of logging details during connection failure
5
+
1
6
  ## 3.4.0
2
7
  - Adds `[@metadata][total_hits]` with total hits returned from the query ([#106](https://github.com/logstash-plugins/logstash-filter-elasticsearch/pull/106))
3
8
  - Improves error logging to fully inspect caught exceptions ([#105](https://github.com/logstash-plugins/logstash-filter-elasticsearch/pull/105))
@@ -71,6 +71,7 @@ class LogStash::Filters::Elasticsearch < LogStash::Filters::Base
71
71
  @query_dsl = file.read
72
72
  end
73
73
 
74
+ test_connection!
74
75
  end # def register
75
76
 
76
77
  def filter(event)
@@ -123,7 +124,13 @@ class LogStash::Filters::Elasticsearch < LogStash::Filters::Base
123
124
  end
124
125
 
125
126
  rescue => e
126
- @logger.warn("Failed to query elasticsearch for previous event", :index => @index, :query => query, :event => event, :error => e.inspect)
127
+ if @logger.trace?
128
+ @logger.warn("Failed to query elasticsearch for previous event", :index => @index, :query => query, :event => event.to_hash, :error => e.message, :backtrace => e.backtrace)
129
+ elsif @logger.debug?
130
+ @logger.warn("Failed to query elasticsearch for previous event", :index => @index, :error => e.message, :backtrace => e.backtrace)
131
+ else
132
+ @logger.warn("Failed to query elasticsearch for previous event", :index => @index, :error => e.message)
133
+ end
127
134
  @tag_on_failure.each{|tag| event.tag(tag)}
128
135
  else
129
136
  filter_matched(event) if matched
@@ -165,4 +172,8 @@ class LogStash::Filters::Elasticsearch < LogStash::Filters::Base
165
172
  memo[old_key_fragment]
166
173
  end
167
174
  end
175
+
176
+ def test_connection!
177
+ get_client.client.ping
178
+ end
168
179
  end #class LogStash::Filters::Elasticsearch
@@ -1,6 +1,7 @@
1
1
  # encoding: utf-8
2
2
  require "elasticsearch"
3
3
  require "base64"
4
+ require "elasticsearch/transport/transport/http/manticore"
4
5
 
5
6
 
6
7
  module LogStash
@@ -22,10 +23,11 @@ module LogStash
22
23
 
23
24
  hosts.map! {|h| { host: h, scheme: 'https' } } if ssl
24
25
  # set ca_file even if ssl isn't on, since the host can be an https url
25
- transport_options[:ssl] = { ca_file: options[:ca_file] } if options[:ca_file]
26
+ ssl_options = { ssl: true, ca_file: options[:ca_file] } if options[:ca_file]
27
+ ssl_options ||= {}
26
28
 
27
29
  @logger.info("New ElasticSearch filter client", :hosts => hosts)
28
- @client = ::Elasticsearch::Client.new(hosts: hosts, transport_options: transport_options)
30
+ @client = ::Elasticsearch::Client.new(hosts: hosts, transport_options: transport_options, transport_class: ::Elasticsearch::Transport::Transport::HTTP::Manticore, :ssl => ssl_options)
29
31
  end
30
32
 
31
33
  def search(params)
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-filter-elasticsearch'
4
- s.version = '3.4.0'
4
+ s.version = '3.5.0'
5
5
  s.licenses = ['Apache License (2.0)']
6
6
  s.summary = "Copies fields from previous log events in Elasticsearch to current events "
7
7
  s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
@@ -22,6 +22,7 @@ Gem::Specification.new do |s|
22
22
  # Gem dependencies
23
23
  s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
24
24
  s.add_runtime_dependency 'elasticsearch', ">= 5.0.3", " <6.0.0"
25
+ s.add_runtime_dependency 'manticore', "~> 0.6"
25
26
 
26
27
  s.add_development_dependency 'logstash-devutils'
27
28
  end
@@ -9,6 +9,9 @@ describe LogStash::Filters::Elasticsearch do
9
9
  context "registration" do
10
10
 
11
11
  let(:plugin) { LogStash::Plugin.lookup("filter", "elasticsearch").new({}) }
12
+ before do
13
+ allow(plugin).to receive(:test_connection!)
14
+ end
12
15
 
13
16
  it "should not raise an exception" do
14
17
  expect {plugin.register}.to_not raise_error
@@ -37,6 +40,7 @@ describe LogStash::Filters::Elasticsearch do
37
40
  before(:each) do
38
41
  allow(LogStash::Filters::ElasticsearchClient).to receive(:new).and_return(client)
39
42
  allow(client).to receive(:search).and_return(response)
43
+ allow(plugin).to receive(:test_connection!)
40
44
  plugin.register
41
45
  end
42
46
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-filter-elasticsearch
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.0
4
+ version: 3.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-14 00:00:00.000000000 Z
11
+ date: 2018-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -50,6 +50,20 @@ dependencies:
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
52
  version: 6.0.0
53
+ - !ruby/object:Gem::Dependency
54
+ requirement: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - "~>"
57
+ - !ruby/object:Gem::Version
58
+ version: '0.6'
59
+ name: manticore
60
+ prerelease: false
61
+ type: :runtime
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '0.6'
53
67
  - !ruby/object:Gem::Dependency
54
68
  requirement: !ruby/object:Gem::Requirement
55
69
  requirements: