logstash-filter-elasticsearch 3.4.0 → 3.5.0

Sign up to get free protection for your applications and to get access to all the features.
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: