fluent-plugin-splunk-hec 1.1.0 → 1.2.3

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
  SHA256:
3
- metadata.gz: 4460c822fc2a85e65234099aca29574dcdc17e4403c3fbc1da7c48d4a5fd9608
4
- data.tar.gz: 9950c15e61273b9dcd597c8fc3ff83dad5be0f7f741bb67a5b296ccd98c1a366
3
+ metadata.gz: e144a9789e7458c60740d05f2a53cbf18787991f19f61aeff224c0114d6f5001
4
+ data.tar.gz: 96edae330175b273c041c933a03fa052a6a41f9fb736bb28549d2405668dac71
5
5
  SHA512:
6
- metadata.gz: 39fcf467dea44451264c3a56e0ab1442b196ab7c424112969e997567174ba9b4e0ce1def62535bb72a5a5af88d45ac16f53273cc590c2c9636d57e927e7b6b2e
7
- data.tar.gz: d50f4a1df76c1d2661d387cfdedb0e47d4621526b7e94b73a0e06c3965b38c9b53ca87a83f48df60f64da553ec62c1bd9bbae1301b9677f0c7dbd316bbf1fa2f
6
+ metadata.gz: fe149f5fe894e6cccbae1c17d181f84bb7ec0ce4a71d7f4da0c71eb663e6d82134bd1783eb8901c10183face7c713f4b0d60117f76d5647180eeea345deac774
7
+ data.tar.gz: 7bbda982e056231f17adc319045d6321d70641b0fc11d19d58dbbf5291251b79cdb0f2f84f6ed6fb69d06cdaf731bb44cc296e4e7de945df72a20d69090e75db
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  group :test do
@@ -1,46 +1,103 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fluent-plugin-splunk-hec (1.1.0)
5
- fluentd (~> 1.4)
4
+ fluent-plugin-splunk-hec (1.2.3)
5
+ fluentd (>= 1.4)
6
6
  multi_json (~> 1.13)
7
- net-http-persistent (~> 3.0)
7
+ net-http-persistent (~> 3.1)
8
+ openid_connect (~> 1.1.8)
9
+ prometheus-client (< 0.10.0)
8
10
 
9
11
  GEM
10
12
  remote: https://rubygems.org/
11
13
  specs:
12
- addressable (2.6.0)
13
- public_suffix (>= 2.0.2, < 4.0)
14
+ activemodel (5.2.4.3)
15
+ activesupport (= 5.2.4.3)
16
+ activesupport (5.2.4.3)
17
+ concurrent-ruby (~> 1.0, >= 1.0.2)
18
+ i18n (>= 0.7, < 2)
19
+ minitest (~> 5.1)
20
+ tzinfo (~> 1.1)
21
+ addressable (2.7.0)
22
+ public_suffix (>= 2.0.2, < 5.0)
23
+ aes_key_wrap (1.0.1)
24
+ ast (2.4.0)
25
+ attr_required (1.0.1)
26
+ bindata (2.4.4)
27
+ concurrent-ruby (1.1.6)
14
28
  connection_pool (2.2.2)
15
- cool.io (1.5.3)
29
+ cool.io (1.6.0)
16
30
  crack (0.4.3)
17
31
  safe_yaml (~> 1.0.0)
18
- dig_rb (1.0.1)
19
- docile (1.3.1)
20
- fluentd (1.4.0)
32
+ docile (1.3.2)
33
+ fluentd (1.9.2)
21
34
  cool.io (>= 1.4.5, < 2.0.0)
22
- dig_rb (~> 1.0.0)
23
35
  http_parser.rb (>= 0.5.1, < 0.7.0)
24
- msgpack (>= 0.7.0, < 2.0.0)
36
+ msgpack (>= 1.3.1, < 2.0.0)
25
37
  serverengine (>= 2.0.4, < 3.0.0)
26
38
  sigdump (~> 0.2.2)
27
39
  strptime (>= 0.2.2, < 1.0.0)
28
- tzinfo (~> 1.0)
40
+ tzinfo (>= 1.0, < 3.0)
29
41
  tzinfo-data (~> 1.0)
30
42
  yajl-ruby (~> 1.0)
31
- hashdiff (0.3.8)
32
- http_parser.rb (0.6.0)
33
- json (2.1.0)
34
- minitest (5.11.3)
35
- msgpack (1.2.7)
36
- multi_json (1.13.1)
37
- net-http-persistent (3.0.0)
43
+ hashdiff (1.0.0)
44
+ http_parser.rb (0.5.3)
45
+ httpclient (2.8.3)
46
+ i18n (1.8.2)
47
+ concurrent-ruby (~> 1.0)
48
+ jaro_winkler (1.5.4)
49
+ json (2.3.0)
50
+ json-jwt (1.11.0)
51
+ activesupport (>= 4.2)
52
+ aes_key_wrap
53
+ bindata
54
+ mail (2.7.1)
55
+ mini_mime (>= 0.1.1)
56
+ mini_mime (1.0.2)
57
+ minitest (5.14.0)
58
+ msgpack (1.3.3)
59
+ multi_json (1.14.1)
60
+ net-http-persistent (3.1.0)
38
61
  connection_pool (~> 2.2)
