fluent-plugin-elb-access-log 0.4.3 → 0.4.4

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
  SHA1:
3
- metadata.gz: 88a3b513a550db32f667fedc8ba75eea2e2f6199
4
- data.tar.gz: 0e5dd5364065a98f38f15c54fe400e0826941ae4
3
+ metadata.gz: 4bcfed4ac9a254031fd9a23f2cf9439c5beeb4e8
4
+ data.tar.gz: f3e0a91ff1c7d76cf4d238b08863978bd181b31f
5
5
  SHA512:
6
- metadata.gz: 7c3c094dff47e82717c9cf8b80d2528f35257a61dc7bcb6c64c6943433e684082638c1e13256b43ea448b1e2e40487fbfcaa73353f8fb74245b739fc8e897edb
7
- data.tar.gz: 8493ec02a57fb20f8fbaf144fa8930292b9658a90438b31a56d429b04a7690e72b4273d7a37de68422f721089181e02ecc9810a43bb271b7fea1bc5f61e8e806
6
+ metadata.gz: 64e309331c88bf9735c27bf3d99921c37398e4c34f178dbfb067291d8973b86a45d4c7213467c68360b8192a37c63e07ca5dc57d3ef0ad183a555b76df6a7aa7
7
+ data.tar.gz: caecfbe52f8471cf1f061212a92511a26538dc2f72246b3d12e29af00976c739a884b70fb8e5cee32890d80acde0c69e4754f979fdbb45bac8f84a1c8a255211
data/README.md CHANGED
@@ -52,6 +52,7 @@ Or install it yourself as:
52
52
  #filter_operator and # or "or"
53
53
  #type_cast true
54
54
  #parse_request true
55
+ #split_addr_port true
55
56
  </source>
