logstash-filter-rest 0.1.2 → 0.1.3
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/README.md +2 -4
- data/lib/logstash/filters/rest.rb +27 -21
- data/logstash-filter-rest.gemspec +1 -1
- data/spec/filters/rest_spec.rb +3 -2
- 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: a5964c6a51327b4953e168e475062fe91d8d1abc
|
4
|
+
data.tar.gz: 9210f9fe34adddca81b46f7104ba7d52ed5658d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2147cf903f6e68c9f55861bce661bf163722518f2d652229a1a5cb6d75492726734f22d017115e0a8e2d8851002893e53f572ef1b7f769fc3e5ee25cba2184e
|
7
|
+
data.tar.gz: ea49d12ba7097e89161e4cafb05fad46447664d315cf5a172545bc02639ec6841c2cf3b9a6fa86f5e6cdcedb518b6addb06d3ba9f6ea09af25e1b1f0c28244b1
|
data/README.md
CHANGED
@@ -31,7 +31,7 @@ rest {
|
|
31
31
|
url => "http://example.com" # string (required, with field reference: "http://example.com?id=%{id}")
|
32
32
|
json => true # boolean (optional, default = false)
|
33
33
|
method => "post" # string (optional, default = "get")
|
34
|
-
sprintf => true # boolean (optional, default = false, set this to true if you want to use field references in url, header or params
|
34
|
+
sprintf => true # boolean (optional, default = false, set this to true if you want to use field references in url, header or params)
|
35
35
|
header => { # hash (optional)
|
36
36
|
"key1" => "value1"
|
37
37
|
"key2" => "value2"
|
@@ -42,11 +42,9 @@ rest {
|
|
42
42
|
"key2" => "value2"
|
43
43
|
"key3" => "%{somefield}" # Please set sprintf to true if you want to use field references
|
44
44
|
}
|
45
|
+
response_key => "my_key" # string (optional, default = "rest_response")
|
45
46
|
}
|
46
47
|
```
|
47
|
-
### 3. Accessing the result
|
48
|
-
If you are expecting a single output and 'json => false' you will get a logstash field called 'response' which contains the result.
|
49
|
-
If 'json => true' you will get a new logstash field for each key.
|
50
48
|
|
51
49
|
## Contributing
|
52
50
|
|
@@ -11,25 +11,25 @@ class LogStash::Filters::Rest < LogStash::Filters::Base
|
|
11
11
|
|
12
12
|
# Usage:
|
13
13
|
#
|
14
|
-
#
|
15
|
-
#
|
16
|
-
#
|
17
|
-
#
|
18
|
-
#
|
19
|
-
#
|
20
|
-
#
|
21
|
-
#
|
22
|
-
#
|
23
|
-
#
|
24
|
-
#
|
25
|
-
#
|
26
|
-
#
|
27
|
-
#
|
28
|
-
#
|
29
|
-
#
|
30
|
-
#
|
31
|
-
# }
|
14
|
+
# rest {
|
15
|
+
# url => "http://example.com" # string (required, with field reference: "http://example.com?id=%{id}")
|
16
|
+
# json => true # boolean (optional, default = false)
|
17
|
+
# method => "post" # string (optional, default = "get")
|
18
|
+
# sprintf => true # boolean (optional, default = false, set this to true if you want to use field references in url, header or params)
|
19
|
+
# header => { # hash (optional)
|
20
|
+
# "key1" => "value1"
|
21
|
+
# "key2" => "value2"
|
22
|
+
# "key3" => "%{somefield}" # Please set sprintf to true if you want to use field references
|
23
|
+
# }
|
24
|
+
# params => { # hash (optional, only available for method => "post")
|
25
|
+
# "key1" => "value1"
|
26
|
+
# "key2" => "value2"
|
27
|
+
# "key3" => "%{somefield}" # Please set sprintf to true if you want to use field references
|
28
|
+
# }
|
29
|
+
# response_key => "my_key" # string (optional, default = "rest_response")
|
30
|
+
# }
|
32
31
|
#
|
32
|
+
|
33
33
|
config_name "rest"
|
34
34
|
|
35
35
|
config :url, :validate => :string, :required => true
|
@@ -38,6 +38,7 @@ class LogStash::Filters::Rest < LogStash::Filters::Base
|
|
38
38
|
config :sprintf, :validate => :boolean, :default => false
|
39
39
|
config :header, :validate => :hash, :default => { }
|
40
40
|
config :params, :validate => :hash, :default => { }
|
41
|
+
config :response_key, :validate => :string, :default => "rest_response"
|
41
42
|
|
42
43
|
public
|
43
44
|
def register
|
@@ -80,14 +81,19 @@ class LogStash::Filters::Rest < LogStash::Filters::Base
|
|
80
81
|
if json == true
|
81
82
|
begin
|
82
83
|
h = JSON.parse(response)
|
83
|
-
|
84
|
-
|
84
|
+
if response_key == ""
|
85
|
+
h.each do |key, value|
|
86
|
+
event[key] = value
|
87
|
+
end
|
88
|
+
else
|
89
|
+
event[response_key] = { }
|
90
|
+
event[response_key] = h
|
85
91
|
end
|
86
92
|
rescue
|
87
93
|
event['jsonerror'] = "unable to parse json"
|
88
94
|
end
|
89
95
|
else
|
90
|
-
event[
|
96
|
+
event[@response_key] = response.strip
|
91
97
|
end
|
92
98
|
rescue
|
93
99
|
@logger.error("Error in Rest Filter. Parameters:", :url => url, :method => method, :json => json, :header => header, :params => params)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'logstash-filter-rest'
|
3
|
-
s.version = '0.1.
|
3
|
+
s.version = '0.1.3'
|
4
4
|
s.licenses = ['Apache License (2.0)']
|
5
5
|
s.summary = "This filter requests data from a RESTful Web Service."
|
6
6
|
s.description = "This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program"
|
data/spec/filters/rest_spec.rb
CHANGED
@@ -6,14 +6,15 @@ describe LogStash::Filters::Rest do
|
|
6
6
|
let(:config) do <<-CONFIG
|
7
7
|
filter {
|
8
8
|
rest {
|
9
|
-
url => "http://
|
9
|
+
url => "http://jsonplaceholder.typicode.com/users/1"
|
10
|
+
json => true
|
10
11
|
}
|
11
12
|
}
|
12
13
|
CONFIG
|
13
14
|
end
|
14
15
|
|
15
16
|
sample("message" => "some text") do
|
16
|
-
expect(subject).to include("
|
17
|
+
expect(subject).to include("rest_response")
|
17
18
|
end
|
18
19
|
end
|
19
20
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-filter-rest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lucas Henning
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|