fluent-plugin-concat 0.1.0 → 0.2.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 27d3958d3254219e7ca4fe4e063ba5d9fcccadd9
4
- data.tar.gz: bf836cffc244561d46bd47837aa3ce0018c36c93
3
+ metadata.gz: 513922bd28dc2cf029d6e5ef790c71a332abfa3b
4
+ data.tar.gz: d75f93313cb86329e5baf204f1fec4e3e0ae18ad
5
5
  SHA512:
6
- metadata.gz: 44fa6336681c18243a889ac5e0124f91d41654c8df7f4c8af65d9796bc5498805431035b841e2013a430131f7e4e63188e5caa10ea71b7150ff4fbeb357fb77b
7
- data.tar.gz: 298996442014f001cd197a051231278d59f5877402c1993e627e88840e25d0af158dda3da2294b3405d78ed9d3d7d36037cc74c61b6c8fa493c784c0f4e0f598
6
+ metadata.gz: 25563c71811242e4c34fa3f80e76dec201351d53506cc06091d4a5a2634829e48d1340eace8a6f2674fe9c82656ac8b595eb4214b83dd93c55a28be17b9fc3ad
7
+ data.tar.gz: bd3403a21a0902b985efdb2dede5bc5aa9cc2c3757dc68cd31ebdb311484570c18d315306c879e7b3dd47d5313ff763a0b9bcb514a5b225195c1df2914f077e4
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "fluent-plugin-concat"
7
- spec.version = "0.1.0"
7
+ spec.version = "0.2.0"
8
8
  spec.authors = ["Kenji Okimoto"]
9
9
  spec.email = ["okimoto@clear-code.com"]
10
10
 
@@ -10,11 +10,13 @@ module Fluent
10
10
  config_param :n_lines, :integer, default: nil
11
11
  desc "The regexp to match beginning of multiline"
12
12
  config_param :multiline_start_regexp, :string, default: nil
13
+ desc "The key to determine which stream an event belongs to"
14
+ config_param :stream_identity_key, :string, default: nil
13
15
 
14
16
  def initialize
15
17
  super
16
18
 
17
- @buffer = []
19
+ @buffer = Hash.new{|h, k| h[k] = [] }
18
20
  end
19
21
 
20
22
  def configure(conf)
@@ -53,21 +55,26 @@ module Fluent
53
55
  private
54
56
 
55
57
  def process(record)
58
+ if @stream_identity_key
59
+ stream_identity = record[@stream_identity_key]
60
+ else
61
+ stream_identity = "default"
62
+ end
56
63
  case @mode
57
64
  when :line
58
- @buffer << record[@key]
59
- if @n_lines && @buffer.size >= @n_lines
60
- return flush_buffer
65
+ @buffer[stream_identity] << record[@key]
66
+ if @n_lines && @buffer[stream_identity].size >= @n_lines
67
+ return flush_buffer(stream_identity)
61
68
  end
62
69
  when :regexp
63
70
  if firstline?(record[@key])
64
- if @buffer.empty?
65
- @buffer << record[@key]
71
+ if @buffer[stream_identity].empty?
72
+ @buffer[stream_identity] << record[@key]
66
73
  else
67
- return flush_buffer(record[@key])
74
+ return flush_buffer(stream_identity, record[@key])
68
75
  end
69
76
  else
70
- @buffer << record[@key]
77
+ @buffer[stream_identity] << record[@key]
71
78
  end
72
79
  end
73
80
  nil
@@ -77,11 +84,11 @@ module Fluent
77
84
  !!@multiline_start_regexp.match(text)
78
85
  end
79
86
 
80
- def flush_buffer(new_message = nil)
87
+ def flush_buffer(stream_identity, new_message = nil)
81
88
  new_record = {}
82
- new_record[@key] = @buffer.join(@separator)
83
- @buffer = []
84
- @buffer << new_message if new_message
89
+ new_record[@key] = @buffer[stream_identity].join(@separator)
90
+ @buffer[stream_identity] = []
91
+ @buffer[stream_identity] << new_message if new_message
85
92
  new_record
86
93
  end
87
94
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-concat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kenji Okimoto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-07 00:00:00.000000000 Z
11
+ date: 2016-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
@@ -102,7 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
102
  version: '0'
103
103
  requirements: []
104
104
  rubyforge_project:
105
- rubygems_version: 2.5.1
105
+ rubygems_version: 2.6.2
106
106
  signing_key:
107
107
  specification_version: 4
108
108
  summary: Fluentd Filter plugin to concat multiple event messages