fluent-plugin-concat 0.1.0 → 0.2.0

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: 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