fluent-plugin-splunk-hec 1.2.8 → 1.2.9
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/Gemfile.lock +2 -2
- data/VERSION +1 -1
- data/lib/fluent/plugin/out_splunk.rb +2 -2
- data/lib/fluent/plugin/out_splunk_hec.rb +23 -9
- data/test/fluent/plugin/out_splunk_hec_test.rb +12 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3fbf155dc5649294d859dbdc4bc9967681f8d4051f93e7c108bf926961f93afe
|
4
|
+
data.tar.gz: 1bf76e9bb39b3bbf9dc0ae87f8ca38046cbe4f30a86ae0c6c6fef4be257fbb74
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5228076cb01aa5a32c77f7d532ecb7052f57366e2dbd9d5f1e3fcae1cb7d5ca042bec12393f4c760ce05c4205068473852fdf020255b45d20679af2ee623da85
|
7
|
+
data.tar.gz: 82a15c018c694133cb6e5d4891413ba272087f385586582ae5b00a91b78bc455918116ee078f52f5cc26f7440852c4f2549d1b1730f2c5f3480130896f7d6fe7
|
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.9)
|
5
5
|
fluentd (>= 1.4)
|
6
6
|
multi_json (~> 1.13)
|
7
7
|
net-http-persistent (~> 3.1)
|
@@ -131,4 +131,4 @@ DEPENDENCIES
|
|
131
131
|
webmock (~> 3.5.0)
|
132
132
|
|
133
133
|
BUNDLED WITH
|
134
|
-
2.2.
|
134
|
+
2.2.33
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.
|
1
|
+
1.2.9
|
@@ -193,8 +193,8 @@ module Fluent::Plugin
|
|
193
193
|
v = instance_variable_get "@#{f}"
|
194
194
|
next unless v
|
195
195
|
|
196
|
-
if v
|
197
|
-
instance_variable_set "@#{f}", ->(tag, _) { tag }
|
196
|
+
if v.include? TAG_PLACEHOLDER
|
197
|
+
instance_variable_set "@#{f}", ->(tag, _) { v.gsub(TAG_PLACEHOLDER, tag) }
|
198
198
|
else
|
199
199
|
instance_variable_set "@#{f}", ->(_, _) { v }
|
200
200
|
end
|
@@ -31,13 +31,16 @@ module Fluent::Plugin
|
|
31
31
|
config_param :protocol, :enum, list: %i[http https], default: :https
|
32
32
|
|
33
33
|
desc 'The hostname/IP to HEC, or HEC load balancer.'
|
34
|
-
config_param :hec_host, :string
|
34
|
+
config_param :hec_host, :string, default: ''
|
35
35
|
|
36
36
|
desc 'The port number to HEC, or HEC load balancer.'
|
37
37
|
config_param :hec_port, :integer, default: 8088
|
38
38
|
|
39
|
+
desc 'Full url to connect tosplunk. Example: https://mydomain.com:8088/apps/splunk'
|
40
|
+
config_param :full_url, :string, default: ''
|
41
|
+
|
39
42
|
desc 'The HEC token.'
|
40
|
-
config_param :hec_token, :string
|
43
|
+
config_param :hec_token, :string, secret: true
|
41
44
|
|
42
45
|
desc 'If a connection has not been used for this number of seconds it will automatically be reset upon the next use to avoid attempting to send to a closed connection. nil means no timeout.'
|
43
46
|
config_param :idle_timeout, :integer, default: 5
|
@@ -132,7 +135,7 @@ module Fluent::Plugin
|
|
132
135
|
|
133
136
|
def configure(conf)
|
134
137
|
super
|
135
|
-
|
138
|
+
raise Fluent::ConfigError, 'One of `hec_host` or `full_url` is required.' if @hec_host.empty? && @full_url.empty?
|
136
139
|
check_metric_configs
|
137
140
|
pick_custom_format_method
|
138
141
|
end
|
@@ -279,9 +282,17 @@ module Fluent::Plugin
|
|
279
282
|
end
|
280
283
|
|
281
284
|
def construct_api
|
282
|
-
|
285
|
+
if @full_url.empty?
|
286
|
+
URI("#{@protocol}://#{@hec_host}:#{@hec_port}/services/collector")
|
287
|
+
else
|
288
|
+
URI("#{@full_url.delete_suffix("/")}/services/collector")
|
289
|
+
end
|
283
290
|
rescue StandardError
|
284
|
-
|
291
|
+
if @full_url.empty?
|
292
|
+
raise Fluent::ConfigError, "hec_host (#{@hec_host}) and/or hec_port (#{@hec_port}) are invalid."
|
293
|
+
else
|
294
|
+
raise Fluent::ConfigError, "full_url (#{@full_url}) is invalid."
|
295
|
+
end
|
285
296
|
end
|
286
297
|
|
287
298
|
def new_connection
|
@@ -312,10 +323,13 @@ module Fluent::Plugin
|
|
312
323
|
post.body = chunk.read
|
313
324
|
log.debug { "[Sending] Chunk: #{dump_unique_id_hex(chunk.unique_id)}(#{post.body.bytesize}B)." }
|
314
325
|
log.trace { "POST #{@api} body=#{post.body}" }
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
326
|
+
begin
|
327
|
+
t1 = Time.now
|
328
|
+
response = @conn.request @api, post
|
329
|
+
t2 = Time.now
|
330
|
+
rescue Net::HTTP::Persistent::Error => e
|
331
|
+
raise e.cause
|
332
|
+
end
|
319
333
|
|
320
334
|
raise_err = response.code.to_s.start_with?('5') || (!@consume_chunk_on_4xx_errors && response.code.to_s.start_with?('4'))
|
321
335
|
|
@@ -64,7 +64,7 @@ describe Fluent::Plugin::SplunkHecOutput do
|
|
64
64
|
|
65
65
|
describe 'hec_host validation' do
|
66
66
|
describe 'invalid host' do
|
67
|
-
it 'should require hec_host' do
|
67
|
+
it 'should require hec_host or full_url' do
|
68
68
|
expect { create_hec_output_driver }.must_raise Fluent::ConfigError
|
69
69
|
end
|
70
70
|
|
@@ -78,6 +78,17 @@ describe Fluent::Plugin::SplunkHecOutput do
|
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
81
|
+
describe 'full_url validation' do
|
82
|
+
describe 'invalid full_url' do
|
83
|
+
it { expect { create_hec_output_driver(full_url: '%bad-host%.com') }.must_raise Fluent::ConfigError }
|
84
|
+
end
|
85
|
+
describe 'good full_url' do
|
86
|
+
it {
|
87
|
+
expect(create_hec_output_driver('full_url https://splunk.com').instance.full_url).must_equal 'https://splunk.com'
|
88
|
+
}
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
81
92
|
it 'should send request to Splunk' do
|
82
93
|
req = verify_sent_events do |batch|
|
83
94
|
expect(batch.size).must_equal 2
|
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.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Splunk Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|
@@ -222,12 +222,12 @@ specification_version: 4
|
|
222
222
|
summary: Fluentd plugin for Splunk HEC.
|
223
223
|
test_files:
|
224
224
|
- test/test_helper.rb
|
225
|
-
- test/
|
226
|
-
- test/fluent/plugin/out_splunk_ingest_api_test.rb
|
227
|
-
- test/lib/webmock/http_lib_adapters/curb_adapter.rb
|
228
|
-
- test/lib/webmock/http_lib_adapters/em_http_request_adapter.rb
|
225
|
+
- test/lib/webmock/http_lib_adapters/manticore_adapter.rb
|
229
226
|
- test/lib/webmock/http_lib_adapters/http_rb_adapter.rb
|
230
227
|
- test/lib/webmock/http_lib_adapters/typhoeus_hydra_adapter.rb
|
231
|
-
- test/lib/webmock/http_lib_adapters/
|
228
|
+
- test/lib/webmock/http_lib_adapters/em_http_request_adapter.rb
|
232
229
|
- test/lib/webmock/http_lib_adapters/excon_adapter.rb
|
230
|
+
- test/lib/webmock/http_lib_adapters/curb_adapter.rb
|
233
231
|
- test/lib/webmock/http_lib_adapters/patron_adapter.rb
|
232
|
+
- test/fluent/plugin/out_splunk_ingest_api_test.rb
|
233
|
+
- test/fluent/plugin/out_splunk_hec_test.rb
|