fluent-plugin-sumologic_output 1.3.2 → 1.4.0
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/CHANGELOG.md +10 -0
- data/README.md +2 -1
- data/fluent-plugin-sumologic_output.gemspec +2 -2
- data/lib/fluent/plugin/out_sumologic.rb +4 -3
- data/test/plugin/test_out_sumologic.rb +44 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 129fc1c24fc6e1ac2b446b80fdfc7ac5165b7986
|
4
|
+
data.tar.gz: b9f01bee4b86185e306c7155c228a54cde730145
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e64e61a98fd1a39122b11661cdd3dd03507a0f5968700f69042604ff26ff0eb34d4d8095b46390fbc30d758570314b8b346b105a3affb9c4b63164b50a0ee953
|
7
|
+
data.tar.gz: 1b41b319196744540f98839e5f6d04d670fbfa492b31d6594868c76e193bf075f7c78eb180494b5e69bf1306bb174f8ab78f34cbd24ff841f681e33c12206063
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,16 @@
|
|
2
2
|
|
3
3
|
All notable changes to this project will be documented in this file. Tracking did not begin until version 1.10.
|
4
4
|
|
5
|
+
<a name="1.4.0"></a>
|
6
|
+
# [1.4.0] (2019-01-16)
|
7
|
+
|
8
|
+
* [Add timestamp_key, prefer log message when merging](https://github.com/SumoLogic/fluentd-output-sumologic/pull/37)
|
9
|
+
|
10
|
+
<a name="1.3.2"></a>
|
11
|
+
# [1.3.2] (2018-12-05)
|
12
|
+
|
13
|
+
* Fix verify SSL bug
|
14
|
+
|
5
15
|
<a name="1.3.1"></a>
|
6
16
|
# [1.3.1] (2018-08-30)
|
7
17
|
|
data/README.md
CHANGED
@@ -31,7 +31,8 @@ Configuration options for fluent.conf are:
|
|
31
31
|
* json_merge - Same as json but merge content of `log_key` into the top level and strip `log_key`
|
32
32
|
* `log_key` - Used to specify the key when merging json or sending logs in text format (default `message`)
|
33
33
|
* `open_timeout` - Set timeout seconds to wait until connection is opened.
|
34
|
-
* `add_timestamp` - Add `timestamp` field to logs before sending to sumologic (default `true`)
|
34
|
+
* `add_timestamp` - Add `timestamp` (or `timestamp_key`) field to logs before sending to sumologic (default `true`)
|
35
|
+
* `timestamp_key` - Field name when `add_timestamp` is on (default `timestamp`)
|
35
36
|
* `proxy_uri` - Add the `uri` of the `proxy` environment if present.
|
36
37
|
* `metric_data_format` - The format of metrics you will be sending, either `graphite` or `carbon2` (Default is `graphite `)
|
37
38
|
* `disable_cookies` - Option to disable cookies on the HTTP Client. (Default is `false `)
|
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |gem|
|
6
6
|
gem.name = "fluent-plugin-sumologic_output"
|
7
|
-
gem.version = "1.
|
7
|
+
gem.version = "1.4.0"
|
8
8
|
gem.authors = ["Steven Adams", "Frank Reno"]
|
9
9
|
gem.email = ["stevezau@gmail.com", "frank.reno@me.com"]
|
10
10
|
gem.description = %q{Output plugin to SumoLogic HTTP Endpoint}
|
@@ -20,7 +20,7 @@ Gem::Specification.new do |gem|
|
|
20
20
|
|
21
21
|
gem.required_ruby_version = '>= 2.0.0'
|
22
22
|
|
23
|
-
gem.add_development_dependency "bundler", "~>
|
23
|
+
gem.add_development_dependency "bundler", "~> 2"
|
24
24
|
gem.add_development_dependency "rake"
|
25
25
|
gem.add_development_dependency 'test-unit', '~> 3.1.0'
|
26
26
|
gem.add_development_dependency "codecov", ">= 0.1.10"
|
@@ -80,6 +80,7 @@ class Fluent::Plugin::Sumologic < Fluent::Plugin::Output
|
|
80
80
|
config_param :delimiter, :string, :default => "."
|
81
81
|
config_param :open_timeout, :integer, :default => 60
|
82
82
|
config_param :add_timestamp, :bool, :default => true
|
83
|
+
config_param :timestamp_key, :string, :default => 'timestamp'
|
83
84
|
config_param :proxy_uri, :string, :default => nil
|
84
85
|
config_param :disable_cookies, :bool, :default => false
|
85
86
|
|
@@ -145,7 +146,7 @@ class Fluent::Plugin::Sumologic < Fluent::Plugin::Output
|
|
145
146
|
log = record[@log_key].strip
|
146
147
|
if log[0].eql?('{') && log[-1].eql?('}')
|
147
148
|
begin
|
148
|
-
record = JSON.parse(log)
|
149
|
+
record = record.merge(JSON.parse(log))
|
149
150
|
record.delete(@log_key)
|
150
151
|
rescue JSON::ParserError
|
151
152
|
# do nothing, ignore
|
@@ -255,12 +256,12 @@ class Fluent::Plugin::Sumologic < Fluent::Plugin::Output
|
|
255
256
|
end
|
256
257
|
when 'json_merge'
|
257
258
|
if @add_timestamp
|
258
|
-
record = {
|
259
|
+
record = { @timestamp_key => sumo_timestamp(time) }.merge(record)
|
259
260
|
end
|
260
261
|
log = dump_log(merge_json(record))
|
261
262
|
else
|
262
263
|
if @add_timestamp
|
263
|
-
record = {
|
264
|
+
record = { @timestamp_key => sumo_timestamp(time) }.merge(record)
|
264
265
|
end
|
265
266
|
log = dump_log(record)
|
266
267
|
end
|
@@ -69,6 +69,7 @@ class SumologicOutput < Test::Unit::TestCase
|
|
69
69
|
assert_equal instance.delimiter, '.'
|
70
70
|
assert_equal instance.open_timeout, 60
|
71
71
|
assert_equal instance.add_timestamp, true
|
72
|
+
assert_equal instance.timestamp_key, 'timestamp'
|
72
73
|
assert_equal instance.proxy_uri, nil
|
73
74
|
assert_equal instance.disable_cookies, false
|
74
75
|
end
|
@@ -174,7 +175,28 @@ class SumologicOutput < Test::Unit::TestCase
|
|
174
175
|
end
|
175
176
|
assert_requested :post, "https://collectors.sumologic.com/v1/receivers/http/1234",
|
176
177
|
headers: {'X-Sumo-Category'=>'test', 'X-Sumo-Client'=>'fluentd-output', 'X-Sumo-Host'=>'test', 'X-Sumo-Name'=>'test'},
|
177
|
-
body: /\A{"
|
178
|
+
body: /\A{"timestamp":\d+,"foo":"bar","foo2":"bar2"}\z/,
|
179
|
+
times:1
|
180
|
+
end
|
181
|
+
|
182
|
+
def test_emit_json_merge_timestamp
|
183
|
+
config = %{
|
184
|
+
endpoint https://collectors.sumologic.com/v1/receivers/http/1234
|
185
|
+
log_format json_merge
|
186
|
+
source_category test
|
187
|
+
source_host test
|
188
|
+
source_name test
|
189
|
+
|
190
|
+
}
|
191
|
+
driver = create_driver(config)
|
192
|
+
time = event_time
|
193
|
+
stub_request(:post, 'https://collectors.sumologic.com/v1/receivers/http/1234')
|
194
|
+
driver.run do
|
195
|
+
driver.feed("output.test", time, {'message' => '{"timestamp":123}'})
|
196
|
+
end
|
197
|
+
assert_requested :post, "https://collectors.sumologic.com/v1/receivers/http/1234",
|
198
|
+
headers: {'X-Sumo-Category'=>'test', 'X-Sumo-Client'=>'fluentd-output', 'X-Sumo-Host'=>'test', 'X-Sumo-Name'=>'test'},
|
199
|
+
body: /\A{"timestamp":123}\z/,
|
178
200
|
times:1
|
179
201
|
end
|
180
202
|
|
@@ -221,6 +243,27 @@ class SumologicOutput < Test::Unit::TestCase
|
|
221
243
|
times:1
|
222
244
|
end
|
223
245
|
|
246
|
+
def test_emit_json_timestamp_key
|
247
|
+
config = %{
|
248
|
+
endpoint https://collectors.sumologic.com/v1/receivers/http/1234
|
249
|
+
log_format json
|
250
|
+
source_category test
|
251
|
+
source_host test
|
252
|
+
source_name test
|
253
|
+
timestamp_key ts
|
254
|
+
}
|
255
|
+
driver = create_driver(config)
|
256
|
+
time = event_time
|
257
|
+
stub_request(:post, 'https://collectors.sumologic.com/v1/receivers/http/1234')
|
258
|
+
driver.run do
|
259
|
+
driver.feed("output.test", time, {'message' => 'test'})
|
260
|
+
end
|
261
|
+
assert_requested :post, "https://collectors.sumologic.com/v1/receivers/http/1234",
|
262
|
+
headers: {'X-Sumo-Category'=>'test', 'X-Sumo-Client'=>'fluentd-output', 'X-Sumo-Host'=>'test', 'X-Sumo-Name'=>'test'},
|
263
|
+
body: /\A{"ts":\d+.,"message":"test"}\z/,
|
264
|
+
times:1
|
265
|
+
end
|
266
|
+
|
224
267
|
def test_emit_graphite
|
225
268
|
config = %{
|
226
269
|
endpoint https://collectors.sumologic.com/v1/receivers/http/1234
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-sumologic_output
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steven Adams
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2019-01-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
20
|
+
version: '2'
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
27
|
+
version: '2'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rake
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -134,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
134
134
|
version: '0'
|
135
135
|
requirements: []
|
136
136
|
rubyforge_project:
|
137
|
-
rubygems_version: 2.
|
137
|
+
rubygems_version: 2.6.11
|
138
138
|
signing_key:
|
139
139
|
specification_version: 4
|
140
140
|
summary: Output plugin to SumoLogic HTTP Endpoint
|