logstash-output-elasticsearch 2.1.4-java → 2.1.5-java
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/README.md +2 -0
- data/lib/logstash/outputs/elasticsearch/common.rb +17 -0
- data/lib/logstash/outputs/elasticsearch.rb +3 -1
- data/logstash-output-elasticsearch.gemspec +1 -1
- data/spec/integration/outputs/templates_spec.rb +2 -2
- data/spec/unit/outputs/elasticsearch_spec.rb +22 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e1c06d07d392d4fba071aa01553091dd85461b3b
|
4
|
+
data.tar.gz: 368990ab9b1464f955418125388028940e8576aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 221ea508978c3bef5e9f03794b4af02d7e96234b60b7b2b1cf3f8b18a263b90e8bb1ef8d4a372bd1f6d376ccefe65d54fca7272b573a5762011e116057051506
|
7
|
+
data.tar.gz: daa946bd260816118bb2e88aa3173220f0999352417bc00af7974fc8b21365f1e1218096fb2e6430c987e04b0a48175b93139bb908c9cac52d672e5f2b68df55
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -5,6 +5,8 @@ ATTN: This plugin is undergoing a [major refactor](https://github.com/logstash-p
|
|
5
5
|
[![Build
|
6
6
|
Status](http://build-eu-00.elastic.co/view/LS%20Plugins/view/LS%20Outputs/job/logstash-plugin-output-elasticsearch-unit/badge/icon)](http://build-eu-00.elastic.co/view/LS%20Plugins/view/LS%20Outputs/job/logstash-plugin-output-elasticsearch-unit/)
|
7
7
|
|
8
|
+
[![Travis Build Status](https://travis-ci.org/logstash-plugins/logstash-output-elasticsearch.svg)](https://travis-ci.org/logstash-plugins/logstash-output-elasticsearch)
|
9
|
+
|
8
10
|
This is a plugin for [Logstash](https://github.com/elastic/logstash).
|
9
11
|
|
10
12
|
It is fully free and fully open source. The license is Apache 2.0, meaning you are pretty much free to use it however you want in whatever way.
|
@@ -14,6 +14,7 @@ module LogStash; module Outputs; class ElasticSearch;
|
|
14
14
|
build_client
|
15
15
|
install_template
|
16
16
|
setup_buffer_and_handler
|
17
|
+
check_action_validity
|
17
18
|
|
18
19
|
@logger.info("New Elasticsearch output", :class => self.class.name, :hosts => @hosts)
|
19
20
|
end
|
@@ -56,6 +57,22 @@ module LogStash; module Outputs; class ElasticSearch;
|
|
56
57
|
end
|
57
58
|
end
|
58
59
|
|
60
|
+
def check_action_validity
|
61
|
+
raise LogStash::ConfigurationError, "No action specified!" unless @action
|
62
|
+
|
63
|
+
# If we're using string interpolation, we're good!
|
64
|
+
return if @action =~ /%{.+}/
|
65
|
+
return if valid_actions.include?(@action)
|
66
|
+
|
67
|
+
raise LogStash::ConfigurationError, "Action '#{@action}' is invalid! Pick one of #{valid_actions} or use a sprintf style statement"
|
68
|
+
end
|
69
|
+
|
70
|
+
# To be overidden by the -java version
|
71
|
+
VALID_HTTP_ACTIONS=["index", "delete", "create", "update"]
|
72
|
+
def valid_actions
|
73
|
+
VALID_HTTP_ACTIONS
|
74
|
+
end
|
75
|
+
|
59
76
|
def retrying_submit(actions)
|
60
77
|
retries_left = @max_retries+1 # +1 for the first attempt
|
61
78
|
|
@@ -69,9 +69,11 @@ class LogStash::Outputs::ElasticSearch < LogStash::Outputs::Base
|
|
69
69
|
# - create: indexes a document, fails if a document by that id already exists in the index.
|
70
70
|
# - update: updates a document by id. Update has a special case where you can upsert -- update a
|
71
71
|
# document if not already present. See the `upsert` option
|
72
|
+
# - A sprintf style string to change the action based on the content of the event. The value `%{[foo]}`
|
73
|
+
# would use the foo field for the action
|
72
74
|
#
|
73
75
|
# For more details on actions, check out the http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html[Elasticsearch bulk API documentation]
|
74
|
-
config :action, :validate =>
|
76
|
+
config :action, :validate => :string, :default => "index"
|
75
77
|
|
76
78
|
# Username to authenticate to a secure Elasticsearch cluster
|
77
79
|
config :user, :validate => :string
|
@@ -78,8 +78,8 @@ describe "index template expected behavior", :integration => true do
|
|
78
78
|
insist { results["hits"]["hits"][0]["_source"]["geoip"]["location"] } == [ 0.0, 0.0 ]
|
79
79
|
end
|
80
80
|
|
81
|
-
it "
|
82
|
-
results = @es.search(:body => { "aggregations" => { "my_agg" => { "terms" => { "field" => "country" } } } })["aggregations"]["my_agg"]
|
81
|
+
it "aggregate .raw results correctly " do
|
82
|
+
results = @es.search(:body => { "aggregations" => { "my_agg" => { "terms" => { "field" => "country.raw" } } } })["aggregations"]["my_agg"]
|
83
83
|
terms = results["buckets"].collect { |b| b["key"] }
|
84
84
|
|
85
85
|
insist { terms }.include?("us")
|
@@ -131,4 +131,26 @@ describe "outputs/elasticsearch" do
|
|
131
131
|
sleep(options["timeout"] + 0.5)
|
132
132
|
end
|
133
133
|
end
|
134
|
+
|
135
|
+
describe "the action option" do
|
136
|
+
subject(:eso) {LogStash::Outputs::ElasticSearch.new(options)}
|
137
|
+
context "with a sprintf action" do
|
138
|
+
let(:options) { {"action" => "%{myactionfield}"} }
|
139
|
+
|
140
|
+
let(:event) { LogStash::Event.new("myactionfield" => "update", "message" => "blah") }
|
141
|
+
|
142
|
+
it "should interpolate the requested action value when creating an event_action_tuple" do
|
143
|
+
expect(eso.event_action_tuple(event).first).to eql("update")
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
context "with an invalid action" do
|
148
|
+
let(:options) { {"action" => "SOME Garbaaage"} }
|
149
|
+
|
150
|
+
it "should raise a configuration error" do
|
151
|
+
expect { subject.register }.to raise_error(LogStash::ConfigurationError)
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
134
156
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-output-elasticsearch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.5
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|