fluent-plugin-sumologic_output 1.7.3 → 1.7.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/fluent-plugin-sumologic_output.gemspec +1 -1
- data/lib/fluent/plugin/out_sumologic.rb +27 -2
- data/test/plugin/test_out_sumologic.rb +29 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ecb31a6366d5d0d352759cd11053747029c07d65267d410c5dfb4826b487ad8
|
4
|
+
data.tar.gz: 43b5911ccfeecd4e9d5a3f56b040678fb5e089a1793668b61559544e73427697
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 590654de132ef18f36d6ef3671e7fec0a6b813c7e23beb2c602fd259521e405ef043cdefd2ba96b6454c72d91d88e9be9b3baa89467893c9448e36003a09655b
|
7
|
+
data.tar.gz: 0ab2c898106c02e8cb01af1f34231d230528378dd71173c569521be35c5b8427951f0219ff049b114f912d9fc2e92924b9023159c2fd187425cbf7b16fccd4e0
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,15 @@
|
|
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.7.3"></a>
|
6
|
+
# [1.7.3] (2021-10-19)
|
7
|
+
- Expose httpclient send_timeout [#66](https://github.com/SumoLogic/fluentd-output-sumologic/pull/68)
|
8
|
+
- Fix json parsing [#69](https://github.com/SumoLogic/fluentd-output-sumologic/pull/69)
|
9
|
+
|
10
|
+
<a name="1.7.2"></a>
|
11
|
+
# [1.7.2] (2020-11-23)
|
12
|
+
- Fix configuration for older fluentd versions [#63](https://github.com/SumoLogic/fluentd-output-sumologic/pull/63)
|
13
|
+
|
5
14
|
<a name="1.7.1"></a>
|
6
15
|
# [1.7.1] (2020-04-28)
|
7
16
|
- Fix configuration for older fluentd versions [#63](https://github.com/SumoLogic/fluentd-output-sumologic/pull/63)
|
@@ -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.
|
7
|
+
gem.version = "1.7.4"
|
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}
|
@@ -13,12 +13,13 @@ class SumologicConnection
|
|
13
13
|
COMPRESS_DEFLATE = 'deflate'
|
14
14
|
COMPRESS_GZIP = 'gzip'
|
15
15
|
|
16
|
-
def initialize(endpoint, verify_ssl, connect_timeout, send_timeout, proxy_uri, disable_cookies, sumo_client, compress_enabled, compress_encoding)
|
16
|
+
def initialize(endpoint, verify_ssl, connect_timeout, send_timeout, proxy_uri, disable_cookies, sumo_client, compress_enabled, compress_encoding, logger)
|
17
17
|
@endpoint = endpoint
|
18
18
|
@sumo_client = sumo_client
|
19
19
|
create_http_client(verify_ssl, connect_timeout, send_timeout, proxy_uri, disable_cookies)
|
20
20
|
@compress = compress_enabled
|
21
21
|
@compress_encoding = (compress_encoding ||= COMPRESS_GZIP).downcase
|
22
|
+
@logger = logger
|
22
23
|
|
23
24
|
unless [COMPRESS_DEFLATE, COMPRESS_GZIP].include? @compress_encoding
|
24
25
|
raise "Invalid compression encoding #{@compress_encoding} must be gzip or deflate"
|
@@ -30,6 +31,29 @@ class SumologicConnection
|
|
30
31
|
unless response.ok?
|
31
32
|
raise RuntimeError, "Failed to send data to HTTP Source. #{response.code} - #{response.body}"
|
32
33
|
end
|
34
|
+
|
35
|
+
# response is 20x, check response content
|
36
|
+
return if response.content.length == 0
|
37
|
+
|
38
|
+
# if we get a non-empty response, check it
|
39
|
+
begin
|
40
|
+
response_map = JSON.load(response.content)
|
41
|
+
rescue JSON::ParserError
|
42
|
+
@logger.warn "Error decoding receiver response: #{response.content}"
|
43
|
+
return
|
44
|
+
end
|
45
|
+
|
46
|
+
# log a warning with the present keys
|
47
|
+
response_keys = ["id", "code", "status", "message", "errors"]
|
48
|
+
log_params = []
|
49
|
+
response_keys.each do |key|
|
50
|
+
if response_map.has_key?(key) then
|
51
|
+
value = response_map[key]
|
52
|
+
log_params.append("#{key}: #{value}")
|
53
|
+
end
|
54
|
+
end
|
55
|
+
log_params_str = log_params.join(", ")
|
56
|
+
@logger.warn "There was an issue sending data: #{log_params_str}"
|
33
57
|
end
|
34
58
|
|
35
59
|
def request_headers(source_host, source_category, source_name, data_type, metric_data_format, collected_fields, dimensions)
|
@@ -218,7 +242,8 @@ class Fluent::Plugin::Sumologic < Fluent::Plugin::Output
|
|
218
242
|
conf['disable_cookies'],
|
219
243
|
conf['sumo_client'],
|
220
244
|
conf['compress'],
|
221
|
-
conf['compress_encoding']
|
245
|
+
conf['compress_encoding'],
|
246
|
+
log,
|
222
247
|
)
|
223
248
|
super
|
224
249
|
end
|
@@ -795,6 +795,34 @@ class SumologicOutput < Test::Unit::TestCase
|
|
795
795
|
headers: {'X-Sumo-Category'=>'test', 'X-Sumo-Client'=>'fluentd-output', 'X-Sumo-Host'=>'test', 'X-Sumo-Name'=>'test'},
|
796
796
|
body: /\A{"timestamp":\d+.,"message":"\\"foo\\\\\\": \\\\\\"bar\\\\\\", \\\\\\"mess"}\z/,
|
797
797
|
times:1
|
798
|
-
end
|
798
|
+
end
|
799
|
+
|
800
|
+
def test_warning_response_from_receiver
|
801
|
+
endpoint = "https://collectors.sumologic.com/v1/receivers/http/1234"
|
802
|
+
config = %{
|
803
|
+
endpoint #{endpoint}
|
804
|
+
}
|
805
|
+
testdata = [
|
806
|
+
[
|
807
|
+
'{"id":"1TIRY-KGIVX-TPQRJ","errors":[{"code":"internal.error","message":"Internal server error."}]}',
|
808
|
+
'There was an issue sending data: id: 1TIRY-KGIVX-TPQRJ, errors: [{"code"=>"internal.error", "message"=>"Internal server error."}]'
|
809
|
+
],
|
810
|
+
[
|
811
|
+
'{"id":"1TIRY-KGIVX-TPQRX","code": 200, "status": "Fields dropped", "message": "Dropped fields above the 30 field limit"}',
|
812
|
+
'There was an issue sending data: id: 1TIRY-KGIVX-TPQRX, code: 200, status: Fields dropped, message: Dropped fields above the 30 field limit'
|
813
|
+
],
|
814
|
+
]
|
815
|
+
time = event_time
|
816
|
+
|
817
|
+
testdata.each do |data, log|
|
818
|
+
driver = create_driver(config)
|
819
|
+
stub_request(:post, endpoint).to_return(body: data, headers: {content_type: 'application/json'})
|
820
|
+
driver.run do
|
821
|
+
driver.feed("test", time, {"message": "test"})
|
822
|
+
end
|
823
|
+
assert_equal driver.logs.length, 1
|
824
|
+
assert driver.logs[0].end_with?(log + "\n")
|
825
|
+
end
|
826
|
+
end
|
799
827
|
|
800
828
|
end
|
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.7.
|
4
|
+
version: 1.7.4
|
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: 2022-04-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|