56
57
  ```
57
58
 
@@ -83,6 +83,7 @@ class Fluent::Plugin::ElbAccessLogInput < Fluent::Input
83
83
  config_param :filter_operator, :string, default: 'and'
84
84
  config_param :type_cast, :bool, default: true
85
85
  config_param :parse_request, :bool, default: true
86
+ config_param :split_addr_port, :bool, default: true
86
87
 
87
88
  def configure(conf)
88
89
  super
@@ -180,7 +181,7 @@ class Fluent::Plugin::ElbAccessLogInput < Fluent::Input
180
181
  begin
181
182
  access_log = MultipleFilesGzipReader.new(access_log)
182
183
 
183
- # check gzip formta
184
+ # check gzip format
184
185
  access_log.first
185
186
  access_log.rewind
186
187
  rescue Zlib::Error => e
@@ -270,7 +271,9 @@ class Fluent::Plugin::ElbAccessLogInput < Fluent::Input
270
271
 
271
272
  if @type_cast
272
273
  access_log_fields.each do |name, conv|
273
- record[name] = record[name].send(conv) if conv
274
+ if conv and (value = record[name])
275
+ record[name] = value.send(conv)
276
+ end
274
277
  end
275
278
  end
276
279
 
@@ -349,9 +352,15 @@ class Fluent::Plugin::ElbAccessLogInput < Fluent::Input
349
352
  def split_address_port!(record, prefix)
350
353
  address_port = record["#{prefix}_port"]
351
354
  return unless address_port
352
- address, port = address_port.split(':', 2)
353
- record[prefix] = address
354
- record["#{prefix}_port"] = port
355
+
356
+ if @split_addr_port
357
+ address, port = address_port.split(':', 2)
358
+ record[prefix] = address
359
+ record["#{prefix}_port"] = port
360
+ else
361
+ record[prefix] = address_port
362
+ record.delete("#{prefix}_port")
363
+ end
355
364
  end
356
365
 
357
366
  def parse_request!(record)
@@ -1,3 +1,3 @@
1
1
  module FluentPluginElbAccessLog
2
- VERSION = '0.4.3'
2
+ VERSION = '0.4.4'
3
3
  end
@@ -369,7 +369,6 @@ https 2015-05-25T19:55:36.000000Z hoge 14.14.124.20:57673 10.0.199.184:80 0.0000
369
369
  end
370
370
  end
371
371
 
372
-
373
372
  context 'without request parsing' do
374
373
  let(:fluentd_conf) do
375
374
  {
@@ -392,6 +391,34 @@ https 2015-05-25T19:55:36.000000Z hoge 14.14.124.20:57673 10.0.199.184:80 0.0000
392
391
  is_expected.to match_table expected_emits_without_request_parsing
393
392
  end
394
393
  end
394
+
395
+ context 'without addr/port splitting' do
396
+ let(:fluentd_conf) do
397
+ {
398
+ interval: 0,
399
+ account_id: account_id,
400
+ s3_bucket: s3_bucket,
401
+ region: region,
402
+ start_datetime: (today - 1).to_s,
403
+ elb_type: 'alb',
404
+ split_addr_port: 'false',
405
+ }
406
+ end
407
+
408
+ it do
409
+ expected_emits_without_request_parsing = expected_emits.map do |tag, ts, h|
410
+ h.keys.select {|k| k =~ /_port\z/ }.each do |prefix_port|
411
+ prefix, _ = prefix_port.split('_', 2)
412
+ h[prefix] = h[prefix] + ':' + h[prefix_port].to_s
413
+ h.delete(prefix_port)
414
+ end
415
+
416
+ [tag, ts, h]
417
+ end
418
+
419
+ is_expected.to match_table expected_emits_without_request_parsing
420
+ end
421
+ end
395
422
  end
396
423
 
397
424
  context 'when include bad URI' do
@@ -358,6 +358,33 @@ describe Fluent::Plugin::ElbAccessLogInput do
358
358
  is_expected.to match_table expected_emits_without_request_parsing
359
359
  end
360
360
  end
361
+
362
+ context 'without addr/port splitting' do
363
+ let(:fluentd_conf) do
364
+ {
365
+ interval: 0,
366
+ account_id: account_id,
367
+ s3_bucket: s3_bucket,
368
+ region: region,
369
+ start_datetime: (today - 1).to_s,
370
+ split_addr_port: 'false',
371
+ }
372
+ end
373
+
374
+ it do
375
+ expected_emits_without_request_parsing = expected_emits.map do |tag, ts, h|
376
+ h.keys.select {|k| k =~ /_port\z/ }.each do |prefix_port|
377
+ prefix, _ = prefix_port.split('_', 2)
378
+ h[prefix] = h[prefix] + ':' + h[prefix_port].to_s
379
+ h.delete(prefix_port)
380
+ end
381
+
382
+ [tag, ts, h]
383
+ end
384
+
385
+ is_expected.to match_table expected_emits_without_request_parsing
386
+ end
387
+ end
361
388
  end
362
389
 
363
390
  context 'when include bad URI' do
@@ -48,6 +48,7 @@ describe 'Fluent::Plugin::ElbAccessLogInput#configure' do
48
48
  expect(driver.instance.filter_operator).to eq 'and'
49
49
  expect(driver.instance.type_cast).to be_truthy
50
50
  expect(driver.instance.parse_request).to be_truthy
51
+ expect(driver.instance.split_addr_port).to be_truthy
51
52
  end
52
53
  end
53
54
 
@@ -95,6 +96,7 @@ describe 'Fluent::Plugin::ElbAccessLogInput#configure' do
95
96
  filter_operator: filter_operator,
96
97
  type_cast: 'false',
97
98
  parse_request: 'false',
99
+ split_addr_port: 'false',
98
100
  }
99
101
  end
100
102
 
@@ -121,6 +123,7 @@ describe 'Fluent::Plugin::ElbAccessLogInput#configure' do
121
123
  expect(driver.instance.filter_operator).to eq filter_operator
122
124
  expect(driver.instance.type_cast).to be_falsey
123
125
  expect(driver.instance.parse_request).to be_falsey
126
+ expect(driver.instance.split_addr_port).to be_falsey
124
127
  end
125
128
  end
126
129
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-elb-access-log
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-04 00:00:00.000000000 Z
11
+ date: 2018-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd