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 +4 -4
- data/fluent-plugin-concat.gemspec +1 -1
- data/lib/fluent/plugin/filter_concat.rb +19 -12
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 513922bd28dc2cf029d6e5ef790c71a332abfa3b
|
4
|
+
data.tar.gz: d75f93313cb86329e5baf204f1fec4e3e0ae18ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 25563c71811242e4c34fa3f80e76dec201351d53506cc06091d4a5a2634829e48d1340eace8a6f2674fe9c82656ac8b595eb4214b83dd93c55a28be17b9fc3ad
|
7
|
+
data.tar.gz: bd3403a21a0902b985efdb2dede5bc5aa9cc2c3757dc68cd31ebdb311484570c18d315306c879e7b3dd47d5313ff763a0b9bcb514a5b225195c1df2914f077e4
|
@@ -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.
|
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-
|
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.
|
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
|