logstash-input-elasticsearch 2.0.5 → 3.0.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 +4 -4
- data/CHANGELOG.md +2 -0
- data/Gemfile +3 -1
- data/LICENSE +1 -1
- data/README.md +12 -3
- data/lib/logstash/inputs/elasticsearch.rb +2 -2
- data/logstash-input-elasticsearch.gemspec +3 -3
- data/spec/inputs/elasticsearch_spec.rb +19 -19
- metadata +20 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 96c0e62c569c710059d82f01403e970a4f6fe1b7
|
4
|
+
data.tar.gz: ca1a79fa8076646ac0891f32dd29f72c26243830
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0c49e51cf7014a82fe8f668e3a63ada7f13a714b82860ed751ccfe632855c5d6a2320c5d8b4edbc6b45a6dcea360b62bf3eb22906da732d2aba1a0f0f9e262e
|
7
|
+
data.tar.gz: 38ea67752a6a34cb48f3f6e9ed1643438b9f279e699b21b94616cf455e80176d87a0f83fbb652c06d6a3ca98e9af81e52bcba6e7b8b3afc673584058cdcdf097
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
## 3.0.0
|
2
|
+
- Update the plugin to the version 2.0 of the plugin api, this change is required for Logstash 5.0 compatibility. See https://github.com/elastic/logstash/issues/5141
|
1
3
|
# 2.0.5
|
2
4
|
- Depend on logstash-core-plugin-api instead of logstash-core, removing the need to mass update plugins on major releases of logstash
|
3
5
|
# 2.0.4
|
data/Gemfile
CHANGED
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
# Logstash Plugin
|
2
2
|
|
3
3
|
[](https://badge.fury.io/rb/logstash-input-elasticsearch)
|
4
|
-
[](http://build-eu-00.elastic.co/view/LS%20Plugins/view/LS%20Inputs/job/logstash-plugin-input-elasticsearch-unit/)
|
4
|
+
[](https://travis-ci.org/logstash-plugins/logstash-input-elasticsearch)
|
6
5
|
|
7
6
|
This is a plugin for [Logstash](https://github.com/elastic/logstash).
|
8
7
|
|
@@ -57,7 +56,12 @@ gem "logstash-filter-awesome", :path => "/your/local/logstash-filter-awesome"
|
|
57
56
|
```
|
58
57
|
- Install plugin
|
59
58
|
```sh
|
59
|
+
# Logstash 2.3 and higher
|
60
|
+
bin/logstash-plugin install --no-verify
|
61
|
+
|
62
|
+
# Prior to Logstash 2.3
|
60
63
|
bin/plugin install --no-verify
|
64
|
+
|
61
65
|
```
|
62
66
|
- Run Logstash with your plugin
|
63
67
|
```sh
|
@@ -75,7 +79,12 @@ gem build logstash-filter-awesome.gemspec
|
|
75
79
|
```
|
76
80
|
- Install the plugin from the Logstash home
|
77
81
|
```sh
|
78
|
-
|
82
|
+
# Logstash 2.3 and higher
|
83
|
+
bin/logstash-plugin install --no-verify
|
84
|
+
|
85
|
+
# Prior to Logstash 2.3
|
86
|
+
bin/plugin install --no-verify
|
87
|
+
|
79
88
|
```
|
80
89
|
- Start Logstash and proceed to test the plugin
|
81
90
|
|
@@ -173,7 +173,7 @@ class LogStash::Inputs::Elasticsearch < LogStash::Inputs::Base
|
|
173
173
|
|
174
174
|
if @docinfo
|
175
175
|
# do not assume event[@docinfo_target] to be in-place updatable. first get it, update it, then at the end set it in the event.
|
176
|
-
docinfo_target = event
|
176
|
+
docinfo_target = event.get(@docinfo_target) || {}
|
177
177
|
|
178
178
|
unless docinfo_target.is_a?(Hash)
|
179
179
|
@logger.error("Elasticsearch Input: Incompatible Event, incompatible type for the docinfo_target=#{@docinfo_target} field in the `_source` document, expected a hash got:", :docinfo_target_type => docinfo_target.class, :event => event)
|
@@ -186,7 +186,7 @@ class LogStash::Inputs::Elasticsearch < LogStash::Inputs::Base
|
|
186
186
|
docinfo_target[field] = hit[field]
|
187
187
|
end
|
188
188
|
|
189
|
-
event
|
189
|
+
event.set(@docinfo_target, docinfo_target)
|
190
190
|
end
|
191
191
|
|
192
192
|
output_queue << event
|
@@ -1,10 +1,10 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = 'logstash-input-elasticsearch'
|
4
|
-
s.version = '
|
4
|
+
s.version = '3.0.0'
|
5
5
|
s.licenses = ['Apache License (2.0)']
|
6
6
|
s.summary = "Read from an Elasticsearch cluster, based on search query results"
|
7
|
-
s.description = "This gem is a
|
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"
|
8
8
|
s.authors = ["Elastic"]
|
9
9
|
s.email = 'info@elastic.co'
|
10
10
|
s.homepage = "http://www.elastic.co/guide/en/logstash/current/index.html"
|
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.metadata = { "logstash_plugin" => "true", "logstash_group" => "input" }
|
21
21
|
|
22
22
|
# Gem dependencies
|
23
|
-
s.add_runtime_dependency "logstash-core-plugin-api", "~>
|
23
|
+
s.add_runtime_dependency "logstash-core-plugin-api", "~> 2.0"
|
24
24
|
|
25
25
|
s.add_runtime_dependency 'elasticsearch', ['>= 1.0.6', '~> 1.0']
|
26
26
|
|
@@ -71,7 +71,7 @@ describe LogStash::Inputs::Elasticsearch do
|
|
71
71
|
end
|
72
72
|
|
73
73
|
insist { event }.is_a?(LogStash::Event)
|
74
|
-
insist { event
|
74
|
+
insist { event.get("message") } == [ "ohayo" ]
|
75
75
|
end
|
76
76
|
|
77
77
|
it "should retrieve json event from elasticseach with scan" do
|
@@ -128,7 +128,7 @@ describe LogStash::Inputs::Elasticsearch do
|
|
128
128
|
end
|
129
129
|
|
130
130
|
insist { event }.is_a?(LogStash::Event)
|
131
|
-
insist { event
|
131
|
+
insist { event.get("message") } == [ "ohayo" ]
|
132
132
|
end
|
133
133
|
|
134
134
|
context "with Elasticsearch document information" do
|
@@ -208,10 +208,10 @@ describe LogStash::Inputs::Elasticsearch do
|
|
208
208
|
queue.pop
|
209
209
|
end
|
210
210
|
|
211
|
-
expect(event[metadata_field][
|
212
|
-
expect(event[metadata_field][
|
213
|
-
expect(event[metadata_field][
|
214
|
-
expect(event[metadata_field][
|
211
|
+
expect(event.get("[#{metadata_field}][_index]")).to eq('logstash-2014.10.12')
|
212
|
+
expect(event.get("[#{metadata_field}][_type]")).to eq('logs')
|
213
|
+
expect(event.get("[#{metadata_field}][_id]")).to eq('C5b2xLQwTZa76jBmHIbwHQ')
|
214
|
+
expect(event.get("[#{metadata_field}][awesome]")).to eq("logstash")
|
215
215
|
end
|
216
216
|
|
217
217
|
it 'thows an exception if the `docinfo_target` exist but is not of type hash' do
|
@@ -243,9 +243,9 @@ describe LogStash::Inputs::Elasticsearch do
|
|
243
243
|
queue.pop
|
244
244
|
end
|
245
245
|
|
246
|
-
expect(event
|
247
|
-
expect(event
|
248
|
-
expect(event
|
246
|
+
expect(event.get("[@metadata][_index]")).to eq('logstash-2014.10.12')
|
247
|
+
expect(event.get("[@metadata][_type]")).to eq('logs')
|
248
|
+
expect(event.get("[@metadata][_id]")).to eq('C5b2xLQwTZa76jBmHIbwHQ')
|
249
249
|
end
|
250
250
|
|
251
251
|
it 'should move the document information to the specified field' do
|
@@ -264,9 +264,9 @@ describe LogStash::Inputs::Elasticsearch do
|
|
264
264
|
queue.pop
|
265
265
|
end
|
266
266
|
|
267
|
-
expect(event
|
268
|
-
expect(event
|
269
|
-
expect(event
|
267
|
+
expect(event.get("[meta][_index]")).to eq('logstash-2014.10.12')
|
268
|
+
expect(event.get("[meta][_type]")).to eq('logs')
|
269
|
+
expect(event.get("[meta][_id]")).to eq('C5b2xLQwTZa76jBmHIbwHQ')
|
270
270
|
end
|
271
271
|
|
272
272
|
it "should allow to specify which fields from the document info to save to the @metadata field" do
|
@@ -286,10 +286,10 @@ describe LogStash::Inputs::Elasticsearch do
|
|
286
286
|
queue.pop
|
287
287
|
end
|
288
288
|
|
289
|
-
expect(event
|
290
|
-
expect(event
|
291
|
-
expect(event
|
292
|
-
expect(event
|
289
|
+
expect(event.get("@metadata").keys).to eq(fields)
|
290
|
+
expect(event.get("[@metadata][_type]")).to eq(nil)
|
291
|
+
expect(event.get("[@metadata][_index]")).to eq('logstash-2014.10.12')
|
292
|
+
expect(event.get("[@metadata][_id]")).to eq(nil)
|
293
293
|
end
|
294
294
|
end
|
295
295
|
|
@@ -308,9 +308,9 @@ describe LogStash::Inputs::Elasticsearch do
|
|
308
308
|
queue.pop
|
309
309
|
end
|
310
310
|
|
311
|
-
expect(event
|
312
|
-
expect(event
|
313
|
-
expect(event
|
311
|
+
expect(event.get("[@metadata][_index]")).to eq(nil)
|
312
|
+
expect(event.get("[@metadata][_type]")).to eq(nil)
|
313
|
+
expect(event.get("[@metadata][_id]")).to eq(nil)
|
314
314
|
end
|
315
315
|
end
|
316
316
|
end
|
metadata
CHANGED
@@ -1,30 +1,31 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-input-elasticsearch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-05-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
name: logstash-core-plugin-api
|
14
15
|
requirement: !ruby/object:Gem::Requirement
|
15
16
|
requirements:
|
16
17
|
- - "~>"
|
17
18
|
- !ruby/object:Gem::Version
|
18
|
-
version: '
|
19
|
-
name: logstash-core-plugin-api
|
20
|
-
prerelease: false
|
19
|
+
version: '2.0'
|
21
20
|
type: :runtime
|
21
|
+
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
+
name: elasticsearch
|
28
29
|
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
31
|
- - ">="
|
@@ -33,9 +34,8 @@ dependencies:
|
|
33
34
|
- - "~>"
|
34
35
|
- !ruby/object:Gem::Version
|
35
36
|
version: '1.0'
|
36
|
-
name: elasticsearch
|
37
|
-
prerelease: false
|
38
37
|
type: :runtime
|
38
|
+
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
41
|
- - ">="
|
@@ -45,34 +45,36 @@ dependencies:
|
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '1.0'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
|
+
name: logstash-codec-json
|
48
49
|
requirement: !ruby/object:Gem::Requirement
|
49
50
|
requirements:
|
50
51
|
- - ">="
|
51
52
|
- !ruby/object:Gem::Version
|
52
53
|
version: '0'
|
53
|
-
name: logstash-codec-json
|
54
|
-
prerelease: false
|
55
54
|
type: :runtime
|
55
|
+
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - ">="
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '0'
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
|
+
name: logstash-devutils
|
62
63
|
requirement: !ruby/object:Gem::Requirement
|
63
64
|
requirements:
|
64
65
|
- - ">="
|
65
66
|
- !ruby/object:Gem::Version
|
66
67
|
version: '0'
|
67
|
-
name: logstash-devutils
|
68
|
-
prerelease: false
|
69
68
|
type: :development
|
69
|
+
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - ">="
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '0'
|
75
|
-
description: This gem is a
|
75
|
+
description: This gem is a Logstash plugin required to be installed on top of the
|
76
|
+
Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This
|
77
|
+
gem is not a stand-alone program
|
76
78
|
email: info@elastic.co
|
77
79
|
executables: []
|
78
80
|
extensions: []
|
@@ -93,7 +95,7 @@ licenses:
|
|
93
95
|
metadata:
|
94
96
|
logstash_plugin: 'true'
|
95
97
|
logstash_group: input
|
96
|
-
post_install_message:
|
98
|
+
post_install_message:
|
97
99
|
rdoc_options: []
|
98
100
|
require_paths:
|
99
101
|
- lib
|
@@ -108,9 +110,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
110
|
- !ruby/object:Gem::Version
|
109
111
|
version: '0'
|
110
112
|
requirements: []
|
111
|
-
rubyforge_project:
|
112
|
-
rubygems_version: 2.
|
113
|
-
signing_key:
|
113
|
+
rubyforge_project:
|
114
|
+
rubygems_version: 2.5.1
|
115
|
+
signing_key:
|
114
116
|
specification_version: 4
|
115
117
|
summary: Read from an Elasticsearch cluster, based on search query results
|
116
118
|
test_files:
|