39
- power_assert (1.1.3)
40
- public_suffix (3.0.3)
41
- rake (12.3.2)
42
- safe_yaml (1.0.4)
43
- serverengine (2.1.0)
62
+ openid_connect (1.1.8)
63
+ activemodel
64
+ attr_required (>= 1.0.0)
65
+ json-jwt (>= 1.5.0)
66
+ rack-oauth2 (>= 1.6.1)
67
+ swd (>= 1.0.0)
68
+ tzinfo
69
+ validate_email
70
+ validate_url
71
+ webfinger (>= 1.0.1)
72
+ parallel (1.19.1)
73
+ parser (2.7.0.2)
74
+ ast (~> 2.4.0)
75
+ power_assert (1.1.5)
76
+ powerpack (0.1.2)
77
+ prometheus-client (0.9.0)
78
+ quantile (~> 0.2.1)
79
+ public_suffix (4.0.3)
80
+ quantile (0.2.1)
81
+ rack (2.2.3)
82
+ rack-oauth2 (1.10.1)
83
+ activesupport
84
+ attr_required
85
+ httpclient
86
+ json-jwt (>= 1.11.0)
87
+ rack
88
+ rainbow (3.0.0)
89
+ rake (12.3.3)
90
+ rubocop (0.63.1)
91
+ jaro_winkler (~> 1.5.1)
92
+ parallel (~> 1.10)
93
+ parser (>= 2.5, != 2.5.1.1)
94
+ powerpack (~> 0.1)
95
+ rainbow (>= 2.2.2, < 4.0)
96
+ ruby-progressbar (~> 1.7)
97
+ unicode-display_width (~> 1.4.0)
98
+ ruby-progressbar (1.10.1)
99
+ safe_yaml (1.0.5)
100
+ serverengine (2.2.1)
44
101
  sigdump (~> 0.2.2)
45
102
  sigdump (0.2.4)
46
103
  simplecov (0.16.1)
@@ -49,13 +106,27 @@ GEM
49
106
  simplecov-html (~> 0.10.0)
50
107
  simplecov-html (0.10.2)
51
108
  strptime (0.2.3)
52
- test-unit (3.3.0)
109
+ swd (1.1.2)
110
+ activesupport (>= 3)
111
+ attr_required (>= 0.0.5)
112
+ httpclient (>= 2.4)
113
+ test-unit (3.3.5)
53
114
  power_assert
54
115
  thread_safe (0.3.6)
55
- tzinfo (1.2.5)
116
+ tzinfo (1.2.6)
56
117
  thread_safe (~> 0.1)
57
- tzinfo-data (1.2018.9)
118
+ tzinfo-data (1.2019.3)
58
119
  tzinfo (>= 1.0.0)
120
+ unicode-display_width (1.4.1)
121
+ validate_email (0.1.6)
122
+ activemodel (>= 3.0)
123
+ mail (>= 2.2.5)
124
+ validate_url (1.0.8)
125
+ activemodel (>= 3.0.0)
126
+ public_suffix
127
+ webfinger (1.1.0)
128
+ activesupport
129
+ httpclient (>= 2.4)
59
130
  webmock (3.5.1)
60
131
  addressable (>= 2.3.6)
61
132
  crack (>= 0.3.2)
@@ -69,10 +140,11 @@ DEPENDENCIES
69
140
  bundler (~> 2.0)
70
141
  fluent-plugin-splunk-hec!
71
142
  minitest (~> 5.0)
72
- rake (~> 12.0)
143
+ rake (>= 12.0)
144
+ rubocop (~> 0.63.1)
73
145
  simplecov
74
146
  test-unit (~> 3.0)
75
147
  webmock (~> 3.5.0)
76
148
 
77
149
  BUNDLED WITH
78
- 2.0.1
150
+ 2.1.4
data/LICENSE CHANGED
@@ -214,21 +214,89 @@ Apache License 2.0
214
214
  The following components are provided under the Apache License 2.0. See project link for details.
215
215
 
