logstash-filter-elasticsearch 3.6.0 → 3.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/logstash-filter-elasticsearch.gemspec +2 -2
- data/spec/es_helper.rb +43 -0
- data/spec/filters/integration/elasticsearch_spec.rb +20 -3
- metadata +4 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 54415da2d9bc4aa6d1d90ea0b65937aa4782c9a9614cafd2ac583d94c0780913
|
4
|
+
data.tar.gz: 44eea0bc6efd2a0a2a5415320a872e03cd3883e122e8d7627c3873241d47720c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f148fcacc216cbbfca630e858ec93d85329487738dda440200ac2ea4f85253f2f4b6dc4a55cb859781be372a7ef15c727b5ded25015de1988302cd04e64de98e
|
7
|
+
data.tar.gz: '003910ce329cf1945fb3f92c2aef9f096588eb33c85e8716dbba0b65dd770e168e3960b1751553c2d251bc43b2a36dbc3eef339720acc9d40a08e1d1d36db402'
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = 'logstash-filter-elasticsearch'
|
4
|
-
s.version = '3.6.
|
4
|
+
s.version = '3.6.1'
|
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"
|
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
|
22
22
|
# Gem dependencies
|
23
23
|
s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
|
24
|
-
s.add_runtime_dependency 'elasticsearch', ">= 5.0.3"
|
24
|
+
s.add_runtime_dependency 'elasticsearch', ">= 5.0.3"
|
25
25
|
s.add_runtime_dependency 'manticore', "~> 0.6"
|
26
26
|
|
27
27
|
s.add_development_dependency 'logstash-devutils'
|
data/spec/es_helper.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
module ESHelper
|
2
|
+
def self.get_host_port
|
3
|
+
if ENV["INTEGRATION"] == "true"
|
4
|
+
"elasticsearch:9200"
|
5
|
+
else
|
6
|
+
"localhost:9200"
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.get_client
|
11
|
+
Elasticsearch::Client.new(:hosts => [get_host_port])
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.doc_type
|
15
|
+
if ESHelper.es_version_satisfies?(">=8")
|
16
|
+
nil
|
17
|
+
elsif ESHelper.es_version_satisfies?(">=7")
|
18
|
+
"_doc"
|
19
|
+
else
|
20
|
+
"doc"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.index_doc(es, params)
|
25
|
+
type = doc_type
|
26
|
+
params[:type] = doc_type unless type.nil?
|
27
|
+
es.index(params)
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.es_version
|
31
|
+
ENV['ES_VERSION'] || ENV['ELASTIC_STACK_VERSION']
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.es_version_satisfies?(*requirement)
|
35
|
+
es_version = RSpec.configuration.filter[:es_version] || ENV['ES_VERSION'] || ENV['ELASTIC_STACK_VERSION']
|
36
|
+
if es_version.nil?
|
37
|
+
puts "Info: ES_VERSION, ELASTIC_STACK_VERSION or 'es_version' tag wasn't set. Returning false to all `es_version_satisfies?` call."
|
38
|
+
return false
|
39
|
+
end
|
40
|
+
es_release_version = Gem::Version.new(es_version).release
|
41
|
+
Gem::Requirement.new(requirement).satisfied_by?(es_release_version)
|
42
|
+
end
|
43
|
+
end
|
@@ -2,13 +2,17 @@
|
|
2
2
|
require "logstash/devutils/rspec/spec_helper"
|
3
3
|
require "logstash/plugin"
|
4
4
|
require "logstash/filters/elasticsearch"
|
5
|
+
require_relative "../../../spec/es_helper"
|
5
6
|
|
6
7
|
describe LogStash::Filters::Elasticsearch, :integration => true do
|
7
8
|
|
9
|
+
|
8
10
|
let(:config) do
|
9
11
|
{
|
10
|
-
"
|
12
|
+
"index" => 'logs',
|
13
|
+
"hosts" => [ESHelper.get_host_port],
|
11
14
|
"query" => "response: 404",
|
15
|
+
"sort" => "response",
|
12
16
|
"fields" => [ ["response", "code"] ],
|
13
17
|
}
|
14
18
|
end
|
@@ -16,21 +20,34 @@ describe LogStash::Filters::Elasticsearch, :integration => true do
|
|
16
20
|
let(:event) { LogStash::Event.new({}) }
|
17
21
|
|
18
22
|
before(:each) do
|
23
|
+
@es = ESHelper.get_client
|
24
|
+
# Delete all templates first.
|
25
|
+
# Clean ES of data before we start.
|
26
|
+
@es.indices.delete_template(:name => "*")
|
27
|
+
# This can fail if there are no indexes, ignore failure.
|
28
|
+
@es.indices.delete(:index => "*") rescue nil
|
29
|
+
10.times do
|
30
|
+
ESHelper.index_doc(@es, :index => 'logs', :body => { :response => 404, :this => 'that'})
|
31
|
+
end
|
32
|
+
@es.indices.refresh
|
33
|
+
|
19
34
|
plugin.register
|
20
35
|
end
|
21
36
|
|
22
37
|
it "should enhance the current event with new data" do
|
23
38
|
plugin.filter(event)
|
24
|
-
expect(event.get(
|
39
|
+
expect(event.get('code')).to eq(404)
|
25
40
|
end
|
26
41
|
|
27
42
|
context "when retrieving a list of elements" do
|
28
43
|
|
29
44
|
let(:config) do
|
30
45
|
{
|
31
|
-
"
|
46
|
+
"index" => 'logs',
|
47
|
+
"hosts" => [ESHelper.get_host_port],
|
32
48
|
"query" => "response: 404",
|
33
49
|
"fields" => [ ["response", "code"] ],
|
50
|
+
"sort" => "response",
|
34
51
|
"result_size" => 10
|
35
52
|
}
|
36
53
|
end
|
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.6.
|
4
|
+
version: 3.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-11-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -36,9 +36,6 @@ dependencies:
|
|
36
36
|
- - ">="
|
37
37
|
- !ruby/object:Gem::Version
|
38
38
|
version: 5.0.3
|
39
|
-
- - "<"
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: 6.0.0
|
42
39
|
name: elasticsearch
|
43
40
|
prerelease: false
|
44
41
|
type: :runtime
|
@@ -47,9 +44,6 @@ dependencies:
|
|
47
44
|
- - ">="
|
48
45
|
- !ruby/object:Gem::Version
|
49
46
|
version: 5.0.3
|
50
|
-
- - "<"
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: 6.0.0
|
53
47
|
- !ruby/object:Gem::Dependency
|
54
48
|
requirement: !ruby/object:Gem::Requirement
|
55
49
|
requirements:
|
@@ -96,6 +90,7 @@ files:
|
|
96
90
|
- lib/logstash/filters/elasticsearch.rb
|
97
91
|
- lib/logstash/filters/elasticsearch/client.rb
|
98
92
|
- logstash-filter-elasticsearch.gemspec
|
93
|
+
- spec/es_helper.rb
|
99
94
|
- spec/filters/elasticsearch_spec.rb
|
100
95
|
- spec/filters/fixtures/elasticsearch_7.x_hits_total_as_object.json
|
101
96
|
- spec/filters/fixtures/query_template.json
|
@@ -131,6 +126,7 @@ signing_key:
|
|
131
126
|
specification_version: 4
|
132
127
|
summary: Copies fields from previous log events in Elasticsearch to current events
|
133
128
|
test_files:
|
129
|
+
- spec/es_helper.rb
|
134
130
|
- spec/filters/elasticsearch_spec.rb
|
135
131
|
- spec/filters/fixtures/elasticsearch_7.x_hits_total_as_object.json
|
136
132
|
- spec/filters/fixtures/query_template.json
|