fluent-plugin-splunk-hec 1.2.4 → 1.2.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +53 -51
- data/README.md +14 -2
- data/VERSION +1 -1
- data/lib/fluent/plugin/out_splunk.rb +8 -4
- data/lib/fluent/plugin/out_splunk_hec.rb +25 -9
- data/test/fluent/plugin/out_splunk_hec_test.rb +25 -2
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 964d0f2e9840a7fa66a70dafb6918b3a54b7586e0ed550a9651ac5e150b817a2
|
4
|
+
data.tar.gz: 97ef4f8a6f602bdfc359b4119800837c40571d0b717ba3a358aa1a66fd8ca64e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b74c2408af64d38611627af3e16a5723c32bbce47002e030ddc09b7793d4f72a42a933330554e5b5e4092d66f45564d7038bb96f1ae75131f70a1fa9c9a86acf
|
7
|
+
data.tar.gz: 324f4e82f7b3d8792798f44ec5647f56845590fd3bf317ad6737f19788c9483112464635417389b7cb024dc34c23edab0bf854ae086c54404a368c902d5eb420
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
fluent-plugin-splunk-hec (1.2.
|
4
|
+
fluent-plugin-splunk-hec (1.2.5)
|
5
5
|
fluentd (>= 1.4)
|
6
6
|
multi_json (~> 1.13)
|
7
7
|
net-http-persistent (~> 3.1)
|
@@ -11,52 +11,53 @@ PATH
|
|
11
11
|
GEM
|
12
12
|
remote: https://rubygems.org/
|
13
13
|
specs:
|
14
|
-
activemodel (
|
15
|
-
activesupport (=
|
16
|
-
activesupport (
|
14
|
+
activemodel (6.1.3)
|
15
|
+
activesupport (= 6.1.3)
|
16
|
+
activesupport (6.1.3)
|
17
17
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
18
|
-
i18n (>=
|
19
|
-
minitest (
|
20
|
-
tzinfo (~>
|
18
|
+
i18n (>= 1.6, < 2)
|
19
|
+
minitest (>= 5.1)
|
20
|
+
tzinfo (~> 2.0)
|
21
|
+
zeitwerk (~> 2.3)
|
21
22
|
addressable (2.7.0)
|
22
23
|
public_suffix (>= 2.0.2, < 5.0)
|
23
|
-
aes_key_wrap (1.0
|
24
|
-
ast (2.4.
|
24
|
+
aes_key_wrap (1.1.0)
|
25
|
+
ast (2.4.2)
|
25
26
|
attr_required (1.0.1)
|
26
|
-
bindata (2.4.
|
27
|
-
concurrent-ruby (1.1.
|
28
|
-
connection_pool (2.2.
|
29
|
-
cool.io (1.
|
30
|
-
crack (0.4.
|
31
|
-
|
32
|
-
docile (1.3.
|
33
|
-
fluentd (1.
|
27
|
+
bindata (2.4.8)
|
28
|
+
concurrent-ruby (1.1.8)
|
29
|
+
connection_pool (2.2.3)
|
30
|
+
cool.io (1.7.1)
|
31
|
+
crack (0.4.5)
|
32
|
+
rexml
|
33
|
+
docile (1.3.5)
|
34
|
+
fluentd (1.12.1)
|
35
|
+
bundler
|
34
36
|
cool.io (>= 1.4.5, < 2.0.0)
|
35
37
|
http_parser.rb (>= 0.5.1, < 0.7.0)
|
36
38
|
msgpack (>= 1.3.1, < 2.0.0)
|
37
|
-
serverengine (>= 2.
|
39
|
+
serverengine (>= 2.2.2, < 3.0.0)
|
38
40
|
sigdump (~> 0.2.2)
|
39
41
|
strptime (>= 0.2.2, < 1.0.0)
|
40
42
|
tzinfo (>= 1.0, < 3.0)
|
41
43
|
tzinfo-data (~> 1.0)
|
42
44
|
yajl-ruby (~> 1.0)
|
43
|
-
hashdiff (1.0.
|
44
|
-
http_parser.rb (0.
|
45
|
+
hashdiff (1.0.1)
|
46
|
+
http_parser.rb (0.6.0)
|
45
47
|
httpclient (2.8.3)
|
46
|
-
i18n (1.8.
|
48
|
+
i18n (1.8.9)
|
47
49
|
concurrent-ruby (~> 1.0)
|
48
50
|
jaro_winkler (1.5.4)
|
49
|
-
json (
|
50
|
-
json-jwt (1.11.0)
|
51
|
+
json-jwt (1.13.0)
|
51
52
|
activesupport (>= 4.2)
|
52
53
|
aes_key_wrap
|
53
54
|
bindata
|
54
55
|
mail (2.7.1)
|
55
56
|
mini_mime (>= 0.1.1)
|
56
57
|
mini_mime (1.0.2)
|
57
|
-
minitest (5.14.
|
58
|
-
msgpack (1.
|
59
|
-
multi_json (1.
|
58
|
+
minitest (5.14.4)
|
59
|
+
msgpack (1.4.2)
|
60
|
+
multi_json (1.15.0)
|
60
61
|
net-http-persistent (3.1.0)
|
61
62
|
connection_pool (~> 2.2)
|
62
63
|
openid_connect (1.1.8)
|
@@ -69,24 +70,25 @@ GEM
|
|
69
70
|
validate_email
|
70
71
|
validate_url
|
71
72
|
webfinger (>= 1.0.1)
|
72
|
-
parallel (1.
|
73
|
-
parser (
|
74
|
-
ast (~> 2.4.
|
75
|
-
power_assert (
|
76
|
-
powerpack (0.1.
|
73
|
+
parallel (1.20.1)
|
74
|
+
parser (3.0.0.0)
|
75
|
+
ast (~> 2.4.1)
|
76
|
+
power_assert (2.0.0)
|
77
|
+
powerpack (0.1.3)
|
77
78
|
prometheus-client (0.9.0)
|
78
79
|
quantile (~> 0.2.1)
|
79
|
-
public_suffix (4.0.
|
80
|
+
public_suffix (4.0.6)
|
80
81
|
quantile (0.2.1)
|
81
82
|
rack (2.2.3)
|
82
|
-
rack-oauth2 (1.
|
83
|
+
rack-oauth2 (1.16.0)
|
83
84
|
activesupport
|
84
85
|
attr_required
|
85
86
|
httpclient
|
86
87
|
json-jwt (>= 1.11.0)
|
87
|
-
rack
|
88
|
+
rack (>= 2.1.0)
|
88
89
|
rainbow (3.0.0)
|
89
|
-
rake (
|
90
|
+
rake (13.0.3)
|
91
|
+
rexml (3.2.4)
|
90
92
|
rubocop (0.63.1)
|
91
93
|
jaro_winkler (~> 1.5.1)
|
92
94
|
parallel (~> 1.10)
|
@@ -95,33 +97,32 @@ GEM
|
|
95
97
|
rainbow (>= 2.2.2, < 4.0)
|
96
98
|
ruby-progressbar (~> 1.7)
|
97
99
|
unicode-display_width (~> 1.4.0)
|
98
|
-
ruby-progressbar (1.
|
99
|
-
|
100
|
-
serverengine (2.2.1)
|
100
|
+
ruby-progressbar (1.11.0)
|
101
|
+
serverengine (2.2.3)
|
101
102
|
sigdump (~> 0.2.2)
|
102
103
|
sigdump (0.2.4)
|
103
|
-
simplecov (0.
|
104
|
+
simplecov (0.21.2)
|
104
105
|
docile (~> 1.1)
|
105
|
-
|
106
|
-
|
107
|
-
simplecov-html (0.
|
108
|
-
|
109
|
-
|
106
|
+
simplecov-html (~> 0.11)
|
107
|
+
simplecov_json_formatter (~> 0.1)
|
108
|
+
simplecov-html (0.12.3)
|
109
|
+
simplecov_json_formatter (0.1.2)
|
110
|
+
strptime (0.2.5)
|
111
|
+
swd (1.2.0)
|
110
112
|
activesupport (>= 3)
|
111
113
|
attr_required (>= 0.0.5)
|
112
114
|
httpclient (>= 2.4)
|
113
|
-
test-unit (3.
|
115
|
+
test-unit (3.4.0)
|
114
116
|
power_assert
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
tzinfo-data (1.2019.3)
|
117
|
+
tzinfo (2.0.4)
|
118
|
+
concurrent-ruby (~> 1.0)
|
119
|
+
tzinfo-data (1.2021.1)
|
119
120
|
tzinfo (>= 1.0.0)
|
120
121
|
unicode-display_width (1.4.1)
|
121
122
|
validate_email (0.1.6)
|
122
123
|
activemodel (>= 3.0)
|
123
124
|
mail (>= 2.2.5)
|
124
|
-
validate_url (1.0.
|
125
|
+
validate_url (1.0.13)
|
125
126
|
activemodel (>= 3.0.0)
|
126
127
|
public_suffix
|
127
128
|
webfinger (1.1.0)
|
@@ -132,6 +133,7 @@ GEM
|
|
132
133
|
crack (>= 0.3.2)
|
133
134
|
hashdiff
|
134
135
|
yajl-ruby (1.4.1)
|
136
|
+
zeitwerk (2.4.2)
|
135
137
|
|
136
138
|
PLATFORMS
|
137
139
|
ruby
|
@@ -147,4 +149,4 @@ DEPENDENCIES
|
|
147
149
|
webmock (~> 3.5.0)
|
148
150
|
|
149
151
|
BUNDLED WITH
|
150
|
-
2.
|
152
|
+
2.2.15
|
data/README.md
CHANGED
@@ -260,6 +260,10 @@ Cannot set both `source` and `source_key` parameters at the same time.
|
|
260
260
|
|
261
261
|
Field name that contains the sourcetype. Cannot set both `source` and `source_key` parameters at the same time.
|
262
262
|
|
263
|
+
### time_key (string) (optional)
|
264
|
+
|
265
|
+
Field name to contain Splunk event time. By default will use fluentd\'d time.
|
266
|
+
|
263
267
|
### fields (init) (optional)
|
264
268
|
|
265
269
|
Lets you specify the index-time fields for the event data type, or metric dimensions for the metric data type. Null value fields are removed.
|
@@ -293,7 +297,7 @@ In this case, parameters inside `<fields>` are used as indexed fields and remove
|
|
293
297
|
<fields>
|
294
298
|
file
|
295
299
|
level
|
296
|
-
app
|
300
|
+
app application
|
297
301
|
</fields>
|
298
302
|
</match>
|
299
303
|
```
|
@@ -340,7 +344,7 @@ For metrics, parameters inside `<fields>` are used as dimensions. If `<fields>`
|
|
340
344
|
<fields>
|
341
345
|
file
|
342
346
|
level
|
343
|
-
app
|
347
|
+
app application
|
344
348
|
</fields>
|
345
349
|
</match>
|
346
350
|
```
|
@@ -432,6 +436,14 @@ List of SSl ciphers allowed.
|
|
432
436
|
|
433
437
|
Specifies whether an insecure SSL connection is allowed. If set to false, Splunk does not verify an insecure server certificate. This parameter is set to `false` by default. Ensure parameter `ca_file` is not configured in order to allow insecure SSL connections when this value is set to `true`.
|
434
438
|
|
439
|
+
#### require_ssl_min_version (bool)
|
440
|
+
|
441
|
+
When set to true, TLS version 1.1 and above is required.
|
442
|
+
|
443
|
+
#### consume_chunk_on_4xx_errors (bool)
|
444
|
+
|
445
|
+
Specifies whether any 4xx HTTP response status code consumes the buffer chunks. If set to false, Splunk will fail to flush the buffer on such status codes. This parameter is set to `true` by default for backwards compatibility.
|
446
|
+
|
435
447
|
## About Buffer
|
436
448
|
|
437
449
|
This plugin sends events to HEC using [batch mode](https://docs.splunk.com/Documentation/Splunk/7.1.0/Data/FormateventsforHTTPEventCollector#Event_data).
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.
|
1
|
+
1.2.5
|
@@ -13,7 +13,7 @@ module Fluent::Plugin
|
|
13
13
|
autoload :VERSION, 'fluent/plugin/out_splunk/version'
|
14
14
|
autoload :MatchFormatter, 'fluent/plugin/out_splunk/match_formatter'
|
15
15
|
|
16
|
-
KEY_FIELDS = %w[index host source sourcetype metric_name metric_value].freeze
|
16
|
+
KEY_FIELDS = %w[index host source sourcetype metric_name metric_value time].freeze
|
17
17
|
TAG_PLACEHOLDER = '${tag}'
|
18
18
|
|
19
19
|
desc 'The host field for events, by default it uses the hostname of the machine that runnning fluentd. This is exclusive with `host_key`.'
|
@@ -51,6 +51,9 @@ module Fluent::Plugin
|
|
51
51
|
# this is blank on purpose
|
52
52
|
end
|
53
53
|
|
54
|
+
desc 'Indicates if 4xx errors should consume chunk'
|
55
|
+
config_param :consume_chunk_on_4xx_errors, :bool, :default => true
|
56
|
+
|
54
57
|
config_section :format do
|
55
58
|
config_set_default :usage, '**'
|
56
59
|
config_set_default :@type, 'json'
|
@@ -152,11 +155,12 @@ module Fluent::Plugin
|
|
152
155
|
|
153
156
|
@metrics[:status_counter].increment(metric_labels(status: response.code.to_s))
|
154
157
|
|
158
|
+
raise_err = response.code.to_s.start_with?('5') || (!@consume_chunk_on_4xx_errors && response.code.to_s.start_with?('4'))
|
159
|
+
|
155
160
|
# raise Exception to utilize Fluentd output plugin retry mechanism
|
156
|
-
raise "Server error (#{response.code}) for POST #{@api}, response: #{response.body}" if
|
161
|
+
raise "Server error (#{response.code}) for POST #{@api}, response: #{response.body}" if raise_err
|
157
162
|
|
158
|
-
# For both success response (2xx)
|
159
|
-
# Because there probably a bug in the code if we get 4xx errors, retry won't do any good.
|
163
|
+
# For both success response (2xx) we will consume the chunk.
|
160
164
|
unless response.code.to_s.start_with?('2')
|
161
165
|
log.error "#{self.class}: Failed POST to #{@api}, response: #{response.body}"
|
162
166
|
log.error { "#{self.class}: Failed request body: #{post.body}" }
|
@@ -63,6 +63,9 @@ module Fluent::Plugin
|
|
63
63
|
desc 'List of SSL ciphers allowed.'
|
64
64
|
config_param :ssl_ciphers, :array, default: nil
|
65
65
|
|
66
|
+
desc 'When set to true, TLS version 1.1 and above is required.'
|
67
|
+
config_param :require_ssl_min_version, :bool, default: true
|
68
|
+
|
66
69
|
desc 'Indicates if insecure SSL connection is allowed.'
|
67
70
|
config_param :insecure_ssl, :bool, default: false
|
68
71
|
|
@@ -97,7 +100,10 @@ module Fluent::Plugin
|
|
97
100
|
config_section :fields, init: false, multi: false, required: false do
|
98
101
|
# this is blank on purpose
|
99
102
|
end
|
100
|
-
|
103
|
+
|
104
|
+
desc 'Indicates if 4xx errors should consume chunk'
|
105
|
+
config_param :consume_chunk_on_4xx_errors, :bool, :default => true
|
106
|
+
|
101
107
|
config_section :format do
|
102
108
|
config_set_default :usage, '**'
|
103
109
|
config_set_default :@type, 'json'
|
@@ -140,6 +146,8 @@ module Fluent::Plugin
|
|
140
146
|
c.ca_file = @ca_file
|
141
147
|
c.ca_path = @ca_path
|
142
148
|
c.ciphers = @ssl_ciphers
|
149
|
+
c.proxy = :ENV
|
150
|
+
c.min_version = OpenSSL::SSL::TLS1_1_VERSION if @require_ssl_min_version
|
143
151
|
|
144
152
|
c.override_headers['Content-Type'] = 'application/json'
|
145
153
|
c.override_headers['User-Agent'] = "fluent-plugin-splunk_hec_out/#{VERSION}"
|
@@ -179,7 +187,7 @@ module Fluent::Plugin
|
|
179
187
|
end
|
180
188
|
|
181
189
|
def format_event(tag, time, record)
|
182
|
-
|
190
|
+
d = {
|
183
191
|
host: @host ? @host.(tag, record) : @default_host,
|
184
192
|
# From the API reference
|
185
193
|
# http://docs.splunk.com/Documentation/Splunk/latest/RESTREF/RESTinput#services.2Fcollector
|
@@ -212,7 +220,12 @@ module Fluent::Plugin
|
|
212
220
|
record = formatter.format(tag, time, record)
|
213
221
|
end
|
214
222
|
payload[:event] = convert_to_utf8 record
|
215
|
-
}
|
223
|
+
}
|
224
|
+
if d[:event] == "{}"
|
225
|
+
log.warn { "Event after formatting was blank, not sending" }
|
226
|
+
return ""
|
227
|
+
end
|
228
|
+
MultiJson.dump(d)
|
216
229
|
end
|
217
230
|
|
218
231
|
def format_metric(tag, time, record)
|
@@ -224,7 +237,7 @@ module Fluent::Plugin
|
|
224
237
|
# That's why we use `to_s` here.
|
225
238
|
time: time.to_f.to_s,
|
226
239
|
event: 'metric'
|
227
|
-
}.tap do |payload|
|
240
|
+
}.tap do |payload|
|
228
241
|
if @time
|
229
242
|
time_value = @time.(tag, record)
|
230
243
|
# if no value is found don't override and use fluentd's time
|
@@ -279,9 +292,11 @@ module Fluent::Plugin
|
|
279
292
|
c.ca_file = @ca_file
|
280
293
|
c.ca_path = @ca_path
|
281
294
|
c.ciphers = @ssl_ciphers
|
295
|
+
c.proxy = :ENV
|
282
296
|
c.idle_timeout = @idle_timeout
|
283
297
|
c.read_timeout = @read_timeout
|
284
298
|
c.open_timeout = @open_timeout
|
299
|
+
c.min_version = OpenSSL::SSL::TLS1_1_VERSION if @require_ssl_min_version
|
285
300
|
|
286
301
|
c.override_headers['Content-Type'] = 'application/json'
|
287
302
|
c.override_headers['User-Agent'] = "fluent-plugin-splunk_hec_out/#{VERSION}"
|
@@ -302,11 +317,12 @@ module Fluent::Plugin
|
|
302
317
|
response = @conn.request @api, post
|
303
318
|
t2 = Time.now
|
304
319
|
|
305
|
-
|
306
|
-
|
320
|
+
raise_err = response.code.to_s.start_with?('5') || (!@consume_chunk_on_4xx_errors && response.code.to_s.start_with?('4'))
|
321
|
+
|
322
|
+
# raise Exception to utilize Fluentd output plugin retry mechanism
|
323
|
+
raise "Server error (#{response.code}) for POST #{@api}, response: #{response.body}" if raise_err
|
307
324
|
|
308
|
-
# For both success response (2xx)
|
309
|
-
# Because there probably a bug in the code if we get 4xx errors, retry won't do any good.
|
325
|
+
# For both success response (2xx) we will consume the chunk.
|
310
326
|
if not response.code.start_with?('2')
|
311
327
|
log.error "Failed POST to #{@api}, response: #{response.body}"
|
312
328
|
log.debug { "Failed request body: #{post.body}" }
|
@@ -340,7 +356,7 @@ module Fluent::Plugin
|
|
340
356
|
invalid: :replace,
|
341
357
|
undef: :replace,
|
342
358
|
replace: @non_utf8_replacement_string)
|
343
|
-
|
359
|
+
else
|
344
360
|
begin
|
345
361
|
input.encode('utf-8')
|
346
362
|
rescue EncodingError
|
@@ -57,6 +57,9 @@ describe Fluent::Plugin::SplunkHecOutput do
|
|
57
57
|
assert_nil(create_hec_output_driver('hec_host hec_token').instance.index_key)
|
58
58
|
expect(create_hec_output_driver('hec_host hec_token').instance.index_key).is_a? String
|
59
59
|
end
|
60
|
+
it 'should consume chunks on 4xx errors' do
|
61
|
+
expect(create_hec_output_driver('hec_host hec_token').instance.consume_chunk_on_4xx_errors).must_equal true
|
62
|
+
end
|
60
63
|
end
|
61
64
|
|
62
65
|
describe 'hec_host validation' do
|
@@ -139,6 +142,7 @@ describe Fluent::Plugin::SplunkHecOutput do
|
|
139
142
|
host_key from
|
140
143
|
source_key file
|
141
144
|
sourcetype_key agent.name
|
145
|
+
time_key timestamp
|
142
146
|
CONF
|
143
147
|
batch.each do |item|
|
144
148
|
expect(item['index']).must_equal 'info'
|
@@ -147,7 +151,7 @@ describe Fluent::Plugin::SplunkHecOutput do
|
|
147
151
|
expect(item['sourcetype']).must_equal 'test'
|
148
152
|
|
149
153
|
JSON.load(item['event']).tap do |event|
|
150
|
-
%w[level from file].each { |field| expect(event).wont_include field }
|
154
|
+
%w[level from file timestamp].each { |field| expect(event).wont_include field }
|
151
155
|
expect(event['agent']).wont_include 'name'
|
152
156
|
end
|
153
157
|
end
|
@@ -220,6 +224,24 @@ describe Fluent::Plugin::SplunkHecOutput do
|
|
220
224
|
end
|
221
225
|
end
|
222
226
|
|
227
|
+
it 'should not send blank events' do
|
228
|
+
verify_sent_events(<<~CONF) do |batch|
|
229
|
+
<fields>
|
230
|
+
from
|
231
|
+
logLevel level
|
232
|
+
nonexist
|
233
|
+
log
|
234
|
+
file
|
235
|
+
value
|
236
|
+
id
|
237
|
+
agent
|
238
|
+
timestamp
|
239
|
+
</fields>
|
240
|
+
CONF
|
241
|
+
expect(batch.length).must_equal 0
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
223
245
|
describe 'metric' do
|
224
246
|
it 'should check related configs' do
|
225
247
|
expect(
|
@@ -349,7 +371,8 @@ describe Fluent::Plugin::SplunkHecOutput do
|
|
349
371
|
'agent' => {
|
350
372
|
'name' => 'test',
|
351
373
|
'version' => '1.0.0'
|
352
|
-
}
|
374
|
+
},
|
375
|
+
'timestamp' => 'time'
|
353
376
|
}
|
354
377
|
events = [
|
355
378
|
['tag.event1', event_time, { 'id' => '1st' }.merge(Marshal.load(Marshal.dump(event)))],
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-splunk-hec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Splunk Inc.
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|
@@ -215,7 +215,7 @@ homepage: https://github.com/splunk/fluent-plugin-splunk-hec
|
|
215
215
|
licenses:
|
216
216
|
- Apache-2.0
|
217
217
|
metadata: {}
|
218
|
-
post_install_message:
|
218
|
+
post_install_message:
|
219
219
|
rdoc_options: []
|
220
220
|
require_paths:
|
221
221
|
- lib
|
@@ -231,7 +231,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
231
231
|
version: '0'
|
232
232
|
requirements: []
|
233
233
|
rubygems_version: 3.0.6
|
234
|
-
signing_key:
|
234
|
+
signing_key:
|
235
235
|
specification_version: 4
|
236
236
|
summary: Fluentd plugin for Splunk HEC.
|
237
237
|
test_files:
|