216
216
  (Apache License 2.0) fluentd (https://github.com/fluent/fluentd/blob/master/LICENSE)
217
+ (Apache License 2.0) ffi-compiler (https://github.com/ffi/ffi-compiler/blob/master/LICENSE)
218
+ (Apache License 2.0) msgpack (https://github.com/msgpack/msgpack-ruby/blob/master/LICENSE)
219
+ (Apache License 2.0) prometheus-client (https://github.com/prometheus/client_ruby/blob/master/LICENSE)
220
+ (Apache License 2.0) quantile (https://github.com/matttproud/ruby_quantile_estimation/blob/master/LICENSE)
221
+ (Apache License 2.0) serverengine (https://github.com/treasure-data/serverengine/blob/master/LICENSE)
222
+ (Apache License 2.0) addressable (https://github.com/sporkmonger/addressable/blob/master/LICENSE.txt)
223
+ (Apache License 2.0) fluent-plugin-kubernetes_metadata_filter (https://github.com/fabric8io/fluent-plugin-kubernetes_metadata_filter/blob/master/LICENSE.txt)
224
+ (Apache License 2.0) thread_safe (https://github.com/ruby-concurrency/thread_safe/blob/master/LICENSE)
217
225
 
218
226
  ========================================================================
219
227
  MIT licenses
220
228
  ========================================================================
221
229
  The following components are provided under the MIT License. See project link for details.
222
230
 
223
- (MIT License) multi_json (https://github.com/intridea/multi_json/blob/master/LICENSE.md)
224
- (MIT License) net-http-persistent (https://github.com/drbrain/net-http-persistent/blob/master/README.rdoc#license)
231
+ (MIT License) activemodel (https://github.com/rails/rails/blob/v6.0.2.1/activemodel/MIT-LICENSE)
232
+ (MIT License) activesupport (https://github.com/rails/rails/blob/v6.0.2.1/activesupport/MIT-LICENSE)
233
+ (MIT License) aes_key_wrap (https://github.com/tomdalling/aes_key_wrap/blob/master/LICENSE.txt)
234
+ (MIT License) ast (https://github.com/whitequark/ast/blob/master/LICENSE.MIT)
235
+ (MIT License) attr_required (https://github.com/nov/attr_required/blob/master/LICENSE)
225
236
  (MIT License) bundler (https://github.com/bundler/bundler/blob/master/LICENSE.md)
237
+ (MIT License) concurrent-ruby (https://github.com/ruby-concurrency/concurrent-ruby/blob/master/LICENSE.md)
238
+ (MIT License) connection_pool (https://github.com/mperham/connection_pool/blob/master/LICENSE)
239
+ (MIT License) cool.io (https://github.com/tarcieri/cool.io/blob/master/LICENSE)
240
+ (MIT License) crack (https://github.com/jnunemaker/crack/blob/master/LICENSE)
241
+ (MIT License) docile (https://github.com/ms-ati/docile/blob/master/LICENSE)
242
+ (MIT License) hashdiff (https://github.com/liufengyun/hashdiff/blob/master/LICENSE)
243
+ (MIT License) http (https://github.com/httprb/http/blob/master/LICENSE.txt)
244
+ (MIT License) http_parser.rb (https://github.com/tmm1/http_parser.rb/blob/master/LICENSE-MIT)
245
+ (MIT License) http-accept (https://github.com/socketry/http-accept#license)
246
+ (MIT License) http-cookie (https://github.com/sparklemotion/http-cookie/blob/master/LICENSE.txt)
247
+ (MIT License) http-form_data (https://github.com/httprb/form_data/blob/master/LICENSE.txt)
248
+ (MIT License) http-parser (https://github.com/cotag/http-parser/blob/master/LICENSE)
249
+ (MIT License) i18n (https://github.com/ruby-i18n/i18n/blob/master/MIT-LICENSE)
250
+ (MIT License) jaro_winkler (https://github.com/tonytonyjan/jaro_winkler/blob/master/LICENSE.txt)
251
+ (MIT License) json-jwt (https://github.com/tonytonyjan/jaro_winkler/blob/master/LICENSE.txt)
252
+ (MIT License) kubeclient (https://github.com/abonas/kubeclient/blob/master/LICENSE.txt)
253
+ (MIT License) lru_redux (https://github.com/SamSaffron/lru_redux/blob/master/LICENSE.txt)
254
+ (MIT License) mail (https://github.com/mikel/mail/blob/master/MIT-LICENSE)
255
+ (MIT License) mime-types (https://github.com/mime-types/ruby-mime-types/blob/master/Licence.md)
256
+ (MIT License) mime-types-data (https://github.com/mime-types/mime-types-data/blob/master/Licence.md)
257
+ (MIT License) mini_mime (https://github.com/discourse/mini_mime/blob/master/LICENSE.txt)
258
+ (MIT License) minitest (https://github.com/seattlerb/minitest)
259
+ (MIT License) multi_json (https://github.com/intridea/multi_json/blob/master/LICENSE.md)
260
+ (MIT License) net-http-persistent (https://github.com/drbrain/net-http-persistent)
261
+ (MIT License) netrc (https://github.com/heroku/netrc/blob/master/LICENSE.md)
262
+ (MIT License) openid_connect (https://github.com/nov/openid_connect/blob/master/LICENSE)
263
+ (MIT License) parallel (https://github.com/grosser/parallel/blob/master/MIT-LICENSE.txt)
264
+ (MIT License) parser (https://github.com/whitequark/parser/blob/master/LICENSE.txt)
265
+ (MIT License) powerpack (https://github.com/bbatsov/powerpack/blob/master/LICENSE.txt)
266
+ (MIT License) public_suffix (https://github.com/weppos/publicsuffix-ruby/blob/master/LICENSE.txt)
267
+ (MIT License) rack (https://github.com/rack/rack/blob/master/MIT-LICENSE)
268
+ (MIT License) rack-oauth2 (https://github.com/nov/rack-oauth2/blob/master/LICENSE)
269
+ (MIT License) rainbow (https://github.com/sickill/rainbow/blob/master/LICENSE)
226
270
  (MIT License) rake (https://github.com/ruby/rake/blob/master/MIT-LICENSE)
271
+ (MIT License) recursive-open-struct (https://github.com/aetherknight/recursive-open-struct/blob/master/LICENSE.txt)
272
+ (MIT License) rest-client (https://github.com/rest-client/rest-client/blob/master/LICENSE)
273
+ (MIT License) rubocop (https://github.com/rubocop-hq/rubocop/blob/master/LICENSE.txt)
274
+ (MIT License) ruby-progressbar (https://github.com/jfelchner/ruby-progressbar/blob/master/LICENSE.txt)
275
+ (MIT License) safe_yaml (https://github.com/dtao/safe_yaml/blob/master/LICENSE.txt)
276
+ (MIT License) sigdump (https://github.com/frsyuki/sigdump/blob/master/LICENSE)
277
+ (MIT License) simplecov (https://github.com/colszowka/simplecov/blob/master/LICENSE)
278
+ (MIT License) simplecov-html (https://github.com/colszowka/simplecov-html/blob/master/LICENSE)
279
+ (MIT License) swd (https://github.com/nov/SWD/blob/master/LICENSE)
280
+ (MIT License) tzinfo (https://github.com/tzinfo/tzinfo/blob/master/LICENSE)
281
+ (MIT License) tzinfo-data (https://github.com/tzinfo/tzinfo-data/blob/master/LICENSE)
282
+ (MIT License) unf_ext (https://github.com/knu/ruby-unf_ext/blob/master/LICENSE.txt)
283
+ (MIT License) unicode-display_width (https://github.com/janlelis/unicode-display_width/blob/master/MIT-LICENSE.txt)
284
+ (MIT License) validate_email (https://github.com/perfectline/validates_email/blob/master/MIT-LICENSE)
285
+ (MIT License) validate_url (https://github.com/perfectline/validates_url/blob/master/LICENSE.md)
286
+ (MIT License) webfinger (https://github.com/nov/webfinger/blob/master/LICENSE.txt)
227
287
  (MIT License) webmock (https://github.com/bblimke/webmock/blob/master/LICENSE)
228
- (MIT License) minitest (https://github.com/seattlerb/minitest/blob/master/README.rdoc#license)
288
+ (MIT License) yajl-ruby (https://github.com/brianmario/yajl-ruby/blob/master/LICENSE)
229
289
 
230
290
  ========================================================================
231
- For test-unit:
291
+ For the rest:
232
292
  ========================================================================
233
293
 
234
- See https://github.com/test-unit/test-unit/blob/master/COPYING
294
+ bindata (https://github.com/dmendel/bindata/blob/master/COPYING)
295
+ httpclient (https://github.com/nahi/httpclient/#license)
296
+ json (https://www.ruby-lang.org/en/about/license.txt)
297
+ test-unit (https://github.com/test-unit/test-unit)
298
+ unf (https://github.com/knu/ruby-unf/blob/master/LICENSE)
299
+ power_assert (https://github.com/k-tsj/power_assert/blob/master/BSDL)
300
+ strptime (https://github.com/nurse/strptime/blob/master/LICENSE.txt)
301
+ domain_name (https://github.com/knu/ruby-domain_name/blob/master/LICENSE.txt)
302
+ ffi (https://github.com/ffi/ffi/blob/master/LICENSE)
data/README.md CHANGED
@@ -1,7 +1,9 @@
1
1
  [![CircleCI](https://circleci.com/gh/git-lfs/git-lfs.svg?style=shield&circle-token=856152c2b02bfd236f54d21e1f581f3e4ebf47ad)](https://circleci.com/gh/splunk/fluent-plugin-splunk-hec)
2
2
  # fluent-plugin-splunk-hec
3
3
 
4
- [Fluentd](https://fluentd.org/) output plugin to send events and metrics to [Splunk](https://www.splunk.com) over the HEC (HTTP Event Collector) API.
4
+ [Fluentd](https://fluentd.org/) output plugin to send events and metrics to [Splunk](https://www.splunk.com) in 2 modes:<br/>
5
+ 1) Via Splunk's [HEC (HTTP Event Collector) API](http://dev.splunk.com/view/event-collector/SP-CAAAE7F)<br/>
6
+ 2) Via the Splunk Cloud Services (SCS) [Ingest API](https://sdc.splunkbeta.com/reference/api/ingest/v1beta2)
5
7
 
6
8
  ## Installation
7
9
 
@@ -27,9 +29,7 @@ $ bundle
27
29
 
28
30
  * See also: [Output Plugin Overview](https://docs.fluentd.org/v1.0/articles/output-plugin-overview)
29
31
 
30
- ### Examples
31
-
32
- #### Example 1: Minimum Configs
32
+ #### Example 1: Minimum HEC Configuration
33
33
 
34
34
  ```
35
35
  <match **>
@@ -42,7 +42,26 @@ $ bundle
42
42
 
43
43
  This example is very basic, it just tells the plugin to send events to Splunk HEC on `https://12.34.56.78:8088` (https is the default protocol), using the HEC token `00000000-0000-0000-0000-000000000000`. It will use whatever index, source, sourcetype are configured in HEC. And the `host` of each event is the hostname of the machine which running fluentd.
44
44
 
45
- #### Example 2: Overwrite HEC defaults
45
+
46
+ #### Example 2: SCS Ingest Configuration example
47
+
48
+ ```
49
+ <match **>
50
+ @type splunk_ingest_api
51
+ service_client_identifier xxxxxxxx
52
+ service_client_secret_key xxxx-xxxxx
53
+ token_endpoint /token
54
+ ingest_auth_host auth.scp.splunk.com
55
+ ingest_api_host api.scp.splunk.com
56
+ ingest_api_tenant <mytenant>
57
+ ingest_api_events_endpoint /<mytenant>/ingest/v1beta2/events
58
+ debug_http false
59
+ </match>
60
+ ```
61
+
62
+ This example shows the configuration to be used for sending events to ingest API. This configuration shows how to use `service_client_identifier`, `service_client_secret_key` to get token from `token_endpoint` and send events to `ingest_api_host` for the tenant `ingest_api_tenant` at the endpoint `ingest_api_events_endpoint`. The `debug_http` flag indicates whether the user wants to print debug logs to stdout.
63
+
64
+ #### Example 3: Overwrite HEC defaults
46
65
 
47
66
  ```
48
67
  <match **>
@@ -72,21 +91,21 @@ Sometimes you want to use the values from the input event for these parameters,
72
91
  </match>
73
92
  ```
74
93
 
75
- In the second example (in order to keep it concise, we just omitted the repeating parameters, and we will keep doing so in the following examples), it uses the `source_key` config to set the source of event to the value of the event's `file_path` field. Given an input event like
94
+ In this example (in order to keep it concise, we just omitted the repeating parameters, and we will keep doing so in the following examples), it uses the `source_key` config to set the source of event to the value of the event's `file_path` field. Given an input event like
76
95
  ```javascript
77
96
  {"file_path": "/var/log/splunk.log", "message": "This is an exmaple.", "level": "info"}
78
97
  ```
79
- Then the source for this event will be "/var/log/splunk.log". And the "file\_path" field will be removed from the input event, so what you will eventually get ingested in Splunk is
98
+ Then the source for this event will be "/var/log/splunk.log". And the "file\_path" field will be removed from the input event, so what you will eventually get ingested in Splunk is:
80
99
  ```javascript
81
- {"message": "This is an exmaple.", "level": "info"}
100
+ {"message": "This is an example.", "level": "info"}
82
101
  ```
83
102
  If you want to keep "file\_path" in the event, you can use `keep_keys`.
84
103
 
85
104
  Besides `source_key` there are also other `*_key` parameters, check the parameters details below.
86
105
 
87
- #### Example 3: Sending metrics
106
+ #### Example 4: Sending metrics
88
107
 
89
- [Metrics](https://docs.splunk.com/Documentation/Splunk/latest/Metrics/Overview) is avaialble since Splunk 7.0.0, you can use this output plugin to send events as metrics to a Splunk metric index by setting `data_type` to "metric".
108
+ [Metrics](https://docs.splunk.com/Documentation/Splunk/latest/Metrics/Overview) is available since Splunk 7.0.0, you can use this output plugin to send events as metrics to a Splunk metric index by setting `data_type` to "metric".
90
109
 
91
110
  ```
92
111
  <match **>
@@ -98,7 +117,7 @@ Besides `source_key` there are also other `*_key` parameters, check the paramete
98
117
  </match>
99
118
  ```
100
119
 
101
- With this configuration, the plugin will treat each input event as a collection of metrics, i.e. each key-varlue pair in the event is a metric name-value pair. For example, given an input event like
120
+ With this configuration, the plugin will treat each input event as a collection of metrics, i.e. each key-value pair in the event is a metric name-value pair. For example, given an input event like
102
121
 
103
122
  ```javascript
104
123
  {"cpu/usage": 0.5, "cpu/rate": 10, "memory/usage": 100, "memory/rss": 90}
@@ -129,107 +148,142 @@ You should change the configuration to
129
148
 
130
149
  All other properties of the input (in this example, "app"), will be sent as dimensions of the metric. You can use the `<fields>` section to customize the dimensions.
131
150
 
132
- ### Parameters
151
+ ### Type of plugin
133
152
 
134
153
  #### @type
135
154
 
136
- This value must be `splunk_hec`.
137
-
138
- #### protocol (enum) (optional)
155
+ This value must be set to `splunk_hec` when using HEC API and to `splunk_ingest_api` when using the ingest API. Only one type either `splunk_hec` or `splunk_ingest_api` is expected to be used when configuring this plugin.
139
156
 
140
- Protocol to use to call HEC API.
157
+ ### Parameters for `splunk_hec`
141
158
 
142
- Available values: http, https
159
+ #### protocol (enum) (optional)
143
160
 
144
- Default value: `https`.
161
+ This is the protocol to use for calling the HEC API. Available values are: http, https. This parameter is
162
+ set to `https` by default.
145
163
 
146
164
  ### hec_host (string) (required)
147
165
 
148
- The hostname/IP to HEC, or HEC load balancer.
166
+ The hostname/IP for the HEC token or the HEC load balancer.
149
167
 
150
168
  ### hec_port (integer) (optional)
151
169
 
152
- The port number to HEC, or HEC load balancer.
153
-
154
- Default value: `8088`.
170
+ The port number for the HEC token or the HEC load balancer. The default value is `8088`.
155
171
 
156
172
  ### hec_token (string) (required)
157
173
 
158
- The HEC token.
174
+ Identifier for the HEC token.
159
175
 
160
- ### index (string) (optional)
176
+ ### metrics_from_event (bool) (optional)
161
177
 
162
- The Splunk index to index events. When not set, will be decided by HEC. This is exclusive with `index_key`.
178
+ When `data_type` is set to "metric", the ingest API will treat every key-value pair in the input event as a metric name-value pair. Set `metrics_from_event` to `false` to disable this behavior and use `metric_name_key` and `metric_value_key` to define metrics. The default value is `true`.
163
179
 
164
- ### index_key (string) (optional)
180
+ ### metric_name_key (string) (optional)
165
181
 
166
- Field name to contain Splunk index name. This is exclusive with `index`.
182
+ Field name that contains the metric name. This parameter only works in conjunction with the `metrics_from_event` paramter. When this prameter is set, the `metrics_from_event` parameter is automatically set to `false`.
167
183
 
168
- ### host (string) (optional)
184
+ ### metric_value_key (string) (optional)
169
185
 
170
- The host field for events. This is exclusive with `host_key`.
186
+ Field name that contains the metric value, this parameter is required when `metric_name_key` is configured.
171
187
 
172
- Default value: the hostname of the host machine.
188
+ ### coerce_to_utf8 (bool) (optional)
173
189
 
174
- ### host_key (string) (optional)
190
+ Indicates whether to allow non-UTF-8 characters in user logs. If set to `true`, any non-UTF-8 character is replaced by the string specified in `non_utf8_replacement_string`. If set to `false`, the Ingest API errors out any non-UTF-8 characters. This parameter is set to `true` by default.
175
191
 
176
- Field name to contain host. This is exclusive with `host`.
192
+ ### non_utf8_replacement_string (string) (optional)
177
193
 
178
- ### source (string) (optional)
194
+ If `coerce_to_utf8` is set to `true`, any non-UTF-8 character is replaced by the string you specify in this parameter. The parameter is set to `' '` by default.
179
195
 
180
- The source field for events, when not set, will be decided by HEC. This is exclusive with `source_key`.
196
+ ### Parameters for `splunk_ingest_api`
181
197
 
182
- ### source_key (string) (optional)
198
+ ### service_client_identifier: (optional) (string)
183
199
 
184
- Field name to contain source. This is exclusive with `source`.
200
+ Splunk uses the client identifier to make authorized requests to the ingest API.
185
201
 
186
- ### sourcetype (string) (optional)
202
+ ### service_client_secret_key: (string)
187
203
 
188
- The sourcetype field for events, when not set, will be decided by HEC. This is exclusive with `sourcetype_key`.
204
+ The client identifier uses this authorization to make requests to the ingest API.
189
205
 
190
- ### sourcetype_key (string) (optional)
206
+ ### token_endpoint: (string)
191
207
 
192
- Field name to contain sourcetype. This is exclusive with `sourcetype`.
208
+ This value indicates which endpoint Splunk should look to for the authorization token necessary for requests to the ingest API.
193
209
 
194
- ### metrics_from_event (bool) (optional)
210
+ ### ingest_api_host: (string)
195
211
 
196
- When `data_type` is set to "metric", by default it will treat every key-value pair in the input event as a metric name-value pair. Set `metrics_from_event` to `false` to disable this behavior and use `metric_name_key` and `metric_value_key` to define metrics.
212
+ Indicates which url/hostname to use for requests to the ingest API.
197
213
 
198
- Default value: `true`.
214
+ ### ingest_api_tenant: (string)
199
215
 
200
- ### metric_name_key (string) (optional)
216
+ Indicates which tenant Splunk should use for requests to the ingest API.
201
217
 
202
- Field name to contain metric name. This is exclusive with `metrics_from_event`, when this is set, `metrics_from_event` will be set to `false`.
218
+ ### ingest_api_events_endpoint: (string)
203
219
 
204
- ### metric_value_key (string) (optional)
220
+ Indicates which endpoint to use for requests to the ingest API.
205
221
 
206
- Field name to contain metric value, this is required when `metric_name_key` is set.
222
+ ### debug_http: (bool)
223
+ Set to True if you want to debug requests and responses to ingest API. Default is false.
207
224
 
208
- ### keep_keys (bool) (optional)
225
+ ### Parameters for both `splunk_hec` and `splunk_ingest_api`
209
226
 
210
- By default, all the fields used by the `*_key` parameters will be removed from the original input events. To change this behavior, set this parameter to `true`.
227
+ ### index (string) (optional)
211
228
 
212
- Default value: `true`.
229
+ Identifier for the Splunk index to be used for indexing events. If this parameter is not set,
230
+ the indexer is chosen by HEC. Cannot set both `index` and `index_key` parameters at the same time.
213
231
 
214
- ### coerce_to_utf8 (bool) (optional)
232
+ ### index_key (string) (optional)
233
+
234
+ The field name that contains the Splunk index name. Cannot set both `index` and `index_key` parameters at the same time.
215
235
 
216
- Whether to allow non-UTF-8 characters in user logs. If set to true, any non-UTF-8 character would be replaced by the string specified by `non_utf8_replacement_string`. If set to false, any non-UTF-8 character would trigger the plugin to error out.
236
+ ### host (string) (optional)
217
237
 
218
- Default value: `true`.
238
+ The host location for events. Cannot set both `host` and `host_key` parameters at the same time.
239
+ If the parameter is not set, the default value is the hostname of the machine runnning fluentd.
219
240
 
220
- ### non_utf8_replacement_string (string) (optional)
241
+ ### host_key (string) (optional)
242
+
243
+ Key for the host location. Cannot set both `host` and `host_key` parameters at the same time.
221
244
 
222
- If `coerce_to_utf8` is set to true, any non-UTF-8 character would be replaced by the string specified here.
245
+ ### source (string) (optional)
246
+
247
+ The source field for events. If this parameter is not set, the source will be decided by HEC.
248
+ Cannot set both `source` and `source_key` parameters at the same time.
249
+
250
+ ### source_key (string) (optional)
251
+
252
+ Field name to contain source. Cannot set both `source` and `source_key` parameters at the same time.
253
+
254
+ ### sourcetype (string) (optional)
223
255
 
224
- Default value: `' '`.
256
+ The sourcetype field for events. When not set, the sourcetype is decided by HEC.
257
+ Cannot set both `source` and `source_key` parameters at the same time.
258
+
259
+ ### sourcetype_key (string) (optional)
260
+
261
+ Field name that contains the sourcetype. Cannot set both `source` and `source_key` parameters at the same time.
262
+
263
+ ### fields (init) (optional)
264
+
265
+ 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.
266
+
267
+ ### keep_keys (boolean) (Optional)
268
+
269
+ By default, all the fields used by the `*_key` parameters are removed from the original input events. To change this behavior, set this parameter to `true`. This parameter is set to `false` by default.
270
+ When set to true, all fields defined in `index_key`, `host_key`, `source_key`, `sourcetype_key`, `metric_name_key`, and `metric_value_key` are saved in the original event.
225
271
 
226
272
  ### &lt;fields&gt; section (optional) (single)
227
273
 
228
- Depending on the value of `data_type` parameter, the parameters inside `<fields>` section have different meanings. Despite the meaning, the syntax for parameters is unique.
274
+ Depending on the value of `data_type` parameter, the parameters inside the `<fields>` section have different meanings. Despite the meaning, the syntax for parameters is unique.
275
+
276
+ ### app_name (string) (Optional)
277
+
278
+ Splunk app name using this plugin (default to `hec_plugin_gem`)
279
+
280
+ ### app_version (string) (Optional)
281
+
282
+ The version of Splunk app using this this plugin (default to plugin version)
229
283
 
230
284
  #### When `data_type` is `event`
231
285
 
232
- In this case, parameters inside `<fields>` will be used as indexed fields. And these fields will be removed from the original input events. Please see the "Add a "fields" property at the top JSON level" [here](http://dev.splunk.com/view/event-collector/SP-CAAAFB6) for details. Given we have configuration like
286
+ In this case, parameters inside `<fields>` are used as indexed fields and removed from the original input events. Please see the "Add a "fields" property at the top JSON level" [here](http://dev.splunk.com/view/event-collector/SP-CAAAFB6) for details. Given we have configuration like
233
287
 
234
288
  ```
235
289
  <match **>
@@ -273,7 +327,7 @@ If a parameter has just a key, it means its value is exactly the same as the key
273
327
 
274
328
  #### When `data_type` is `metric`
275
329
 
276
- For metrics, parameters inside `<fields>` are used as dimensions. If `<fields>` is not presented, the original input event will be used as dimensions. If an empty `<fields></fields>` is presented, no dimension will be sent. For example, given configuration like
330
+ For metrics, parameters inside `<fields>` are used as dimensions. If `<fields>` is not presented, the original input event will be used as dimensions. If an empty `<fields></fields>` is presented, no dimension is sent. For example, given the following configuration:
277
331
 
278
332
  ```
279
333
  <match **>
@@ -291,22 +345,22 @@ For metrics, parameters inside `<fields>` are used as dimensions. If `<fields>`
291
345
  </match>
292
346
  ```
293
347
 
294
- and an input event like
348
+ and the following input event:
295
349
 
296
350
  ```javascript
297
351
  {"application": "webServer", "file": "server.rb", "value": 100, "status": "OK", "message": "Normal", "name": "CPU Usage"}
298
352
  ```
299
353
 
300
- Then, a metric of "CPU Usage" with value=100, along with 3 dimensions file="server.rb", status="OK", and app="webServer" will be sent to Splunk.
354
+ Then, a metric of "CPU Usage" with value=100, along with 3 dimensions file="server.rb", status="OK", and app="webServer" are sent to Splunk.
301
355
 
302
356
  ### &lt;format&gt; section (optional) (multiple)
303
357
 
304
- The `<format>` section let us define which formatter to use to format events.
358
+ The `<format>` section let you define which formatter to use to format events.
305
359
  By default, it uses [the `json` formatter](https://docs.fluentd.org/v1.0/articles/formatter_jso://docs.fluentd.org/v1.0/articles/formatter_json).
306
360
 
307
- Besides the `@type` parameter, you should define all other parameters for the formatter inside this section.
361
+ Besides the `@type` parameter, you should define the other parameters for the formatter inside this section.
308
362
 
309
- Multiple `<format>` sections can be defined to use different formatters for different tags. Each `<format>` section accepts an argument just like the `<match>` section does, to define tag matching. But default, every event will be formatted with `json`. For example:
363
+ Multiple `<format>` sections can be defined to use different formatters for different tags. Each `<format>` section accepts an argument just like the `<match>` section does to define tag matching. By default, every event is formatted with `json`. For example:
310
364
 
311
365
  ```
312
366
  <match **>
@@ -324,34 +378,35 @@ Multiple `<format>` sections can be defined to use different formatters for diff
324
378
  </format>
325
379
  ```
326
380
 
327
- In this example, it will format events with tags which start with `sometag.` with the `single_value` formatter, and format events with tags `some.othertag` with the `csv` formatter, and format all other events with the `json` formatter (the default formatter).
381
+ This example:
382
+ - Formats events with tags that start with `sometag.` with the `single_value` formatter
383
+ - Formats events with tags `some.othertag` with the `csv` formatter
384
+ - Formats all other events with the `json` formatter (the default formatter)
328
385
 
329
386
  If you want to use a different default formatter, you can add a `<format **>` (or `<format>`) section.
330
387
 
331
388
  #### @type (string) (required)
332
389
 
333
- Defines which formatter to use.
390
+ Specifies which formatter to use.
334
391
 
335
392
  ### Net::HTTP::Persistent parameters (optional)
336
393
 
337
- The following parameters can be used for tuning HTTP connections
394
+ The following parameters can be used for tuning HTTP connections:
338
395
 
339
396
  #### idle_timeout (integer)
340
397
 
341
- The default is 5 seconds. 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.
398
+ The default is five seconds. If a connection has not been used for five seconds, it is automatically reset at next use, in order to avoid attempting to send to a closed connection. Specifiy `nil` to prohibit any timeouts.
342
399
 
343
400
  #### read_timeout (integer)
344
-
345
- The default is nil. The amount of time allowed between reading two chunks from the socket.
401
+ The amount of time allowed between reading two chunks from the socket. The default value is `nil`, which means no timeout.
346
402
 
347
403
  #### open_timeout (integer)
348
404
 
349
- The default is nil. The amount of time to wait for a connection to be opened.
405
+ The amount of time to wait for a connection to be opened. The default is `nil`, which means no timeout.
350
406
 
351
407
  ### SSL parameters
352
408
 
353
- There are quite some parameters you can use to configure SSL (for HTTPS protocol).
354
- All these parameters are optional.
409
+ The following optional parameters let you configure SSL for HTTPS protocol.
355
410
 
356
411
  #### client_cert (string)
357
412
 
@@ -375,9 +430,7 @@ List of SSl ciphers allowed.
375
430
 
376
431
  #### insecure_ssl (bool)
377
432
 
378
- Indicates if insecure SSL connection is allowed, i.e. do not verify the server's certificate.
379
-
380
- Default value: `false`.
433
+ 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`.
381
434
 
382
435
  ## About Buffer
383
436
 
@@ -392,4 +445,4 @@ Here are some hints:
392
445
 
393
446
  ## License
394
447
 
395
- Please see [LICENSE](LICENSE).
448
+ Please see [LICENSE](LICENSE).