logstash-filter-rest 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
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