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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e8c8d2b4220c5092406a81cda2f4f0701062c7f2
4
- data.tar.gz: 1f8fb32dc101b4dd2c2e451c18340d5ed779fa85
3
+ metadata.gz: a5964c6a51327b4953e168e475062fe91d8d1abc
4
+ data.tar.gz: 9210f9fe34adddca81b46f7104ba7d52ed5658d3
5
5
  SHA512:
6
- metadata.gz: ed36752171106b82c479e530766930d0c744b59e7ae735ef2185fe05095a930bd2f066def5fb186da1a592dd928612c8ab59c9baecbf23a5470025d4b4dfcd1c
7
- data.tar.gz: d72839c3c82dfa05efa8fcf3db97f5030d7ff96c3f82ada876405240cf397ec967ba0bc8e6e1bcec1a9150c6c4b0e8df0a37325133ee41d944528a2a0a871dfa
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
- # filter {
15
- # rest {
16
- # url => "http://example.com"
17
- # method => "post"
18
- # json => true
19
- # sprintf => true
20
- # params => {
21
- # 'key1' => 'value1'
22
- # 'key2' => 'value2'
23
- # 'key3' => '%{somefield}'
24
- # }
25
- # header => {
26
- # 'key1' => 'value1'
27
- # 'key2' => 'value2'
28
- # 'key3' => '%{somefield}'
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
- h.each do |key, value|
84
- event[key] = value
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['response'] = response.strip
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.2'
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"
@@ -6,14 +6,15 @@ describe LogStash::Filters::Rest do
6
6
  let(:config) do <<-CONFIG
7
7
  filter {
8
8
  rest {
9
- url => "http://icanhazip.com"
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("message")
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.2
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-06-23 00:00:00.000000000 Z
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