logstash-output-sumologic 1.0.1 → 1.0.2

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: c38585a7a41b17574d0139b49b68f96dd86c6caf
4
- data.tar.gz: 51dab0e2adc69cbbb76d8573d95f74198b0d4520
3
+ metadata.gz: 86ecf0081881a1de4ccc873889d9065114305bc5
4
+ data.tar.gz: c659e13780a0e411fb3a86cf77fb92cd2edc05dc
5
5
  SHA512:
6
- metadata.gz: 6d072897edd66361b757354053630f442b68fb9735694ef29967637050dacb6b1566517056dda16cc40f7ee68f4a9539089250e2defc55a2bc7247511fa28064
7
- data.tar.gz: 0cfa190f22c120bff2e5a3b9b009960c39011c970c57957465339b52314dd027e39b4801f6978ede25b94fc307a6637c56121a0c3699a956d5f2bc8948ea37b5
6
+ metadata.gz: 88dac02a46beb121ff26695830393b5cdfcb5f04bbe0590f66f0c851188058becd8213eacc8e95cd8ffe62a173b53bb4b0ec76c93ed38ffb0250907dec756a1b
7
+ data.tar.gz: 4727a56d56419154cdb5185a9efbf581aa27e9b714529a1915f6fde9468cadfe771f3500847474da40355290fe31d632b51691d5308a8c6566b25f3143c76605
data/CHANGELOG.md CHANGED
@@ -1,2 +1,20 @@
1
1
  ## 1.0.0
2
- - First public release
2
+ - First public release
3
+
4
+ ### 1.0.1
5
+ - Update gem description
6
+
7
+ ### 1.0.2
8
+ - Support using `%{@json}` in format to send event in json format
9
+ - Support pararmeter `json_mapping` to filter json fields. For example:
10
+ ```
11
+ json_mapping => {
12
+ "foo" => "%{@timestamp}"
13
+ "bar" => "%{message}"
14
+ }
15
+ ```
16
+ will create message as:
17
+ ```
18
+ {"foo":"2016-07-27T18:37:59.460Z","bar":"hello world"}
19
+ {"foo":"2016-07-27T18:38:01.222Z","bar":"bye!"}
20
+ ```
@@ -26,6 +26,7 @@ class LogStash::Outputs::SumoLogic < LogStash::Outputs::Base
26
26
  config :extra_headers, :validate => :hash, :default => []
27
27
 
28
28
  # The formatter of message, by default is message with timestamp and host as prefix
29
+ # use %{@json} tag to send whole event
29
30
  config :format, :validate => :string, :default => "%{@timestamp} %{host} %{message}"
30
31
 
31
32
  # Hold messages for at least (x) seconds as a pile; 0 means sending every events immediately
@@ -34,6 +35,9 @@ class LogStash::Outputs::SumoLogic < LogStash::Outputs::Base
34
35
  # Compress the payload
35
36
  config :compress, :validate => :boolean, :default => false
36
37
 
38
+ # This lets you choose the structure and parts of the event that are sent in @json tag.
39
+ config :json_mapping, :validate => :hash
40
+
37
41
  public
38
42
  def register
39
43
  # initialize request pool
@@ -57,7 +61,7 @@ class LogStash::Outputs::SumoLogic < LogStash::Outputs::Base
57
61
  return
58
62
  end
59
63
 
60
- content = event.sprintf(@format)
64
+ content = format_event(event)
61
65
 
62
66
  if @interval <= 0 # means send immediately
63
67
  send_request(content)
@@ -128,8 +132,35 @@ class LogStash::Outputs::SumoLogic < LogStash::Outputs::Base
128
132
  def get_headers()
129
133
  base = { "Content-Type" => "text/plain" }
130
134
  base["Content-Encoding"] = "deflate" if @compress
131
- return base.merge(@extra_headers)
132
- end # def get_header
135
+ base.merge(@extra_headers)
136
+ end # def get_headers
137
+
138
+ private
139
+ def format_event(event)
140
+ if @format.to_s.strip.length == 0
141
+ LogStash::Json.dump(map_event(event))
142
+ else
143
+ f = if @format.include? "%{@json}"
144
+ @format.gsub("%{@json}", LogStash::Json.dump(map_event(event)))
145
+ else
146
+ @format
147
+ end
148
+ event.sprintf(f)
149
+ end
150
+ end # def format_event
151
+
152
+ private
153
+ def map_event(event)
154
+ if @json_mapping
155
+ @json_mapping.reduce({}) do |acc, kv|
156
+ k, v = kv
157
+ acc[k] = event.sprintf(v)
158
+ acc
159
+ end
160
+ else
161
+ event.to_hash
162
+ end
163
+ end # def map_event
133
164
 
134
165
  private
135
166
  def log_failure(message, opts)
@@ -1,12 +1,12 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-output-sumologic'
3
- s.version = "1.0.1"
3
+ s.version = "1.0.2"
4
4
  s.licenses = ["Apache-2.0"]
5
5
  s.summary = "Deliever the log to Sumo Logic cloud service."
6
6
  s.description = "This gem is a Logstash output plugin to deliver the log to Sumo Logic cloud service. Go to https://github.com/SumoLogic/logstash-output-sumologic for getting help, reporting issues, etc."
7
7
  s.authors = ["Sumo Logic"]
8
8
  s.email = "byi@sumologic.com"
9
- s.homepage = "http://www.sumologic.com"
9
+ s.homepage = "https://github.com/SumoLogic/logstash-output-sumologic"
10
10
  s.require_paths = ["lib"]
11
11
 
12
12
  # Files
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-output-sumologic
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sumo Logic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-20 00:00:00.000000000 Z
11
+ date: 2016-07-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logstash-core
@@ -75,7 +75,7 @@ files:
75
75
  - lib/logstash/outputs/sumologic.rb
76
76
  - logstash-output-sumologic.gemspec
77
77
  - spec/outputs/sumologic_spec.rb
78
- homepage: http://www.sumologic.com
78
+ homepage: https://github.com/SumoLogic/logstash-output-sumologic
79
79
  licenses:
80
80
  - Apache-2.0
81
81
  metadata: